5 ms·
.NET ecosystem is large, but still windows-centric. If I was choosing between java and C# for a startup, I'd definitely consider C# because it does seem to be a
by shanemhansen 6y ago
.NET ecosystem is large, but still windows-centric. If I was choosing between java and C# for a startup, I'd definitely consider C# because it does seem to be a better java (properties and LINQ are the first 2 things that come to mind).
But realistically if you're not doing .NET on windows, you're still an early adopter who's going to run into weird issues that you won't have to deal with on java.
- u7u7h 6y ago> windows-centric .NET 5 is going to change this completely. .NET Core has already changed.
- shanemhansen 6y agoI was referring to the ecosystem (libraries that are commonly used that might only work on windows). I've had trouble for instance finding cross-platform GUI toolkits that support linux. Microsoft's newly released toolkit doesn't.
- The_rationalist 6y agoThe point of C# being a better Java is nowadays mostly obscolete because of Kotlin being THE better Java. As for LINQ see https://github.com/mythz/kotlin-linq-examples/blob/master/README.md https://github.com/mythz/kotlin-linq-examples/blob/master/RE...
- snuxoll 6y agoAny of the otherlang-linq projects miss the forest for the trees, the whole point of LINQ is that it's not a set of chain-able methods on IEnumerable - providers get access to the expression tree and can use them to do all sorts of crazy things (see: EntityFramework, Linq2Sql). I love Kotlin and I don't really get a hankering for LINQ when I'm using it, but I wish people would stop trying to say "but we can do that too!" when they really can't.
- foepys 6y agoWhy don't people understand that LINQ isn't just a C#-ish way to write SQL-like statements? So many people are comparing their libraries to LINQ without understanding what it actually does. LINQ brought System.Linq.Expressions and IQueryable to .NET which allows so much more than just filtering and grouping data. You can write entire data providers with LINQ and parse arbitrary expression trees in any way you like. Entity Framework (Core) utilizes this very well. It doesn't just query an SQL database and then use LINQ's Where, Select etc. to manipulate the data but parses everything the developer has written to an expression tree and then generates an SQL statement at runtime.
- scarface74 6y agoAnd the Mongo Linq library is often. For $reasons I worked on an implementation that had to support Sql Server and Mongo. The models and the Linq expressions worked across both and were translated appropriately. We just passed around a bunch of Expression<Func<T>>
- eitland 6y ago> But realistically if you're not doing .NET on windows, you're still an early adopter who's going to run into weird issues that you won't have to deal with on java. As someone with background from Java but who has worked a lot with .Net Core lately, I guess it might depend on what part of .Net you talk about. .Net Core worked extremely well on Linux for all use cases I saw, mostly web applications, cli tooling and batch/queue processing. I cannot remember a single case where we had actual problems because of Linux. In fact, FWIW for small console applications it ran extremely much faster on Linux than on Windows, on the same hardware.
- jayd16 6y agoDeep code profiling of the JVM is still a lot better than Linux .NET Core. I still like C# though.
- eitland 6y agoProbably, haven't tried really on .Net but Java is awesome. Another point where it is really hard to get people to actually understand the magnitude of the difference is in IDE support, what exists and what you get out of the box. I mostly enjoy programming in .Net Core a lot but there are times when the difference becomes extremely visible.
- jayd16 6y agoAgreed. I'm very happy with it as well. MS seems very keen on this so at least for now it feels like everything is progressing even if its not currently perfect.