Live data from Hacker News

.NET 8

devblogs.microsoft.com

281–290 of 374 posts

Re: .NET 8

#281

I'm looking at a language to write simple executables with or without GUI and that are not too verbose or too complicated. A bit like a compiled python :) Would .NET 8 be a good challenger ? I previously didn't consider it because the compilation to binary was looking more like an experiment, and the example I've seen were quite verbose (in a java way).

Personally I use F# for console apps, with ahead-of-time if startup latency is important, yeah. Works fine for me! (Ahead-of-time is much harder with F# though, because .NET idiomatically leans heavily on reflection thanks to C#'s influence, and reflection is banned in AOT. C#'s workaround is source generators, which F# does not support except very unofficially. I therefore find myself stamping out boilerplate for e.…

Thanks I will have a look !

Re: .NET 8

#282
post #111

Earlier quoted context omitted.

Go seems like a good fit for that.

It seems to be the more mature language for my use case. How is the GUI development and C++ interop ?

Abysmal. Almost no one does GUI in Go and .NET has had zero/low-cost interop as one of its main features in mind since the very first versions of .NET Framework back in the day.

Re: .NET 8

#283
post #269
post #67

Earlier quoted context omitted.

I was asking about Orleans integration. They are working on it ( https://twitter.com/reubenbond/status/1724463381686686075 ). I think it's a matter of time for Dapr stuff to be integrated. It is after all the first preview. edit: here's more info about Dapr and Aspire https://learn.microsoft.com/en-us/dotnet/aspire/reference/as...

Orleans seems to have stagnated greatly past year or two. Someone raised this issue over a year ago(that only like one person was working on it and seemingly part time) and they swore it was still going to be getting resources and continuing R&D. Fast forward to now and it's only bug and compatibility fixes. A shame cause reminders v2 would have been an amazing addition.

That is how XNA went away, its champions eventually left XBox business unit, and as expected it was back to plain C++ and DirectX, instead of having someone else pick it up.

Re: .NET 8

#284
post #234

Earlier quoted context omitted.

Do you want to compare the number of features added between go and c# in the last 15 years? Just a single major release of C# added more stuff than probably the last 15 years of Go. I'm not saying Go is 100% right in that, but it's much more conservative about stuff added into the language.

Of course, they conservatively added the most idiotic way of formatting dates as strings (while knowing other methods exist). And, while the whole bunch of other languages would call a method string.startsWith("a"), they use hasPrefix. This language is a mix of half-baked concepts and utter trolling. If I have to learn a lang with an awkward syntax, I'd prefer Rust, Julia, Erlang, Elixir or Haskell. Go is no-go. It's…

Also, why would force error returns without also including some sort of nice Monadic do-notation or Monad-inspired combinator syntax sugar in the 2020s? We've known for decades now how do that better.

I also think that Go looks like a practical joke that escaped some INTERCAL-like satire committee in the 1970s.

Re: .NET 8

#285
post #156

Earlier quoted context omitted.

It's all open source and free, on Github. I've used .NET for about 10 years now, and the only money it has cost me is a few third party libraries that I couldn't find good open source competitors for.

But you've never seen it with a market share of more than 90%, which could happen eventually. It's a matter of incentives and those play against you.

Microsoft owns the .NET trademark but the language and source code for the current runtime is freely forkable and usable by any person/company who wants to do their own implementation. It's no different than the situation with Oracle and Java.

Re: .NET 8

#286
post #217

Earlier quoted context omitted.

Better than go, more like Graal

How is Graal better. Half of the Java ecosystem wouldn't work with Graal.

Just like with Native AOT, as it only supports CLI, dynamic libraries with C ABI, and a special flavour of ASP.NET with minimal APIs introduced now in .NET 8.

Mono AOT supports a bit more, with focus on iOS and Android workloads.

None of them work with GUI frameworks or classical ASP.NET applications.

Re: .NET 8

#287

Earlier quoted context omitted.

> Code written for .NET Framework 2.x will probably work fine on .NET 8 WebForms would like a word.

Hence “probably”. WebForms should die in a dumpster fire.

I worry that Blazor is that dumpster fire sometimes.

Re: .NET 8

#288

Seems like AOT compilation is spotty on Asp.NET apps. A fresh app made with dotnet new webapi -o aot-api did not work when run.

ASP.NET with AOT is only supported in minimal APIs, nothing else.

Re: .NET 8

#289

Earlier quoted context omitted.

Hi there, C# Lang Designer here. :) We're always thinking about the bloat concern when it comes to language development. However, our philosophy on it is that bloat primarily comes when you add replacement systems that are expected to supersede the previous mechanisms, not compliment them. So we try to do the former sparingly . In the history of C# there are very few times we've actually done this, and we do view tho…

The new array literals seem to supersede some previous syntaxes like new[] { 1, 2, 3 } goes to [1, 2, 3] in a lot of cases. But overall they are a _great_ addition to the language playing around with them now so bravo. Still not really sure how I feel about class primary constructors on the other hand, will give them some time to marinate.

Having moved to writing records by default in many places such as models and "DTOs", primary constructors are a very useful "transition" tool in those cases of "this started as a record, but now needs to be a mutable class for X reasons" and means a little bit less code to entirely rewrite in the first pass. It's also useful for even just "I aesthetically like for my class 'View Models' to mirror their record 'Model' definitions a little closer".

Re: .NET 8

#290

Earlier quoted context omitted.

Of course, they conservatively added the most idiotic way of formatting dates as strings (while knowing other methods exist). And, while the whole bunch of other languages would call a method string.startsWith("a"), they use hasPrefix. This language is a mix of half-baked concepts and utter trolling. If I have to learn a lang with an awkward syntax, I'd prefer Rust, Julia, Erlang, Elixir or Haskell. Go is no-go. It's…

Also, why would force error returns without also including some sort of nice Monadic do-notation or Monad-inspired combinator syntax sugar in the 2020s? We've known for decades now how do that better. I also think that Go looks like a practical joke that escaped some INTERCAL-like satire committee in the 1970s.

You probably mean sum types and convenient syntax for testing and de-structuring sum types.
Post reply on HN