Why isn't C# more popular?
-
because it's an MS product.
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
-
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.
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 =-
-
It's too old now. Still my current go-to language, but it's been twenty years.
Takes me 20 years to learn a language! :confused:
Thank you to anyone taking the time to read my posts.
-
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 =-
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.
-
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.
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.
-
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.
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
-
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
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.
-
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.
-
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.
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.
-
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?"
-
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.
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.
-
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.
"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
-
And, after enough versions and upgrades, you may even finally be back to C++ One can only hope.
"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
-
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.
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]"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
-
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.
-
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.
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?
-
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.
I think there's a few reasons. 1) In VS, it's a go to language for desktop development, yes and sorry, there are tens of thousands of those in use every day. No need for cross platform, ever. While it's still a substantial market, it has been eclipsed by cross platform stuff. I know it's fully capable of that, but you start to lose the advantage of the language in a hurry. 2) To my first case point above, there's also a split between vb.net and C# that dilutes the usage. (Fire away!) Being bilingual, those translations back and forth are pretty easy in the .net environment. Yes, I know the differences but over the years there's a lot of parity and you may never hit a wall in vb.net that is solved in C# in real world apps. 3) Without a good reason, you're not going to move from C/C++ to C#. You might if find yourself in a RAD desktop scenario, but you're probably not chasing that world if it's out of your comfort zone. 4) Programming has matured some into more of a profession. Your eye doctor doesn't see some new ortho procedure and think; "hey, I'll be an orthopedist". I still glance at the newest languages, but it's not the 80's or 90's and having time to play with a massive language isn't a hobby anymore. The be all, end all, one size fits all theory (Java,lmao) hasn't really panned out well. Languages are tools that have their best use. You can put a screw in with a hammer, but it's liable not to be pretty.
-
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.
I believe that there are too many languages available for any one language to become the number #1 language in use. Though I am completely fluent in C# and have built quite a few C# applications over the years, I still prefer VB.NET for all my own development endeavors. This comes from my years as a DBase\FoxBase\Clipper developer in the late 1980s and 1990s. One cannot also assume that surveys are actually are a reflection of popularity for any one language as all surveys have built in biases. As my wife has always told me, marketing and surveys is all about what answer(s) you want to obtain and then developing surveys to attain them. Nonetheless, as some commenters here have said, C# cannot compete with those areas where C\C++ must be used and\or is preferred. And nor can it compete with the many niche languages that have popped up over the years that have very loyal proponents, even though C# can do most if not all of what these languages provide. You also still have a lot of Microsoft haters out there who would never give a Microsoft product a legitimate chance. But do not despair, C# and VB.NET will be around for some time to come... :)
Steve Naidamast Sr. Software Engineer Black Falcon Software, Inc. blackfalconsoftware@outlook.com
-
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.
It is a (mostly) general language, but best suited to app development, there is a whole world of development that C#/net can't touch or has no part of.
-
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.
I think there's a lot of great reasons here that focus on language alone, and a handful that talk about how software is released once it leaves the IDE. While Azure has implemented a lot of nifty features to make deployment easier, to me the biggest draw back is the release and management of applications in Prod. Working in a number of FinTech companies, they used C# but only in very limited ways. Who wants to support IIS servers and deal with the underlying Windows server? It's a nightmare. It took a long time to get decent config management tools to work with Windows. While linux goes bad too, patching issues and system failures feel more severe on Windows server. For the majority of applications especially anything customer facing Java rules the roost. I'm not thrilled about Java / Tomcat but I rather support that then anything C#. I've never seen a .net core deployment in the wild, though I would love for things to go that way. I've thought about specializing in that area to assist orgs trying to accomplish that but definitely a lot of sharp edges to consider. The horror stories seem to end in a full stop not compatible not supported by Microsoft.