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. Why isn't C# more popular?

Why isn't C# more popular?

Scheduled Pinned Locked Moved The Lounge
questioncsharpc++javaregex
67 Posts 42 Posters 2 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.
  • P Patrick Skelton

    I've experimented with a lot of languages over the years and delivered production code in at least a handful. Of all, I find C# to be the most genial. It has syntax close enough to C/C++ not to alienate those programmers, has plenty of high-level stuff to keep users of languages such as Java happy, and these days has good performance and is open and cross-platform. The only thing I hate about it is the terrible 'destructor' pattern, which you can ignore most of the time. Despite all of this, I rarely if ever read a headline that says C# is gaining in popularity. There's no point in getting into too many syntax specifics because that would be a never-ending discussion but why does it fail to hit the spot with so many developers and companies?

    Thank you to anyone taking the time to read my posts.

    D Offline
    D Offline
    dandy72
    wrote on last edited by
    #27

    Never underestimate the power of the "anything but Microsoft" group. There's a lot of butthurt people who are still convinced the Microsoft of 2020 is the same as the Microsoft of 1997.

    1 Reply Last reply
    0
    • R Rick York

      Microsoft seems to think they are. They also seem to think that deleting what you allocate is far too much to ask of programmers.

      "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

      W Offline
      W Offline
      W Balboos GHB
      wrote on last edited by
      #28

      Rick York wrote:

      They also seem to think that deleting what you allocate is far too much to ask of programmers.

      And to think - when I discovered alloca() and used it in functions I felt like I was cheating ! Oh Brave* New World! * Brave, but maybe not to clever? Perhaps MS knows their smart-phone encrusted clientele all too well.

      Ravings en masse^

      "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

      "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

      1 Reply Last reply
      0
      • D Daniel Pfeffer

        My $0.02: 1. For all its advantages, C#, like Java, is unsuited to system-level programming. The kernel in both Windows and Linux is programmed in C and ASM. 2. Many organizations have an investment in C and C++ code. Conversion to C# would require a major investment. Note that this is also one of the reasons that companies keep using Cobol, so I don't see this changing in the near future. 3. C# does have a serious learning curve - not for the language, but for its libraries. If you have learnt to do things in C or C++, converting to C# is far from simple.

        Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

        G Offline
        G Offline
        Gary R Wheeler
        wrote on last edited by
        #29

        Daniel Pfeffer wrote:

        1. For all its advantages, C#, like Java, is unsuited to system-level programming. The kernel in both Windows and Linux is programmed in C and ASM.

        C# isn't really designed for system-level programming. It's designed for building applications. In that regard after 12 years of using it, I find it's remarkably fluent and concise. That said, I have used it for several Windows services with no trouble.

        Daniel Pfeffer wrote:

        2. Many organizations have an investment in C and C++ code. Conversion to C# would require a major investment. Note that this is also one of the reasons that companies keep using Cobol, so I don't see this changing in the near future.

        That's true for any language, not just C#.

        Daniel Pfeffer wrote:

        3. C# does have a serious learning curve - not for the language, but for its libraries. If you have learnt to do things in C or C++, converting to C# is far from simple.

        True. When I started in C#/WPF back in 2008, it took me quite a while to grasp one of the fundamentals of .NET programming: it's in there. C++ and MFC require that you build some application basics yourself. Many of those basics are already present in .NET and whatever UI framework you choose. Instead of saying to yourself "OK, how do I wrap the primitive crap in something elegant in order to make this work", like you do so often in C++, Windows API, and MFC, it's "there's got to be something to do this in .NET; the question is where?"

        Software Zen: delete this;

        1 Reply Last reply
        0
        • P Patrick Skelton

          I've experimented with a lot of languages over the years and delivered production code in at least a handful. Of all, I find C# to be the most genial. It has syntax close enough to C/C++ not to alienate those programmers, has plenty of high-level stuff to keep users of languages such as Java happy, and these days has good performance and is open and cross-platform. The only thing I hate about it is the terrible 'destructor' pattern, which you can ignore most of the time. Despite all of this, I rarely if ever read a headline that says C# is gaining in popularity. There's no point in getting into too many syntax specifics because that would be a never-ending discussion but why does it fail to hit the spot with so many developers and companies?

          Thank you to anyone taking the time to read my posts.

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

          It's too old now. Still my current go-to language, but it's been twenty years.

          P 1 Reply Last reply
          0
          • C Chris Losinger

            because it's an MS product.

            B Offline
            B Offline
            BillWoodruff
            wrote on last edited by
            #31

            cue: sound of Alexander cutting the Gordian Knot :omg:

            «One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali

            1 Reply Last reply
            0
            • P Patrick Skelton

              I've experimented with a lot of languages over the years and delivered production code in at least a handful. Of all, I find C# to be the most genial. It has syntax close enough to C/C++ not to alienate those programmers, has plenty of high-level stuff to keep users of languages such as Java happy, and these days has good performance and is open and cross-platform. The only thing I hate about it is the terrible 'destructor' pattern, which you can ignore most of the time. Despite all of this, I rarely if ever read a headline that says C# is gaining in popularity. There's no point in getting into too many syntax specifics because that would be a never-ending discussion but why does it fail to hit the spot with so many developers and companies?

              Thank you to anyone taking the time to read my posts.

              R Offline
              R Offline
              Reelix
              wrote on last edited by
              #32

              Using one of Microsoft's user-friendly Web wrappers, pull the text from a 404 page. EG: Use WebClient / HttpClient / Etc to pull the

              Do not try and find the page. That’s impossible. Instead only try to realise the truth

              text from https://www.codeproject.com/woof/index.aspx[^] To follow best practices, only use exceptions when there is an error you are not expecting. I'm all for C#, but it does have its issues.

              -= Reelix =-

              P 1 Reply Last reply
              0
              • P PIEBALDconsult

                It's too old now. Still my current go-to language, but it's been twenty years.

                P Offline
                P Offline
                Patrick Skelton
                wrote on last edited by
                #33

                Takes me 20 years to learn a language! :confused:

                Thank you to anyone taking the time to read my posts.

                1 Reply Last reply
                0
                • R Reelix

                  Using one of Microsoft's user-friendly Web wrappers, pull the text from a 404 page. EG: Use WebClient / HttpClient / Etc to pull the

                  Do not try and find the page. That’s impossible. Instead only try to realise the truth

                  text from https://www.codeproject.com/woof/index.aspx[^] To follow best practices, only use exceptions when there is an error you are not expecting. I'm all for C#, but it does have its issues.

                  -= Reelix =-

                  P Offline
                  P Offline
                  Patrick Skelton
                  wrote on last edited by
                  #34

                  Part II of the cutting of my programming teeth was in the video game world, using C++, where the rule was that exceptions are very much last-resort, only for events that should not happen and are generally unrecoverable, at least without some kind of restart. One thing I have often found difficult in C# is trying to avoid exceptions. Even when I have tried to do exceptions properly and catch the correct type etc., I find the program gets worse, not better, because, without looking up every single API call, you never know what exceptions might be thrown. Addiction recovery begins with admission so I will now admit here that I usually end with a catch( Exception ) {}. To me, in a language, it is as if you need one of two things: either a slimline composite return type that encapsulates any return value and also some kind of error indication (I know - dangerously close to the error return codes of old Win32 programming); or you need two basic types of exception - real ones that should ideally never happen, and a more everyday exception meaning, "Something has gone wrong in my code so don't continue using this value I am about to return to you."

                  Thank you to anyone taking the time to read my posts.

                  1 Reply Last reply
                  0
                  • V V 0

                    Good points. 1. true, but you can do unmanaged stuff in C# and you can interface fairly easy with any C++ components 2. I disagree here. The investment can be done over time and #1 could help here. Is there a cost, absolutely, but far less then migrating to completely other tools. 3. Can you give examples? Most libraries are as easy or as difficult as in any other language, it more depends on who made the libraries. The C# framework itself is well documented and well supported. What's holding C# back is, I think (no expert) the lack of support in devices like TV's, phones, tablets or other platforms (macOS/Linux) and therefore cross-platform integrations.

                    V.

                    A Offline
                    A Offline
                    afigegoznaet
                    wrote on last edited by
                    #35

                    It's also valid in the opposite direction: with some time invested you can do the job in C++, which is a more performant language, that has it's own huge collection of (mostly) cross-platform libraries. I would also add to the list of issues the lack of compatibility between different .net versions.

                    T 1 Reply Last reply
                    0
                    • P Patrick Skelton

                      I've experimented with a lot of languages over the years and delivered production code in at least a handful. Of all, I find C# to be the most genial. It has syntax close enough to C/C++ not to alienate those programmers, has plenty of high-level stuff to keep users of languages such as Java happy, and these days has good performance and is open and cross-platform. The only thing I hate about it is the terrible 'destructor' pattern, which you can ignore most of the time. Despite all of this, I rarely if ever read a headline that says C# is gaining in popularity. There's no point in getting into too many syntax specifics because that would be a never-ending discussion but why does it fail to hit the spot with so many developers and companies?

                      Thank you to anyone taking the time to read my posts.

                      M Offline
                      M Offline
                      Martin ISDN
                      wrote on last edited by
                      #36

                      why isn't Microsoft more popular? 1. C# is a feature language. they constantly add new features. although this seems the only way for a language, for me it's the least preferable. i adore languages that have a mission to fulfill and that's it. the creators of those languages had to make compromises upfront. C (portable assembly) is one such language. LISP, Lua, Go, Component Pascal, TCL, FORTH... all small languages. 2. i don't know if this is 100% true, but i bet that C#'s philosophy at the time of it's inception, was same as Java's. only OOP is good, everything else is inferior. for me that's like what Hitler used to preach. I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times. Bruce Lee

                      P 1 Reply Last reply
                      0
                      • M Martin ISDN

                        why isn't Microsoft more popular? 1. C# is a feature language. they constantly add new features. although this seems the only way for a language, for me it's the least preferable. i adore languages that have a mission to fulfill and that's it. the creators of those languages had to make compromises upfront. C (portable assembly) is one such language. LISP, Lua, Go, Component Pascal, TCL, FORTH... all small languages. 2. i don't know if this is 100% true, but i bet that C#'s philosophy at the time of it's inception, was same as Java's. only OOP is good, everything else is inferior. for me that's like what Hitler used to preach. I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times. Bruce Lee

                        P Offline
                        P Offline
                        Patrick Skelton
                        wrote on last edited by
                        #37

                        Don't they continually add to C++? After a few years break, I recently returned to C++ and could barely read what I was seeing. There's truth in what you say and obviously you have an absolute right to your opinion but I honestly think some people justifiably decided to hate Microsoft in the late 90s and have never looked again.

                        Thank you to anyone taking the time to read my posts.

                        M 1 Reply Last reply
                        0
                        • P Patrick Skelton

                          I've experimented with a lot of languages over the years and delivered production code in at least a handful. Of all, I find C# to be the most genial. It has syntax close enough to C/C++ not to alienate those programmers, has plenty of high-level stuff to keep users of languages such as Java happy, and these days has good performance and is open and cross-platform. The only thing I hate about it is the terrible 'destructor' pattern, which you can ignore most of the time. Despite all of this, I rarely if ever read a headline that says C# is gaining in popularity. There's no point in getting into too many syntax specifics because that would be a never-ending discussion but why does it fail to hit the spot with so many developers and companies?

                          Thank you to anyone taking the time to read my posts.

                          J Offline
                          J Offline
                          johnnyys
                          wrote on last edited by
                          #38

                          that's a good question, I still use it quite often in my work. I'm working on my own streaming service right now. I found useful info about streaming service like netflix here and decided to give it a try. This article could be useful for beginners.

                          1 Reply Last reply
                          0
                          • P Patrick Skelton

                            Don't they continually add to C++? After a few years break, I recently returned to C++ and could barely read what I was seeing. There's truth in what you say and obviously you have an absolute right to your opinion but I honestly think some people justifiably decided to hate Microsoft in the late 90s and have never looked again.

                            Thank you to anyone taking the time to read my posts.

                            M Offline
                            M Offline
                            Martin ISDN
                            wrote on last edited by
                            #39

                            that is a huge problem and i can't understand why it is happening. imagine you know C++, JavaScript and say Rust. you work at a company. large scale project that involves all three languages or at least two. 6 years latter you leave this company and go to work on a fresh new project at a new company. once again it involves C++, JS and Rust or at least two of them. so now, because there were C++ x20 and C++ 2023, ECMAScript 2019..2025 and Rust 3.x 4.x and the newest Rust 2025 (they will change it to some other naming version) you don't know any of the languages you have worked with for the last 6 years in continuation. a common book on good programming practices is on average 400-500 pages, but the core stuff would be 200 pages. those good programming practices that will make a competitive programmer write better code in FORTRAN and COBOL that a beginner in the safest programming langue in the world. how do we get from 200 pages of good programming advice to a stream of a dozen languages that endlessly evolve every year? "justifiably decided to hate Microsoft in the late 90s and have never looked again." C# was designed by Anders Hejlsberg of Borland. the creator of Turbo Pascal and Delphi. Microsoft destroyed Borland and many many other companies so they can give away money for charity? instead of giving away money for charity they could have taken away less from other companies. nothing i say is against you or your opinion. it is only my opinion. i don't like C# because it is class oriented and because it is from Microsoft.

                            1 Reply Last reply
                            0
                            • R Rick York

                              Microsoft seems to think they are. They also seem to think that deleting what you allocate is far too much to ask of programmers.

                              "They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"

                              T Offline
                              T Offline
                              tcruse
                              wrote on last edited by
                              #40

                              Yes, deleting allocated objects is one of the places that find lots of bugs. Many of these bugs become very difficult to track down. Slow memory leakage is something that eats up lots of support time and turns off many customers.

                              R 1 Reply Last reply
                              0
                              • A afigegoznaet

                                It's also valid in the opposite direction: with some time invested you can do the job in C++, which is a more performant language, that has it's own huge collection of (mostly) cross-platform libraries. I would also add to the list of issues the lack of compatibility between different .net versions.

                                T Offline
                                T Offline
                                tcruse
                                wrote on last edited by
                                #41

                                Maybe. The idea that c++ is highly efficient comes from the fact that c is. However, if using many of the features of c++ can make a c++ application take more memory and run slower than a managed language. With the advent of dotNet Core 5.0, the performance and the cross platform issue mainly becomes moot. The only real thing lacking is WinForms for non-windows environments. The wpf approach has some advantages for gaming and graphic applications. It however, fails when it comes to line-of-business class of applications that fund most development. My question would be why do people still think Java (or its cousins like Kotlin) make sense. My take is that there is still a culture that is anti-Microsoft.

                                W A 2 Replies Last reply
                                0
                                • W W Balboos GHB

                                  CodeWraith wrote:

                                  Too much comfort makes programmers ignorant and lazy.

                                  In different words I've said the same thing for years. Pointer, namespaces, enumerations, everything all use the dot-separator. For those who don't know better, meaning those who learned this with C/C++ first, they are all the same. They look the same, don't they? Double colons and -> ? They're not so terribly hard to type and keep one informed of what the hell's going on.

                                  Ravings en masse^

                                  "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                                  "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                                  G Offline
                                  G Offline
                                  GerVenson
                                  wrote on last edited by
                                  #42

                                  Well ... with the new C# version, at least pointer will come back just for you ;-)

                                  W 1 Reply Last reply
                                  0
                                  • G GerVenson

                                    Well ... with the new C# version, at least pointer will come back just for you ;-)

                                    W Offline
                                    W Offline
                                    W Balboos GHB
                                    wrote on last edited by
                                    #43

                                    And, after enough versions and upgrades, you may even finally be back to C++ One can only hope.

                                    Ravings en masse^

                                    "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                                    "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                                    1 Reply Last reply
                                    0
                                    • T tcruse

                                      Maybe. The idea that c++ is highly efficient comes from the fact that c is. However, if using many of the features of c++ can make a c++ application take more memory and run slower than a managed language. With the advent of dotNet Core 5.0, the performance and the cross platform issue mainly becomes moot. The only real thing lacking is WinForms for non-windows environments. The wpf approach has some advantages for gaming and graphic applications. It however, fails when it comes to line-of-business class of applications that fund most development. My question would be why do people still think Java (or its cousins like Kotlin) make sense. My take is that there is still a culture that is anti-Microsoft.

                                      W Offline
                                      W Offline
                                      W Balboos GHB
                                      wrote on last edited by
                                      #44

                                      tcruse wrote:

                                      My take is that there is still a culture that is anti-Microsoft

                                      Now how on earth could such a culture develop? A mystery in a conundrum. (or something related to how they treat their customers - like releasing defective software since as long ago as DOS 6.0)
                                      [edit] I had misspelled DOS (believe it or not)[/edit]

                                      Ravings en masse^

                                      "The difference between genius and stupidity is that genius has its limits." - Albert Einstein

                                      "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010

                                      1 Reply Last reply
                                      0
                                      • D Daniel Pfeffer

                                        My $0.02: 1. For all its advantages, C#, like Java, is unsuited to system-level programming. The kernel in both Windows and Linux is programmed in C and ASM. 2. Many organizations have an investment in C and C++ code. Conversion to C# would require a major investment. Note that this is also one of the reasons that companies keep using Cobol, so I don't see this changing in the near future. 3. C# does have a serious learning curve - not for the language, but for its libraries. If you have learnt to do things in C or C++, converting to C# is far from simple.

                                        Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.

                                        T Offline
                                        T Offline
                                        Tomz_KV
                                        wrote on last edited by
                                        #45

                                        agree.

                                        TOMZ_KV

                                        1 Reply Last reply
                                        0
                                        • T tcruse

                                          Maybe. The idea that c++ is highly efficient comes from the fact that c is. However, if using many of the features of c++ can make a c++ application take more memory and run slower than a managed language. With the advent of dotNet Core 5.0, the performance and the cross platform issue mainly becomes moot. The only real thing lacking is WinForms for non-windows environments. The wpf approach has some advantages for gaming and graphic applications. It however, fails when it comes to line-of-business class of applications that fund most development. My question would be why do people still think Java (or its cousins like Kotlin) make sense. My take is that there is still a culture that is anti-Microsoft.

                                          A Offline
                                          A Offline
                                          afigegoznaet
                                          wrote on last edited by
                                          #46

                                          The idea that C++ is highly efficient comes from the zero cost abstraction design, not from anything else. Besides, performance is not everything, languages like C and C++ can offer deterministic execution time as well as object lifetime, stuff that is impossible with managed languages by design, which make them a poor choice for system programming. The fact that NetCore doesn't support WinForms, makes C# a poor choice for cross-platform GUI application development as well, so it ends up being a niche platform for people who find themselves in need to program on Linux but don't want to learn anything besides C#. "However, if using many of the features of c++ can make a c++ application take more memory and run slower than a managed language." Really? you have an example?

                                          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