Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Evolution of C#

Evolution of C#

Scheduled Pinned Locked Moved The Lounge
csharpjavaphpcomquestion
37 Posts 22 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Rohde

    I read this very interesting post on C# (partial methods for partial developers[^]) which got me thinking that slowly C# shows signs of some feature bloat - kind of what happened with Java 5. What do you think? Would you like as much "sugar" as possible in you coding coffe? Or, are you more happy with a clean and simple language, like C# is now, but may not be in future revision (Algol 68 anybody?)?


    "When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
    -Atlas Shrugged, Ayn Rand

    S Offline
    S Offline
    Scott Dorman
    wrote on last edited by
    #23

    I think the C# team is choosing language features carefuly, especially when compared to other .NET languages like VB. I agree that partial methods aren't a "general use" concept and are aimed more at code generation tools rather than people, but I think that they will be an important addition for helping keep the generated code cleaner.

    Scott.


    —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

    1 Reply Last reply
    0
    • P Pete OHanlon

      Old fart that I am, I've decided to stop at the .NET2 syntax. I'm comfortable with it, and I don't see any need to rush towards things like MixIns or Linq.

      Deja View - the feeling that you've seen this post before.

      S Offline
      S Offline
      Scott Dorman
      wrote on last edited by
      #24

      I'm still on the fence with Linq, but MixIns (extension methods) can actually be very useful when done properly. They can add a level of semantic "completeness" to a type, by providing the same helper/utility methods that we always write in a more natural way of accessing them...as methods on the type itself. Since you write an extension method in exactly the same way you write a static utility class (the only difference is the this keyword before the first (which should be the source data type) parameter) you can still use them as a helper class and make explicit calls to it.

      Scott.


      —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

      1 Reply Last reply
      0
      • T to_be_defined

        After all these years, Microsoft has decided to accept my demands to improve C#. Now I can declare all my methods in the .h file and define them in the .cs! Looking forward to my other requests: preprocessor macros and inline x86 ASM. :suss:

        S Offline
        S Offline
        Scott Dorman
        wrote on last edited by
        #25

        to_be_defined wrote:

        Now I can declare all my methods in the .h file and define them in the .cs!

        Not at all the intent behind partial methods. Depending on how the partial method is declared, it might not even be compiled into the final assembly. So it really isn't like a .h file.

        Scott.


        —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

        1 Reply Last reply
        0
        • S SimonS

          I agree that C# should be kept as simple as it is in version 2. Rather have the ability to reference a plugin/DLL that would extend VS and .NET to include new features like LINQ, etc... Keep the language clean!

          Cheers, Simon > company:: Broken Keyboards Software > blog:: brokenkeyboards > skype :: SimonMStewart > CV :: PDF

          S Offline
          S Offline
          Scott Dorman
          wrote on last edited by
          #26

          That's kind of what's happening. The .NET 3.0 and 3.5 versions of the framework are built on top of the .NET 2.0 CLR. The changes/additions in 3.0 and 3.5 are an additional set of libraries that sit on top of (and outside) the 2.0 CLR. The only changes to the 2.0 bits are service packs that get installed (only in the case of .NET 3.5). I think the bigger issue has been the choice of "version" numbers and the confusion it has/is causing.

          Scott.


          —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

          1 Reply Last reply
          0
          • E El Corazon

            All actively used languages evolve, just as all active programs evolve. Be honest, has there ever been a language where you weren't writing a program one afternoon and thought to yourself, "wouldn't it be nice if...." Perhaps the thought ended there, perhaps it didn't. But that happens to many programmers, and even the writers of these programs. "What if" is the most powerful, and most dangerous statement we all make. It makes Vista out of XP, it makes XP out of ME and 2000, it makes C# from VB&C++&Java, but it also evolves the specifics of any system, it makes Java 5 from Java, it makes OpenGL 3 from OpenGL 2, and OpenGL 2 from OpenGL 1. "What if" means your software you know and love will change, the stuff you write will change, everything you use will change. "What if" is both salvation and damnation to the programming body at large. :) "What if" can move mountains. -- modified at 13:31 Friday 7th September, 2007

            _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

            H Offline
            H Offline
            Hamed Musavi
            wrote on last edited by
            #27

            El Corazon wrote:

            "What if" can move mountains.

            Let me test it: "What if Microsoft stops .Net?", is it still there? Another test: "What if that girl...?" . . . Damn it, nothing happens. Could you please change your "What if" with mine, it's not working for me.:-D

            // "Life is very short and is very fragile also." Yanni
            while (I'm_alive)
            {
            cout<<"I love programming.";
            }

            1 Reply Last reply
            0
            • L Lost User

              I stopped using C# for my astronomy software project because it is so slow, it takes up huge amounts of runtime memory, and most people do not want to spend 30 minutes downloading and installing windows updates just to run a program.

              S Offline
              S Offline
              Scott Dorman
              wrote on last edited by
              #28

              INITCOMMONCONTROLSEX wrote:

              because it is so slow

              Since it's ultimately an interpreted language, it will always be slower than C/C++. However, I think for the majority of .NET applications the slowness comes not from the JIT process but from poorly written code. (Not applying that to your code at all, just making a general statement.)

              INITCOMMONCONTROLSEX wrote:

              it takes up huge amounts of runtime memory

              The amount of memory used is misleading, particularly if you are using Task Manager as the gauge. When a .NET executable starts, it receives a chunk of memory from the OS to use as the managed heap. From that point on, the .NET runtime manages the memory use. Task Manager reports the amount of OS memory allocated, which can change, but is almost always larger than the actual working set of the application. If the OS starts getting memroy starved, the runtime will release memory as needed.

              INITCOMMONCONTROLSEX wrote:

              most people do not want to spend 30 minutes downloading and installing windows updates just to run a program

              At this point, most people already have those updates or are used to having to download them from/for other applications and Windows updates. Now that Vista (and later OSs) will have the .NET Framework pre-installed, this alleviates a lot of the download time.

              Scott.


              —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

              L 1 Reply Last reply
              0
              • H Hamed Musavi

                Exactly! I thought about rewriting one of my small projects with c#, so I had to create a new installer and guess what should be considered(as much as I remember): Service pack2 for XP, Installer 3.x, MDAC 8.x, .net framework 2, .Net framework 3, etc. Just imagine a user waiting for all these softwares to be installed before my small application installs! I totally dismissed updating:-D

                // "Life is very short and is very fragile also." Yanni
                while (I'm_alive)
                {
                cout<<"I love programming.";
                }

                S Offline
                S Offline
                Scott Dorman
                wrote on last edited by
                #29

                Hamed Mosavi wrote:

                Service pack2 for XP, Installer 3.x, MDAC 8.x, .net framework 2, .Net framework 3, etc.

                A lot of this is relative to the target operating system as well. Vista already comes with pretty much everything you need. There is also not a requirement that your installer bundle all of the prerequisites; sometimes it is acceptable to simply point out the fact that a particular patch/version is needed or the installer can offer to download it. At this point, most of the components you mention are already going to be on an end-users computer through Windows Update or installing some other piece of software.

                Scott.


                —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

                1 Reply Last reply
                0
                • E El Corazon

                  All actively used languages evolve, just as all active programs evolve. Be honest, has there ever been a language where you weren't writing a program one afternoon and thought to yourself, "wouldn't it be nice if...." Perhaps the thought ended there, perhaps it didn't. But that happens to many programmers, and even the writers of these programs. "What if" is the most powerful, and most dangerous statement we all make. It makes Vista out of XP, it makes XP out of ME and 2000, it makes C# from VB&C++&Java, but it also evolves the specifics of any system, it makes Java 5 from Java, it makes OpenGL 3 from OpenGL 2, and OpenGL 2 from OpenGL 1. "What if" means your software you know and love will change, the stuff you write will change, everything you use will change. "What if" is both salvation and damnation to the programming body at large. :) "What if" can move mountains. -- modified at 13:31 Friday 7th September, 2007

                  _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                  J Offline
                  J Offline
                  jchesney
                  wrote on last edited by
                  #30

                  Interesting. I have no idea who said it, but "Necessity is the mother of invention." During the overall discussion, I notice that liking or disliking a language feature seems a function of one particular coding habits. For example, personally, I have several "I don't like that, so I am not using it" code habit. Here's a quick list: - I don't like friend in C++. I am not comfortable with its use because 9 times out of 10 it is being used by a developer who is being lazy in their design and is not willing to put the effort in to refactor the design. - I don't like internal in C#, for a similar reason, although at least the scope of the keyword is clearly restricted to the assembly and namespace. Mind you, I have written some class-factories which use an internal specifier on the constructors. (Yup, I'm a hypocrite! ;) ) I don't know if I will like partial methods or not. I am concerned with the implication that a method exists, but gets compiled out completely simply because it does not get defined beyond the prototype. Of course, having said that ASSERT is a very useful tool in C++. Of course, what I really miss in C# from C++ is the ability to defined a template class. I realize I can write Reflector/Emit code to generate these things, but that pushes the template work back to me. In C++ I made heavy use of the templates in order to implement some general boiler plate. Every time I have a typed Collection in C#, or managed a COM pointer, I have desperately wished for the template class capabilities. j.

                  1 Reply Last reply
                  0
                  • S Scott Dorman

                    INITCOMMONCONTROLSEX wrote:

                    because it is so slow

                    Since it's ultimately an interpreted language, it will always be slower than C/C++. However, I think for the majority of .NET applications the slowness comes not from the JIT process but from poorly written code. (Not applying that to your code at all, just making a general statement.)

                    INITCOMMONCONTROLSEX wrote:

                    it takes up huge amounts of runtime memory

                    The amount of memory used is misleading, particularly if you are using Task Manager as the gauge. When a .NET executable starts, it receives a chunk of memory from the OS to use as the managed heap. From that point on, the .NET runtime manages the memory use. Task Manager reports the amount of OS memory allocated, which can change, but is almost always larger than the actual working set of the application. If the OS starts getting memroy starved, the runtime will release memory as needed.

                    INITCOMMONCONTROLSEX wrote:

                    most people do not want to spend 30 minutes downloading and installing windows updates just to run a program

                    At this point, most people already have those updates or are used to having to download them from/for other applications and Windows updates. Now that Vista (and later OSs) will have the .NET Framework pre-installed, this alleviates a lot of the download time.

                    Scott.


                    —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #31

                    .Net may be great for lots of things, but for what I am doing it does not seem to be. I am writing a solar system simulator similar to the one on the NASA page, only it will draw the planets and their moons to the scale they will appear on the user's telescope and camera equipment. C++ and OpenGL in my opinion work much better than .Net/Managed DirectX because of all the number crunching involved. And I didn't know that about memory usage. I always used Task manager.

                    S 1 Reply Last reply
                    0
                    • L Lost User

                      .Net may be great for lots of things, but for what I am doing it does not seem to be. I am writing a solar system simulator similar to the one on the NASA page, only it will draw the planets and their moons to the scale they will appear on the user's telescope and camera equipment. C++ and OpenGL in my opinion work much better than .Net/Managed DirectX because of all the number crunching involved. And I didn't know that about memory usage. I always used Task manager.

                      S Offline
                      S Offline
                      Scott Dorman
                      wrote on last edited by
                      #32

                      INITCOMMONCONTROLSEX wrote:

                      C++ and OpenGL in my opinion work much better than .Net/Managed DirectX because of all the number crunching involved.

                      Absolutely. There are still certain things that unmaged code will be better at, particularly in heavy scientific and math applications like that.

                      INITCOMMONCONTROLSEX wrote:

                      And I didn't know that about memory usage. I always used Task manager.

                      Unfortunately, it seems that most people don't know about the issues around using Task Manager to monitor memory for .NET apps. There are some performance counters that can be used to measure this information.

                      Scott.


                      —In just two days, tomorrow will be yesterday. [Forum Guidelines] [Articles] [Blog]

                      1 Reply Last reply
                      0
                      • R Rohde

                        I read this very interesting post on C# (partial methods for partial developers[^]) which got me thinking that slowly C# shows signs of some feature bloat - kind of what happened with Java 5. What do you think? Would you like as much "sugar" as possible in you coding coffe? Or, are you more happy with a clean and simple language, like C# is now, but may not be in future revision (Algol 68 anybody?)?


                        "When you have made evil the means of survival, do not expect men to remain good. Do not expect them to stay moral and lose their lives for the purpose of becoming the fodder of the immoral. Do not expect them to produce, when production is punished and looting rewarded. Do not ask, `Who is destroying the world?' You are."
                        -Atlas Shrugged, Ayn Rand

                        P Offline
                        P Offline
                        PIEBALDconsult
                        wrote on last edited by
                        #33

                        Perhaps, but partial classes should have been there from the beginning, that way we wouldn't have the partial keyword anyway. It's still pretty silly, it's just a needless clue to the compiler, all classes should be partial by default. After a language evolves to a certain point it needs to morph into a new language, e.g. C -- C++ -- C#, I like C#, but I look forward to the next language too.

                        1 Reply Last reply
                        0
                        • M Marc Clifton

                          Rohde wrote:

                          slowly C# shows signs of some feature bloat

                          IMO, they should have stopped with generics. All this lambda, Linq, var stuff feels like someone's trying to sell me shoes designed originally for aliens that we've never even confirmed exist. Marc

                          Thyme In The Country
                          Interacx
                          My Blog

                          C Offline
                          C Offline
                          Chris Austin
                          wrote on last edited by
                          #34

                          Marc Clifton wrote:

                          All this lambda

                          Lambdas I love from my days programming python. Heck C# seems to becoming more like Python since we've gotten yield, coroutines and continuations.

                          Marc Clifton wrote:

                          Linq

                          Takes you back to the FoxPro days doesn't it :)

                          Marc Clifton wrote:

                          var

                          I still haven't spent much time grasping this. Is it similar to Duck Typing [^]?

                          My Blog A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long

                          M 1 Reply Last reply
                          0
                          • P Pete OHanlon

                            Old fart that I am, I've decided to stop at the .NET2 syntax. I'm comfortable with it, and I don't see any need to rush towards things like MixIns or Linq.

                            Deja View - the feeling that you've seen this post before.

                            M Offline
                            M Offline
                            Marc Clifton
                            wrote on last edited by
                            #35

                            Pete O`Hanlon wrote:

                            I'm comfortable with it, and I don't see any need to rush towards things like MixIns or Linq.

                            Me too. I think I'll eventually enjoy lambda expressions, but I'll never be a proponent of Linq except in very limited uses. As for implicit types (var), I feel it's for lazy programmers. Again, limited use, but we'll probably see the complete elimination of explicit typed variables faster than a bat catching a mosquito. Marc

                            Thyme In The Country
                            Interacx
                            My Blog

                            1 Reply Last reply
                            0
                            • C Chris Austin

                              Marc Clifton wrote:

                              All this lambda

                              Lambdas I love from my days programming python. Heck C# seems to becoming more like Python since we've gotten yield, coroutines and continuations.

                              Marc Clifton wrote:

                              Linq

                              Takes you back to the FoxPro days doesn't it :)

                              Marc Clifton wrote:

                              var

                              I still haven't spent much time grasping this. Is it similar to Duck Typing [^]?

                              My Blog A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long

                              M Offline
                              M Offline
                              Marc Clifton
                              wrote on last edited by
                              #36

                              Chris Austin wrote:

                              I still haven't spent much time grasping this. Is it similar to Duck Typing [^]?

                              Yes. Or the more politically correct term "implicit typing". Marc

                              Thyme In The Country
                              Interacx
                              My Blog

                              C 1 Reply Last reply
                              0
                              • M Marc Clifton

                                Chris Austin wrote:

                                I still haven't spent much time grasping this. Is it similar to Duck Typing [^]?

                                Yes. Or the more politically correct term "implicit typing". Marc

                                Thyme In The Country
                                Interacx
                                My Blog

                                C Offline
                                C Offline
                                Chris Austin
                                wrote on last edited by
                                #37

                                I was just reading up on it a bit. I hate saying this, but all of the examples I saw the code was less than pretty. A bit sad in my opinion, on of the main reasons I really liked coding in C# to begin with was how readable the code was.

                                My Blog A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects. - -Lazarus Long

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups