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

    I can another half cent to Daniel Pfeffer's response above. For any any server-side programming I would avoid languages that require a runtime engine like Java and C#. Deployment and upgrading on production servers is [or seems to me] tough enough without having to bother with a runtime environment. OFC C# has LINQ and loads of nifty libraries for this and that. But for streaming video like we do it will not cut the cake.

    "If we don't change direction, we'll end up where we're going"

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

    I agree, but then again what language does not rely on libraries, be it some framework, a runtime library or the OS? The last computer I had that starts with a totally blank memory and waits for you to key in the first machine code instructions before you can let it run was my little Elf from 1978. And what did I learn on that computer? Write libraries if you don't want to type everything every time.

    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
    • P Patrick Skelton

      Again, I'd agree. I don't expect C# to take over the world, but it does seem to me that it would be a good even sometimes better fit for some new projects and yet seems almost to be the last language of choice. I find the dependency issue to be a problem with almost every language/system I've worked with, and indeed C# usually seems to fair pretty well on this score. And companies I've worked with seem eager - sometimes too eager - to adopt the latest shiny language on the block. Maybe it's a hangover from the days when 'real' programmers simply didn't want anything that Microsoft have had a hand in? (I used to be a Microsoft hater but much of their stuff these days seems excellent.)

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

      J Offline
      J Offline
      Jon McKee
      wrote on last edited by
      #11

      I don't get it personally. If I had to guess I'd say people either want to use what's new and shiny like you said, or that people want to justify using what they've always used. C# hasn't always been as platform-agnostic as it is today so I imagine a lot of people used other languages at that time like Java which today is objectively worse than C# in every way in my opinion (e.g. properties; for the love of everything related to software, why has Java been so obstinate on this subject).

      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.

        F Offline
        F Offline
        F ES Sitecore
        wrote on last edited by
        #12

        VB.net: Hold my beer...

        1 Reply Last reply
        0
        • C CPallini

          Because Lua is better. :-D

          R Offline
          R Offline
          Rage
          wrote on last edited by
          #13

          You beat me to "because C++ is better". I'd enjoyed the answers of those who had taken it seriously.

          Do not escape reality : improve reality !

          1 Reply Last reply
          0
          • C CodeWraith

            1.1. It's trying to be useful for everything, an egg laying wool milk sow. To do that, it relies too much on libraries for and against everything. A 'one size fits all' approach, while convenient, can get a little bit wasteful. On a PC they easily get away with this, but on a smaller computer with a more modest processor and far less memory things get tough and you don't have enough control over the computer's resources to get very far. ... 4. Too much comfort makes programmers ignorant and lazy. When an allmighty framework does everything for you, you don't have to waste a thought on anything yourself, right? Wrong, when you rub the framework the wrong way and then start to improvise to correct the problem.

            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.

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

            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 1 Reply Last reply
            0
            • C CodeWraith

              1.1. It's trying to be useful for everything, an egg laying wool milk sow. To do that, it relies too much on libraries for and against everything. A 'one size fits all' approach, while convenient, can get a little bit wasteful. On a PC they easily get away with this, but on a smaller computer with a more modest processor and far less memory things get tough and you don't have enough control over the computer's resources to get very far. ... 4. Too much comfort makes programmers ignorant and lazy. When an allmighty framework does everything for you, you don't have to waste a thought on anything yourself, right? Wrong, when you rub the framework the wrong way and then start to improvise to correct the problem.

              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.

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

              I never claimed that my list was complete... :)

              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
              • C CodeWraith

                1.1. It's trying to be useful for everything, an egg laying wool milk sow. To do that, it relies too much on libraries for and against everything. A 'one size fits all' approach, while convenient, can get a little bit wasteful. On a PC they easily get away with this, but on a smaller computer with a more modest processor and far less memory things get tough and you don't have enough control over the computer's resources to get very far. ... 4. Too much comfort makes programmers ignorant and lazy. When an allmighty framework does everything for you, you don't have to waste a thought on anything yourself, right? Wrong, when you rub the framework the wrong way and then start to improvise to correct the problem.

                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.

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

                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 G 2 Replies 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.

                  V Offline
                  V Offline
                  V 0
                  wrote on last edited by
                  #17

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

                    Greg UtasG Offline
                    Greg UtasG Offline
                    Greg Utas
                    wrote on last edited by
                    #18

                    I don't know C# well enough to offer many opinions, but it looks good to me unless you need to manage memory. But C# seems to be very popular on this site! It, and web-related stuff, seem to account for the majority of articles and questions.

                    Robust Services Core | Software Techniques for Lemmings | Articles
                    The fox knows many things, but the hedgehog knows one big thing.

                    <p><a href="https://github.com/GregUtas/robust-services-core/blob/master/README.md">Robust Services Core</a>
                    <em>The fox knows many things, but the hedgehog knows one big thing.</em></p>

                    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.

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

                      An interesting discussion ! I wonder if we are confounding two different criteria: popular vs. fashionable ? imho, the cross-platform millstone pushes people to use ... make more code with ... weird flavors (to me), like Python. JavaScript (nee EcmaScript), a post hoc misnamed lowly scripting language, became Cinderella at the Browser Ball as a default, a compromise between ruthless competitors.

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

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