Live data from Hacker News

What Makes .NET Core So Special?

blog.jamesmichaelhickey.com

151–160 of 247 posts

Re: What Makes .NET Core So Special?

#151
post #118

Earlier quoted context omitted.

In all fairness, you should consider Entity Framework, not Linq, when speaking about ORMs. And the first versions of EF sucked compared to the others frameworks that were available at the time.

It’s not just about EF. The beauty of C# and Linq is: Linq => expression trees => provider => native query language of data source => data source. Written correctly, you can pass expressions around like: repo.Find(c => c.age > 65 && c.gender == “male”) And the expression can be interpreted at runtime by either EF creating native sql or the Mongo driver creating a native MongoQuery or even an in memory List for unit t…

Except EF is basically the only provider that works 100% robustly. I have some pretty bad memories of getting NHibernate's Linq provider to work correctly, since it would just randomly mistranslate queries or flat-out throw exceptions.

Re: What Makes .NET Core So Special?

#152

Earlier quoted context omitted.

Sanely designed/mature libraries I might add. I went through an exercise to build a simple web app with Rust and ASP.NET/Core - I was mind boggled how mature the .NET Core stack/ASP.NET felt compared to pulling in 3rd party crates that are constantly in flux. Even after you're done fighting them the code still looks daunting compared to C# - there is a certain cleanliness to it. Not criticizing Rust which is a very n…

The .NET ecosystem is a lot more mature than Rust's, there is no arguing that. As for code cleanliness, though, it's debatable. Rust has ADTs, Option, exhaustive pattern matching, Option and Result. C# doesn't.

C# 8 will introduce nullable reference types, which will effectively be equivalent to Options. And they are working on pattern matching (some simple, partial implementation is already in place AFAIK), though I don't know what will come of that.

Re: What Makes .NET Core So Special?

#153
post #149

Earlier quoted context omitted.

If your end game is working professionally just check what is more in demand in your geographic location. Personal opinion C# is a lot better than Java. You have less boilerplate code (getter and setter in 2018, really?) and lambdas are great. But really both are similar so you can pretty much just start with one and still find your way in the other.

Honestly, people still using the getter and setter argument in 2018 as a reason to pick a language should not be taken seriously. Indeed Java has more boilerplate, but honestly I've never been bothered by it (as you can generate most within your IDE) and because its explicitly written down it can make code more readable. And Java also has lambda's.

Yeah... the bigger reason to move away from Java isn't Getters and Setters...

The bigger reason is one word: Oracle

Whether you go towards C# or other companies... Oracle is a horrible company.

Re: What Makes .NET Core So Special?

#154

I’m in the process of porting a bunch of go code to dotnet core 2.1 on AWS lambda. I’m on a Mac using vscode. I never installed mono, just the dotnet sdk. Honestly, I’ve been amazed at how good the tools have been. For cli and serverless dev, it’s been surprisingly great. It’s fast. C# is decent. The cold starts are not as fast as go, but not terrible. Memory usage is low. It’s been a legitimately positive experience…

I'm curious: what was the problem with Go?

Re: What Makes .NET Core So Special?

#155
post #149

Earlier quoted context omitted.

If your end game is working professionally just check what is more in demand in your geographic location. Personal opinion C# is a lot better than Java. You have less boilerplate code (getter and setter in 2018, really?) and lambdas are great. But really both are similar so you can pretty much just start with one and still find your way in the other.

Honestly, people still using the getter and setter argument in 2018 as a reason to pick a language should not be taken seriously. Indeed Java has more boilerplate, but honestly I've never been bothered by it (as you can generate most within your IDE) and because its explicitly written down it can make code more readable. And Java also has lambda's.

> because its explicitly written down it can make code more readable.

more text to read does not means "more readable", it means more effort to do

Re: What Makes .NET Core So Special?

#156

I’m in the process of porting a bunch of go code to dotnet core 2.1 on AWS lambda. I’m on a Mac using vscode. I never installed mono, just the dotnet sdk. Honestly, I’ve been amazed at how good the tools have been. For cli and serverless dev, it’s been surprisingly great. It’s fast. C# is decent. The cold starts are not as fast as go, but not terrible. Memory usage is low. It’s been a legitimately positive experience…

As someone eager to start (properly) learning C#, is doing so on Mac actually viable? It sounds like it from your post but would be eager to hear your thoughts (I only have a Mac at home to practice on).

I've been doing C# on a Mac w/ Rider and it's been a delight. There's a few rough edges (using Windows/DOS style paths in the csproj breaks my muscle memory) but it's great.

Re: What Makes .NET Core So Special?

#157

I’m in the process of porting a bunch of go code to dotnet core 2.1 on AWS lambda. I’m on a Mac using vscode. I never installed mono, just the dotnet sdk. Honestly, I’ve been amazed at how good the tools have been. For cli and serverless dev, it’s been surprisingly great. It’s fast. C# is decent. The cold starts are not as fast as go, but not terrible. Memory usage is low. It’s been a legitimately positive experience…

I'm curious: what was the problem with Go?

I'd be curious too, but one place might be cross-platform easy runtime shared library use. Go with non-Windows "plugins", or poor c-shared support w/ crappy Cgo that doesn't even work with MSVC, is very bad in this area. Of course I watch all the GitHub issues addressing these with hope, but it's clear this story in Go is terrible.

Re: What Makes .NET Core So Special?

#158

I’m in the process of porting a bunch of go code to dotnet core 2.1 on AWS lambda. I’m on a Mac using vscode. I never installed mono, just the dotnet sdk. Honestly, I’ve been amazed at how good the tools have been. For cli and serverless dev, it’s been surprisingly great. It’s fast. C# is decent. The cold starts are not as fast as go, but not terrible. Memory usage is low. It’s been a legitimately positive experience…

I'm a huge C# advocate but we actually went the other way. Regardless of the tooling etc. we still have to use Golang for mission critical stuff. This is mainly due to the cold start times you mentioned - mainly the "first request" problem C# has with web related requests.

I've been keeping up with the latest developments, and it seems that they're finally starting to address the problem with tiered compilation stuff, which is fantastic. However, for now, waiting for 5+ seconds for a simple controller method to fully complete on a first post - with no way of auto-warming up (without using major hacks) on startup is just not acceptable.

Again, I really love .net, and contribute a fair bit to Signalr (core) myself, but feel this would really need to be addressed in an easy-to-integrate manner before it can be an absolute top tier language. They're addressing the other elephant in the room and providing a single-execuatable runtime-agnostic deployment option soon as well...which is amazing!

Overall though, for a language, you can't beat C#/core in my opinion and would 100% recommend it.

Re: What Makes .NET Core So Special?

#159
post #149

Earlier quoted context omitted.

If your end game is working professionally just check what is more in demand in your geographic location. Personal opinion C# is a lot better than Java. You have less boilerplate code (getter and setter in 2018, really?) and lambdas are great. But really both are similar so you can pretty much just start with one and still find your way in the other.

Honestly, people still using the getter and setter argument in 2018 as a reason to pick a language should not be taken seriously. Indeed Java has more boilerplate, but honestly I've never been bothered by it (as you can generate most within your IDE) and because its explicitly written down it can make code more readable. And Java also has lambda's.

Java is much heavier to read because of all the boilerplate. And it may have lambda but for example the stream implementation sucks compared to the elegance of LINQ. They had 8 years to make it right and I’m still amazed how did they manage to implement it so badly...

Re: What Makes .NET Core So Special?

#160
I want to like .Net Core, I really do. But in my opinion its just not yet ready for serious use.

An example. If you want to use .Net Core you can't use entity framework, you have to use EF Core, which doesn't yet support mapping to views or stored procs, only tables.

Now you might think that's fine, maybe you only want to map to tables. But it's the same story all over the ecosystem. Many major projects have a separate netfx and core package, and many times the core package has restricted functionality. You will almost certainly find a whole host of things you need are missing.

And then you get the fact that ASP.Net Core is dropping support for .Netfx in the next release, so if you want to use ASP.net Core you are now limited to EF core too, which means you are making a full jump and can't just go halfway first. And .netfx is now not going to support .net standard 2.1.

The list of incompatibilities and restrictions just goes on and on. I certainly can't keep the full list in my head. So right now I'm not really willing to commit to a new project of any significance on .net core because I know there will be dozens of missing dependencies or features.

You could argue this is just want it's like at the cutting edge, and the gaps will be filled in time. But .netfx is clearly already going into maintenance mode, so the push to move to .net core has already started.

Post reply on HN