|
|
I agree. As an embedded developer (now retired), neither C# or Java would have been a viable option for the products I worked on. In the last 20 years of my career I think the largest amount of memory I had was 256K of RAM and 1M of FLASH (a TI DSP). Most of my projects had way less than this so C# or JAVA were nonstarters.
|
|
|
|
|
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"
|
|
|
|
|
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.
|
|
|
|
|
I somewhat agree with the other responses but not entirely. Plenty of people are ok installing NodeJS/npm on servers so I don't get the runtime argument there. Also C# has excellent interop in my opinion with both C and C++ so I don't see why you'd have to convert your entire code-base.
Sure C# isn't great in ultra-high-performance scenarios where ASM, C, or C++ would be a better fit. No managed language is a good fit for those scenarios. But beyond that I don't get it either.
|
|
|
|
|
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.
|
|
|
|
|
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).
|
|
|
|
|
Because Lua is better.
|
|
|
|
|
Yes, I am generally impressed by Lua. Such a simple idea implemented well.
Thank you to anyone taking the time to read my posts.
|
|
|
|
|
You beat me to "because C++ is better". I'd enjoyed the answers of those who had taken it seriously.
|
|
|
|
|
|
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.
|
|
|
|
|
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
|
|
|
|
|
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.
|
|
|
|
|
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
|
|
|
|
|
because it's an MS product.
|
|
|
|
|
cue: sound of Alexander cutting the Gordian Knot
«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
|
|
|
|
|
The first correct (IMO) answer
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
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
|
|
|
|
|
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.
|
|
|
|
|
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!
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.
|
|
|
|
|
why isn't Microsoft more popular?
- 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.
- 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
|
|
|
|