Live data from Hacker News

Update to the .NET language strategy

devblogs.microsoft.com

101–110 of 151 posts

Re: Update to the .NET language strategy

#101

Don’t they offer C++ on .NET to some degree? I know it’s not supported on the same level as C# but it’s still there, is it not?

That's C++/CLI; it's still around but isn't really a priority nor is it considered a "core" .NET language these days (it's an optional install in VS2022): https://learn.microsoft.com/en-us/cpp/dotnet/dotnet-programm...

It belongs to WinDev, not DevDiv, hence the difference.

Re: Update to the .NET language strategy

#102
post #95
post #38

Hot take but I wish they’d start a new lang in the spirit of what’s happening in swift/Kotlin instead of evolving C#. I use it everyday. I love the new pattern matching, it simplifies a lot of gnarly reflective type checks and feels good. Records are nice too. I see discriminant unions are coming soon. But they’re painting themselves into the corner in terms of syntax and overcoming OOP defaults. A fresh start would…

What spirit? Kotlin only matters due to Google's shenanigans on Android with Android Java, and pushing Kotlin as its replacement. It is J++ vs C# all over again. They could just as well buy JetBrains.

Cool idea: how about making a .NET/CLR backend for Kotlin?

Re: Update to the .NET language strategy

#103
To everyone not closely following .NET and think it’s some enterprise thing focused on Windows:

It’s fully cross platform now and works flawlessly on Mac/Linux for backend work.

Entity Framework Core has become a great ORM that’s getting better every year.

It’s in a great place to develop your next startup/project in.

I’ve switched from Python to C# last year and couldn’t be happier.

Re: Update to the .NET language strategy

#104
post #38

Hot take but I wish they’d start a new lang in the spirit of what’s happening in swift/Kotlin instead of evolving C#. I use it everyday. I love the new pattern matching, it simplifies a lot of gnarly reflective type checks and feels good. Records are nice too. I see discriminant unions are coming soon. But they’re painting themselves into the corner in terms of syntax and overcoming OOP defaults. A fresh start would…

There's no reason for such a language because I would argue that F# is superior to all of C#, Kotlin, and Swift, and it already exists.

Re: Update to the .NET language strategy

#105
post #95

Earlier quoted context omitted.

What spirit? Kotlin only matters due to Google's shenanigans on Android with Android Java, and pushing Kotlin as its replacement. It is J++ vs C# all over again. They could just as well buy JetBrains.

Cool idea: how about making a .NET/CLR backend for Kotlin?

It will be as successfull as IronPython, IronRuby, Clojure.CLR, Scala.NET,...

Re: Update to the .NET language strategy

#106
post #41

> F# explores new language possibilities and the community provides a rich experience across platforms. There are several interesting observations to be had here. For one, F# already explored (past tense) new language features and has long been essentially feature complete. It gets little features here and there, which are generally quality of life type of things (like anonymous records, for example). Another interpr…

F# has a bright future, but it’s due to Fable and breaking free of .NET.

F# is truly a full stack language now.

Re: Update to the .NET language strategy

#107
post #91
post #78

Earlier quoted context omitted.

> F# already does not support several C# features, for good reason, maintaining only what it needs for interoperability purposes. Could you enumerate some of these? My team is still using .NET Framework, so we're missing out on the new C# goodness.

One is that C# has partial classes but F# does not. This comes up for all the XAML tooling that C# supports but F# doesn't. Also, F# only has null for use in certain situations only for interoperability. There are others that I've seen but don't know off the top of my head. I think they are usually OOP related and at the edges. I don't much know them because I don't really know C#.

AsyncDispose is one more, IIRC

Re: Update to the .NET language strategy

#108
post #38

Hot take but I wish they’d start a new lang in the spirit of what’s happening in swift/Kotlin instead of evolving C#. I use it everyday. I love the new pattern matching, it simplifies a lot of gnarly reflective type checks and feels good. Records are nice too. I see discriminant unions are coming soon. But they’re painting themselves into the corner in terms of syntax and overcoming OOP defaults. A fresh start would…

F# is pretty much that language.

Re: Update to the .NET language strategy

#109
post #7

TLDR: C# is our real language. F# is a thing that gets supported to the extent that unpaid volunteers do the work. VB is in back-compat legacy support mode.

VB is not only for compatibility. VB is a key piece between pure development and advanced Office capabilities, more commonly found in Excel with VBA (Visual Basic for Applications) We cannot forget that the biggest competitor of any new software based startup/project is a spreadsheet created by the target users

Re: Update to the .NET language strategy

#110
post #38

Hot take but I wish they’d start a new lang in the spirit of what’s happening in swift/Kotlin instead of evolving C#. I use it everyday. I love the new pattern matching, it simplifies a lot of gnarly reflective type checks and feels good. Records are nice too. I see discriminant unions are coming soon. But they’re painting themselves into the corner in terms of syntax and overcoming OOP defaults. A fresh start would…

.Net itself is fundamentally OOP. Lambdas are implemented as classes with an Invoke method, F# enums are implemented as classes with variants as subclasses, etc. So if "overcoming OOP defaults" is the goal then making a new .Net lang that isn't OOP doesn't achieve much. So it would have to be either be a new native language, or a new managed language that also comes with a whole new managed runtime. For the former, R…

You know we used to call it Microsoft Java, right?

I mean, going beyond the sarcasm, ultimately C# copied most (if not all) the Java design decisions:

* OOP baked in (more like hardcoded into the execution model)

* Heavyweight VM that needs to be installed apart, that tries to achieve better performance by using way more resources (runtime/VM that needs to recompile the code multiple times instead of ahead of time compilation)

* 1 main OOP language, a few second class citizen languages

* Claim to be 1 stop shop for all development needs, falls short by pretending all development needs outside what it covers to be invalid/inferior

* Sold to managers as the magic way to have cheap replaceable developers

Post reply on HN