5 ms·
Miles ahead of what? There is a reason that we write javascript in the browser and operating systems in c or c++, and telco services in erlang, and academic wor
by ludston 3y ago
Miles ahead of what? There is a reason that we write javascript in the browser and operating systems in c or c++, and telco services in erlang, and academic works in python rather than in C# or F#.
.Net is the best at being .Net I guess. It has loads of libraries that are both good and terrible. I think the .Net web ecosystem is a god-awful mess of magic DSL's and configuration, and more and more sugar syntax is being added to C# to make it harder and harder to on-board new developers, and .Net Core deciding to break backwards compatibility is probably costing my org 10's of millions of dollars. But I guess I don't need to type as much as I did 10 years ago.
- throwaway2990 3y ago[flagged]
- omnicognate 3y agoI can't speak for the person you're replying to but I have long professional experience with .NET and agree with what they said. I left my last job specifically to get away from it.
- throwaway2990 3y ago[flagged]
- omnicognate 3y ago> The OP and yourself must struggle with programming. shrug "Everybody who doesn't share my language preferences must be bad at programming." Enlightened thinking there.
- BlueTemplar 3y agoIt's more a fields thing. Biologists are all over R, physicists - Python, &c.
- criddell 3y agoWhat set of technologies do you prefer?
- omnicognate 3y agoC++ and Python. Probably Rust too at some point in the future, but while I love using it my own time I wouldn't recommend its use in my working environment yet. This is not a universal thing. I wouldn't recommend these languages for every problem and there are lots of places where C# and others definitely makes a lot more sense (including, arguably, the problem domain in my last role). It's just what I like to work with and what is best suited to the work that I do and enjoy.
- FrustratedMonky 3y agoAny other details you can provide. It seems like .NET is really geared toward business cases. But .NET is huge, so covers a lot, and not all great. If you were doing something embedded, or specialized. Maybe that is thing. On other hand. I also used to love .NET, but when I tried using Python, I did have to agree Python was really fast for simple cranking out little programs.
- omnicognate 3y ago"Business" also covers a lot. I work in a specialised part of finance, but specialised requirements aren't rare. There is an enormous amount of software written across the world that fits well into the middle ground catered for by .NET, but there is also a lot that doesn't.
- coldtea 3y ago>Miles ahead of what? Miles ahead of the tooling, frameworks, and features of most languages. >There is a reason that we write javascript in the browser Yes, we're stuck with it. >and operating systems in c or c++ Yes, the legacy. >and telco services in erlang Erlang doesn't have some particular stronghold in telco services. It was created by Ericsson for their own such use, but it's not like other/most telcos use Erlang. Ericsson itself even neglected (and for a period even banned new Erlang projects, preferring other languages). >and academic works in python rather than in C# or F# Huh? Who writes "academic works in Python"? I'm sure some do. Still many write Java, C#, and others, including C++ and even Haskell. Except if by "academic works" you meant "in machine learning and scientific computing", or "use as teaching language".
- airtonix 3y ago[dead]
- Octoth0rpe 3y ago>>and operating systems in c or c++ > Yes, the legacy. That's hardly the only reason, and certainly not the reason why new OSes are not written in .net languages.
- cqqxo4zV46cp 3y agoWhat new OSs?
- coldtea 3y agoThat's the main reason. New OSs like Fucsia have started being written in Rust, and part of OSs, including Windows and now Linux too, have also adopted it. If we had more mature systems languages suitable for OS development sooner, people wouldn't use C and C++.
- Xeamek 3y agoBut syntactic sugar is important though. Arguably one of the biggest downsides of c++ is that it has tons of features without there being a syntactic sugar for using them, which in turn makes them less attractive
- masklinn 3y agoC++ has tons of syntactic sugar, the problem is that it's largely syntactic diabetes leaving you confused and unsure about what's happening. The recent article about C++ initialisation was a good reminder.
- addicted 3y agoThere’s having syntactic sugar and there’s whatever the F C# is trying to do. There is so much different syntactic sugar to do the same thing that it’s becoming very difficult to onboard new devs to any slightly complex application worked on by multiple devs because invariably the codebase will consist of 3-4 syntaxes doing the same thing which can get really hard to grok. In an ideal world C# would have gotten rid of a lot of the ceremonial code it had but unfortunately backwards compatibility means that’s not likely to happen. I wish C# declared a preferred singular syntax for every scenario and provided IDE support to warn when that preferred syntax wasn’t being used.
- cjk2 3y agoI said this elsewhere in the thread, but C# reminds me of The Homer now. https://simpsonswiki.com/wiki/The_Homer https://simpsonswiki.com/wiki/The_Homer No one is sure what problem it is trying to solve anymore. Also the amount of people I see blowing their toes off by not understanding stuff like LINQ and when stuff is executed and materialised into memory is insane. That and entirely not understanding async and any weird side effects like things happening on other threads and losing context and all sorts. Urgh. Im sure C# version 22 or whatever it's on now will allow you to write in plain English at compile time and it'll use CoPilot to compile this to C# which doesn't work.
- christophilus 3y ago
- deleted 3y ago[deleted]
- dagaci 3y agoI would say it’s completely ok to break backwards compatibility every 20 -30 years as is the case with .NET. Breaking compatibility to consolidate and forward past learnings and that kind of thing. The old .NET framework will be supported for many decades into the future, so it’s not necessary to upgrade if there is no benefit, for example when your customers are .NET dev’s who expect to be support with the new versions
- formerly_proven 3y agoThis doesn't sound like once every 20-30 years (.NET itself is only 22): > We do not guarantee 100% compatibility between major versions. This is true for both ASP.NET Core and the runtime itself. We intentionally make breaking changes where we believe that they are necessary to move the platform forward and the cost of the .NET ecosystem adjusting to them is low enough. There is a major .NET release every year. Every other release is LTS with 3 years of support. > The old .NET framework will be supported for many decades into the future I'd guess so but Microsoft is not as clear on this as you'd wish. In all their policy documents they say it's "supported as a Windows component on the latest required update" or "Beginning with version 4.5.2 and later, .NET Framework is defined as a component of the Windows operating system (OS). Components receive the same support as their parent products, therefore, .NET Framework 4.5.2 and later follows the lifecycle policy of the underlying Windows OS on which it is installed." To me this seems to be carefully written to allow the possibility of changing that Windows component status in a Windows release. So, .NET Framework is supported as long as it is part of Windows, until it isn't.
- fabian2k 3y agoThere was one huge breaking change, that was the move from the Windows-only .NET Framework to the cross-platform .NET Core. I assume that is the one the parent is talking about. The major releases of modern .NET are relatively painless now, there aren't that many breaking changes. This is pretty much the same as many other languages, and kinda unavoidable unless you go for an ecosystem that aims for very long term stability and is essentially frozen. The early .NET Core releases had some annoying breaking changes, but it's very different today.
- addicted 3y agoWe write JavaScript in a browser because of a historical quirk and literally no other reason. There are 0 ways in which JavaScript is the most suitable choice for the browser other than Netscape wanted their own new scripting language really fast and JS was what Eich could come up with in a couple of weeks. We write operating systems in C because it’s a thin veneer over assembly and coding in assembly is really hard. We use C++ instead of other languages because of its C interop. Erlang is a really good fit for concurrency so that’s one of the few languages that’s used where it is for its technical merits. Python is used for academic work solely because it’s easy to learn and easy to get started with so a lot of colleges used python to teach engineers/scientists programming. Python became the language of academia because that’s what the people in academia knew. If colleges had adopted Ruby or Lia for their Programming for non CS majors 101 classes instead, Lua or Ruby would be the language of academia.
- bradleyjg 3y agoit’s easy to learn and easy to get started with Don’t disagree with a lot of the rest of your post, but this is a real, genuine virtue and ought not to be lightly dismissed.
- epgui 3y agoPython is not fundamentally any easier to use or to learn than something like Haskell or Clojure or Racket or Scheme (I'd argue the contrary) though. It's only true in practice out of sociohistorical accident, because your colleagues can show you how to use it to do things, because their colleagues once showed them.
- lpapez 3y agoThis is just an absurd statement, of course Python is easier to learn than either of those languages. I've taught Haskell at an university and almost none of the students ever found the model of computation natural. I think we humans simply find following a series of steps easier than reasoning in an abstract mathematical sense. That being said, I absolutely see the value of the latter, and consider it a good thing that functional concepts are gaining popularity in imperative languages.
- ern 3y agoMicrosoft decided to release .NET 8 without support for InProcess Function Apps. After a few months of radio silence, they have finally acknowledged that they were working towards support at some point before .NET 6 hits end of life later this year. I have a fairly large portfolio of legacy in-life systems that are stuck in limbo now, and a limited group of developers to move them to .NET 8. We wont have to move them into isolated mode on short notice, to get them to .NET 8 but this isn’t the Microsoft of old, where backwards-compatibility is a paramount consideration.
- thefz 3y agoYou can still pretty much use .NET and skip Core, so I don't get your point
- antiframe 3y agoThat would depend on what platform you are developing on, though. I, for example, can't.
- thepra 3y agoI mean, C# runs fine in the browser nowadays too, thanks to WebAssembly
- neonsunset 3y agoYou’re attributing historical choices (or choices that happened before .NET even existed the way it is today) to inherent qualities of technology in the current situation. This is flawed logic and I assume people upvote it for visibility rather than genuine agreement.