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.
  • 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