C#'s overarching philosophy is basically that there's no such thing as a bad feature
Nicely put.
For my part, I work well under constraints, and I appreciate when a language nudges a user towards best practices (especially since, you know, I have coworkers...)
Personally, I too find that such an overload of features is not a good thing, that is why I recommend students to learn Java before anything else. A stricter environment to learn basics can be adopted to flexible life, not the other way around.
But it is this philosophy that has made C# a truly universal language. Web, All desktop platforms, all mobile platform. Unity, Godot, Game development. Blazor for webassembly. Micro-controllers, You name it, you will get C# on it.
But it is this philosophy that has made C# a truly universal language. Web, All desktop platforms, all mobile platform. Unity, Godot, Game development. Blazor for webassembly. Micro-controllers, You name it, you will get C# on it.
I have to give you game engines--I'm not in that space but I'm aware C# is big in it--but for the rest I'm skeptical that C# is more per-se universal than anything else. Seems like these days pretty much everything has a native compiler, a WASM compiler, and a JVM compiler. Like, I could write pretty much the same paragraph about the universality of, say, LISP, which has the smallest list of language features I'm aware of.
Yes. there is a native compiler for everything. Game engines have C++, Godot have GDScript. Rust is getting popular with wasm. But there is a C# solution available, for those who want it. Mobile apps, with Xamerin, Front-end with razor and blazor, Desktop apps with multiple gui toolkit support, There is an SDK for microboards like arduino too. Microsoft is not trying to make C# be the best solution in all the field, but trying to be "An Acceptable Solution" to all field.
And reason why these fields support C# as a native solution, because this way, developers wouldn't need to learn it from scratch. C# compiler doesn't compile it to CRL/IL in all cases, It can be configured to produce native binaries, or a portable executable library file. This is why it is easier for anyone to provide first party support to C# in their field.
In the end, a C# developer can write code for any of supported field, without need to learn a new native stack. And if you are creating something new, and want to attract developers quickly, providing support for C# might be fastest way for you.
It may come with tradeoff, Mobile apps in C# are really slow, But for some, hiring and training cost may just be high enough that they would be willing to accept tradeoffs.
I'm not denying that C# is cross-platform, and I do understand the benefits of not having to learn a new language for every stack-- I just don't see that as being any thing specific to C# or C#'s philosophy.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Nicely put.
Personally, I too find that such an overload of features is not a good thing, that is why I recommend students to learn Java before anything else. A stricter environment to learn basics can be adopted to flexible life, not the other way around.
But it is this philosophy that has made C# a truly universal language. Web, All desktop platforms, all mobile platform. Unity, Godot, Game development. Blazor for webassembly. Micro-controllers, You name it, you will get C# on it.
I have to give you game engines--I'm not in that space but I'm aware C# is big in it--but for the rest I'm skeptical that C# is more per-se universal than anything else. Seems like these days pretty much everything has a native compiler, a WASM compiler, and a JVM compiler. Like, I could write pretty much the same paragraph about the universality of, say, LISP, which has the smallest list of language features I'm aware of.
Yes. there is a native compiler for everything. Game engines have C++, Godot have GDScript. Rust is getting popular with wasm. But there is a C# solution available, for those who want it. Mobile apps, with Xamerin, Front-end with razor and blazor, Desktop apps with multiple gui toolkit support, There is an SDK for microboards like arduino too. Microsoft is not trying to make C# be the best solution in all the field, but trying to be "An Acceptable Solution" to all field.
And reason why these fields support C# as a native solution, because this way, developers wouldn't need to learn it from scratch. C# compiler doesn't compile it to CRL/IL in all cases, It can be configured to produce native binaries, or a portable executable library file. This is why it is easier for anyone to provide first party support to C# in their field.
In the end, a C# developer can write code for any of supported field, without need to learn a new native stack. And if you are creating something new, and want to attract developers quickly, providing support for C# might be fastest way for you.
It may come with tradeoff, Mobile apps in C# are really slow, But for some, hiring and training cost may just be high enough that they would be willing to accept tradeoffs.
I'm not denying that C# is cross-platform, and I do understand the benefits of not having to learn a new language for every stack-- I just don't see that as being any thing specific to C# or C#'s philosophy.