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.

    T Offline
    T Offline
    theoldfool
    wrote on last edited by
    #20

    My $0.02: Is your question really why isn't C# number 1? I think it is very popular. I also think the so-called surveys are probably skewed somewhat towards website development. With more and more applications moving to the Internet and DYI frameworks and such popping up, there is more emphasis on other languages for those developers. Read Javascript. People want to run stuff on other servers. Methinks that the MS push was for developers to write C# applications and run them on Windows servers in Azure. Then, they discovered that many of the servers on Azure were Linux. Same servers would run on AWS, maybe for less $. So, how to make these companies stay within the Microsoft ecosystem? They seem to be working hard on stuff like Blazor and Typescript to push ahead and, I suspect, this will also push C#. We are looking at Blazor for an IoT application via Oqtane (an application framework based on Blazor). It has many warts and bugs in V1. Open source project with limited number of developers. I suspect that we may be trying to fit a round peg into a square hole but I want to pursue it and learn some stuff.

    If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.

    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.

      D Offline
      D Offline
      Daniel Pfeffer
      wrote on last edited by
      #21

      V. wrote:

      but you can do unmanaged stuff in C# and you can interface fairly easy with any C++ components

      Yes, you could write the UI (for example) of the system tools in C#, but why bother? It just adds another requirement (and another failure point) to the system.

      V. wrote:

      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.

      I did not say that it could not be done. I did say that because of the cost it is unlikely to be done, giving the prevalence of Cobol as an example of a similar case.

      V. wrote:

      Can you give examples?

      It's not that learning the libraries is more difficult than learning the libraries available for other languages. The issue is the conversion costs - you have to take a productive programmer, expert in C or C++, and turn him into a novice C# programmer. It is true that he/she will eventually learn the C# way of doing things, but in the meantime - they will be less productive. Many companies are unwilling or can't afford to pay this cost.

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

      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.

        D Offline
        D Offline
        den2k88
        wrote on last edited by
        #22

        In my own experience the reason it is not too popular are the following: 1) Platform. Most features are Windows specific. It builds heavily on the .NET framework which is complete only on Windows. C++ with QT is just as platform independent. 1bis) Platform. Most devs today work either on web based stuff or on embedded (as in Renesas, ATMel and other) stuff. On the former there are more widespread tools, on the latter you have 128 kb of RAM and 2 MB of flash with stringent real time issues, g'luck with C#. 2) .NET framework is not that great. It requires heavy installation on the target and has backward compatibility issues. 3) .NET has terrible documentation, mostly autogenerated. The learning curve is steep and the MS way is to keep changing stuff so once you master it you're already outdated and have to spend money and time again to regain mastery - which will be outdated by the time you reach it. 4) Performance. No matter what the fanbois say, C/C++ is faster and uses less memory, epsecially because C/C++ developers are forced to know what they are doing instead of going commando with memory usage. 5) Security. C# software is perceived as much more likely to be reverse engineered through the generated ILASM than software decompiled from binary. Wether this is true or not it (I'm not so sure it is actually any easier) in my experience it has been one of the most common reasons for the language to be vetoed by the customers.

        GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++*      Weapons extension: ma- k++ F+2 X

        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.

          C Offline
          C Offline
          Chris Losinger
          wrote on last edited by
          #23

          because it's an MS product.

          B S 2 Replies 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.

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

            Android and IOS.

            It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food

            1 Reply Last reply
            0
            • B BillWoodruff

              CodeWraith wrote:

              an egg laying wool milk sow.

              that's quite a tweedy moofull :wtf:

              «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

              C Offline
              C Offline
              CodeWraith
              wrote on last edited by
              #25

              Nothing for vegetarians :-)

              I have lived with several Zen masters - all of them were cats. His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.

              1 Reply 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

                R Offline
                R Offline
                Rick York
                wrote on last edited by
                #26

                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 T O 3 Replies 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.

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