Hi. I wonder if the .NET platform is such a jack of trades, master of none. The backend is ruled by Java, on the Javascript front, in mobile Kotlin, in games and low-level things C++ and .NET and C# trying to embrace all these areas and as we know if something is to everything it is often up to nothing.
Maybe it’s a bit of an exaggeration, but does this “hessance” of MS make sense and the future? As I wrote, if someone wants to make an advanced web application it will choose Jave, C# can also be, but nevertheless Java towers. Further, does Blazor have any chance of replacing JS? Will anyone seriously choose Xamarina instead of Kotlin for writing a mobile app?
“The backend is ruled by java”… more like backend is ruled by java developers. Luckily I see a shift towards .net core also because the learning barrier is much lower.
Seriously, the java ecosystem is really really horrible to break into in 2020. Things that take 10 seconds in modern frameworks like .Net or Node take forever to setup for just a basic project in java
Well, you just have Sitecore and SharePoint in one corner, against Adobe, SAP, IBM stacks on the other.
.NET is almost 20 years old. Yet, I argue with this. To me, it’s maximum 2 years old. All the syntax features, recent technologies, new VS, a fairly huge revolution on C# – it’s all today’s C# and .NET. It can be used anywhere, since recently, in research too. Yes, I genuinely believe that not only F#, but even C# can replace Python and R. I hope to be among those who push .NET up to it (I’m a contrib of one lib). The technology’s fairly awesome, and even JIT, which is considered as a disadvantage, is actually a huge advantage, yet not used too often though. There might be completely new paradigms and approaches in programming with dynamic compilation, allowing to run C# code faster and safer than C++, more convenient than Python in industrial projects. Not to say, F#… is actually a beatiful language. Static typed, but behaves like a dynamically typed language… exclusive declarative programming, that’s what we deserve too.
.NET is at least as capable as Java on the backend, and is an fact the preferred choice for many devs. C# is the most popular scripting language for games.
Xamarin, ML.Net and Blazor might be your choice only if you already know C#, but are great alternatives if you do.
What would you want MS to do with .NET?
I don’t agree the backend is ruled by java. There’s also a huge mix of Go, Python, Node, Ruby, c# and even PHP.
Unless you are locked on a platform like mobile you will probably have multiple viable and popular options when choosing a language
You don’t enjoy choice? Yeah you can do backends with java, ruby, JavaScript,python and many other languages. Every language has advantages and disadvantages. For example the licence cost of java is a big disadvantage for many companies… Only because it is popular now doesn’t mean it will stay popular.
A jack of all trades, but master of none – is still much better than a master of one.
“T” employees are the best!
The backend is ruled by Java
That’s simply not true. Java is prevalent, yes, but there is a large and growing collection of sites and apps that use any of a half dozen backends that are not Java, .Net being just one example.
Java is prevalent for the same reason that PHP is prevalent: because that’s all there was for a long time – not because people prefer it over other tech.
This “master of none” stuff is just nonsense.
Kotlin is a great language, but it’s not the obvious choice for mobile and even wuth the Google endorsement has had slow adoption. Most devs use some kind of cross platform solution.
I wonder if the .NET platform is such a jack of trades,
Well, that part is true. What is the .NET platform aimed at? With projects like .NET Core and Blazor being well supported, clearly it’s aimed at “everything”.
The backend is ruled by Java
In what sense? I dislike pissing contests, why use that language “ruled” ?
Further, does Blazor have any chance of replacing JS?
Typescript IMHO has a good chance too.
But the key evolution here that enables Blazor is WASM which is an attractive thing to target for a whole lot of languages. Blazor is the .NET -> WASM plan. There are others. Google “Rust wasm”, “Swift wasm” etc.
But the key evolution here that enables Blazor is WASM which is an attractive thing to target for a whole lot of languages. Blazor is the .NET -> WASM plan. There are others. Google “Rust wasm”, “Swift wasm” etc.
To be pedantic, that’s Mono-WASM. Blazor is an SPA framework on top of that.
Also not trying to be pedantic, but typescript is just a superset of javascript, so it can’t replace it. TS is transpiled into JS
In my personal experience, 80% of my programming jobs have been business workflow software. Not games, not smartwatches, not embedded devices, not apps. Just straight business workflow. I wrote tank simulations with Java in my first job and I wrote the Bluetooth stack in C++ for the Carlson Explorer II handheld surveyor. Everything else has been websites or business process workflow in .NET.
Based on your post history, it sounds like you are a junior guy. You’re into games and you are just getting started with software. I think that’s awesome. Welcome to this amazing world where you get to learn every day.
You know how programmers always joke about never needing calculus or linear algebra? That’s because most jobs have nothing do with games or apps. Most jobs involve taking data from a form, processing that data, putting it into a database, and then extracting it and formatting it for a user. .NET is really, really good at this.
When it comes to taking data from a user and throwing it into a database, .NET isn’t a Swiss Army Knife, it’s a damn Caterpillar 775. And here’s the good news, there will always be a company looking for a developer to help them maintain their .NET Point of Sale system or Custom Payroll System, or Hospital Management Software.
.NET turns into a Swiss Army Knife once you get away from the business process stuff, but that’s why we have other languages. So I think the “essence” of .NET will continue long into the future as long as there are companies that rely on it for business process. You just may not see this yet because It doesn’t sound like you are out in the business world, but once you are, .NET will feed you and provide for your family for years to come.
From my experience there is a huge market for mid sized enterprise projects where .Net fits in neatly. This will only increase with the adaptation of .Net core.
in games and low-level things C++
Rust is growing for low level programming and for games well sure, C++ is usually used for the engine code but C# is a very popular choice for scripting (it’s used in Unity, Godot and Cryengine). Not to mention, Unity is working on converting a lot of their core engine code into a subset of C# they built called High Performance C# together with their Burst compiler.
You might want to rethink what you ‘think’ you know and dig deeper.
A team of the world’s smartest engineers create something, like C#, and everyone thinks they know better. We need to stop doing this with most technologies and software until we are in a position to offer insight or actionable suggestions.
Java is not Javascript
.NET and C# has nothing to do with Java
🙂
More like Swiss cheese
There is no technical reason to choose .Net over java other than some specific external libraries. So it is a lie to say that you wouldn’t pick .net for big enterprise project. .net core is really great technology and can be used for every backend project with success. However, I would stick with backend projects and for mobile and frontend pick technologies that are better suited for these tasks.
Everything below is my opinion. I may be wrong, but it is based on my observations of this industry.
In my opinion blazor has no chance to be widespread among frontend developers. It is very cool project, but it is also another try to solve frontend with .net which will fail like webforms (but for different reasons ofc.). Maybe f# could make a difference but Javascript ecosystem Is so cool that I don’t see it coming. Successful blazor is just a wet dream for c# devs who think that they will suddenly like frontend work if it will be written in c#. Of course building a way to use .Net in our browsers may open many doors, but webdevelopment isn’t the door that many people will be going through with this tech.
Please don’t choose blazor as frontend tech in your next projects as a employee. Your employer will be hurt by that.