3 ms·
Nice. At what point would it make more sense to just leave c# as it is and move on to a new "language"? I like all the changes and more importantly I guess I
by pointernil 11y ago
Nice.
At what point would it make more sense to just leave c# as it is and move on to a new "language"?
I like all the changes and more importantly I guess I actually understand the intention and the need for them, at same time I'd like to question how all those actually fit into one language...
I understand MS has a very strong record for support of legacy software, systems etc. So for sure on point would be to still "support" legacy C# code and allow for more modern paradimes in the same language, but given all the other .net languages and the interoperability provided: what is the drive behind pulling it all in into C#?
- MichaelGG 11y agoThey're far too heavily invested in C#, and good alternatives, like F#, are viewed as too difficult for the majority of their customer base to deal with. They can add these features, let less ... able ... customers argue over "var" and what they'll use, while pleasing other users. C#'s seriously annoying to code in due to it's statement-oriented nature and lack of basic features. Additionally, because libraries take dependencies on C# compiler implementation details, other languages do not interop as seamlessly as the .NET/CLR concept would have us believe. Looking at things like the precise output of lambda expressions, or all these APIs that take object, then read the properties as an argument list (which should just take a list of tuples instead). Also, just imagine the fallout of "Microsoft abandons main .NET language!"
- mattmanser 11y agoSeriously annoying? If you don't like it, don't use it and comment on other things. There's plenty of people that think it's one of the best languages available today.
- MichaelGG 11y agoYes, it is very annoying. It's overly verbose for no good reason. Well, if you count internal compiler complexity a good reason (that's why fields don't have type inference according to Eric Lippert, though they still haven't fixed up that inconsistency in Rosyln it seems). Plenty of people think C++ is a good idea for common apps. Plenty of people think node and JS are awesome. Plenty of people loved Flash. What's your point? Because C# is so popular (like JS), its questionable decisions ripple all over and affect people even if they aren't directly using C#.
- pointernil 11y agoI think your statements are a little too general, even though you might have a point here: What does it tell about the the real life "interoperability" on the .net platform, when every language needs all the features? My guess would be: the technical "possibility" is there yet the eco-system as a whole of day to day developers, technical managers, project life-cycles and real life products with some legacy heavily bends towards single application development language even though developers mostly already use several other languages like for scripting or sql, html, css, javascript etc.
- sremani 11y agoC# is dove-tailing lot of F# improvements/accomplishments. So if you want to use these features today and not wait till C# 7.0, its already time to code in F#.
- rattray 11y agoThese are pretty small changes on the whole, no? Adding tuples? A new datatype here and there? That's pretty standard for what's put into new language versions. And the work to port to a completely new language is quite hard; the work to update a codebase to these changes seems tiny in comparison to even rewriting in F# or Java, let alone something radically different (say, a lisp).
- Too 11y agoBranding and recognition. Microsoft wants to be able to say C# is the top 5 most used programming language. Not that they have 10 different languages in the top 100 used ones. C# is the flag ship and there shouldn't be any question whatsoever which language you should use if you run the MS stack (unless you have very strong desires for something special, like F#). Splitting the language into a new one would just segregate the community and you risk ending up with the python 2vs3 mess. Also consider working in enterprise and asking your manager if it's ok to "change language" from C# to MSNEW#, vs doing a "minor update" from c# 6.0 to 7.0. Even if MSNEW# was backwards compatible and C# 7.0 wasn't, i imagine the answer on the second question to much more likely get an ok.
- luddypants 11y agoThis has no been the case historically, I'm not sure why it would be now. Why would ms invest in languages like vb.net and f# if so? Choice of languages that target the CLR has always been a selling point even though c# is dominant.