6 ms·
Java is miles ahead in terms of cross-platform support. .NET applications may be running fine on other operating systems (I write them at $DAYJOB and they mostl
by 5e92cb50239222b 5y ago
Java is miles ahead in terms of cross-platform support. .NET applications may be running fine on other operating systems (I write them at $DAYJOB and they mostly do), but the development tooling is absolutely incomparable across OSes. As long as .NET is being developed and pushed by Microsoft, the situation won't change, because it doesn't align with their incentives.
Some people/companies also care about more than the big three operating systems that MS cares to acknowledge. .NET has no official FreeBSD port, for example.
- manigandham 5y agoVS Code is available everywhere and can even connect to remote environments. Visual Studio is on Windows, and there's a Mac version that's slowly getting better. What other languages stacks provide a much better tooling experience? If you use IntelliJ then you get the same thing with Rider (which is just IntelliJ + Resharper), and the rest are all basically VSCode at this point.
- 5e92cb50239222b 5y agoWell, perfview, for one. I have to keep a Windows VM nearby just for that thing. It doesn't come in handy every day, but is absolutely indispensable when it does. They have a shitty Linux port which basically doesn't work and receives almost no development. I should also add that you /can/ dump a dotnet application running under Linux. It's just you can't do anything really useful with it, the best tooling is Windows-only. Clearly shows you their priorities.
- NicoJuicy 5y agoUse perfcollect for Linux: https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/linux-performance-tracing.md https://github.com/dotnet/coreclr/blob/master/Documentation/... Since that is adapted to use Linux specifics :)
- Zingler 5y agoIt's been a while since I looked at .Net, but last time I checked it was inferior in terms of multi-platform tooling to many languages. So take VS Code for example, last I looked you could not build Xamarin apps in it, where as with Go, JS, Dart, etc you can use VS Code to create anything in those languages.
- pjerem 5y agoTake a look at Rider, it’s relatively recent, it’s possible you missed it. Basically, it’s Resharper embedded in an IntelliJ IDE, and it’s superb.
- philliphaydon 5y agoI use jetbrains rider. Tooling on linux is just as good as Windows. Developing .net is far more enjoyable than Java.
- cyral 5y agoI second this. .NET core works flawlessly on Linux and JetBrains Rider (and on Mac, which is what I develop on). The standard libraries and ASP.Net core are really well designed and a joy to work with.
- nightski 5y agoYea Jetbrains Rider is fantastic. I'm assuming the parent never tried it. Seeing as it is essentially IntelliJ the comparison to Java tooling seems ironic.
- Semaphor 5y agoSeconding Rider. I use Windows and still prefer it to VS.
- pjmlp 5y agoOn an IDE written in Java....
- phillipcarter 5y agoRider is a solid mix of C#, F#, Kotlin, and Java (and likely more). The R# engine is a very large .NET codebase, and the F# plugin to that is written largely in F#. So it's a little more complicated than whatever the shell is written in.
- deleted 5y ago[deleted]
- thrower123 5y agoIf you're writing Java, you're going to use IntelliJ (unless you're a masochist). Conversely, if you're writing C#, you'll want to use Rider. Rider is better than Visual Studio at the moment; we'll see what happens if they actually get VS 2022 cut over to be 64-bit, maybe the performance will be back to usable for medium-large solutions.
- 5e92cb50239222b 5y ago> Conversely, if you're writing C#, you'll want to use Rider. Sure, that's what I do, and what my friend did before he went to another company where they somehow managed to fuck up the project configuration so bad it was absolutely impossible to deploy from under anything other than Visual Studio. It's using some sort of integrated Azure wizardry, I don't work there and can't pry into their secrets. The thing is, you can't work with that project without a Windows license and a Visual Studio license. MS has zero interest in supporting this use case (can't blame them, I'm just stating the fact.)
- deleted 5y ago[deleted]
- oaiey 5y agoAnd that is the thing right! When you stop understanding the tools, you are screwed. I (as a .NET fanboy) prefer CLI tools anytime over some VS Azure toolbox no one understands). Azure CLI just works fine without VS.
- pjmlp 5y agoWhen I write Java I actually don't ever touch InteliJ because I am not a masochistic. No support for JNI debugging, no incremental compiler, 10 finger key chords, requires explicit menu actions to display project errors, never stops indexing the world,....
- eppsilon 5y agoWhat do you use instead?
- NicoJuicy 5y ago.net is catching up very quickly in cross-platform support. Tooling for. Net is miles ahead of anything else I've witnessed. As for FreeBSD there's a huge nuance: > FreeBSD support still requires additional work to implement features that are missing in the runtime to reach parity with the other operating systems. The community will most likely need to do that work in .Net 3.0/3.1 but I would like to see official automated daily builds for FreeBSD restarted with the master (.Net 5) branches of the necessary repos. As for your statement on Microsoft. I'd trust Microsoft with. Net more than Oracle with Java.
- throwaway93983 5y agoWhere is this FreeBSD quote coming from? Link please, I tried to google it without success.
- NicoJuicy 5y agohttps://github.com/jasonpugsley/installer/wiki/.Net-Core-3.0.0-for-FreeBSD https://github.com/jasonpugsley/installer/wiki/.Net-Core-3.0...
- GiorgioG 5y agoYou can't please everyone all the time. Rider is my daily driver - no matter what OS I use (primarily Windows/Mac and occasionally Ubuntu.)
- snup 5y agothe miles you mention are one thing, but performance was always more important to me. java pendant c# was always much more performance focused than java, having structs, unmanaged c# and c++ interoperability. it took java 16 years or so to accept that structs have their justification. i also find the c# language much nicer than java. f# versus clojure are both excellent additions and again, f# is the more static and performant while clojure has very nice and inspiring features and aspects. it depends on what one wants here. finally i think even if java is the larger universe, the .net universe certainly is not small either. if .net would not have taken the cross platform road i would have switched to the java runtime, but happily the opposite happened.
- kaba0 5y agoI wouldn’t call it performance, but control. The Java and .NET world focus on different things - the JVM has a very very advanced JIT compiler and due to the programmer not being able to specify all that much about certain aspects of code it has a better chance of optimizing it (similarly to how SQL queries can be made very fast precisely because they are at a high level of abstraction). The CLR provides more control at the expense of less optimization opportunity. This escape hatch is really useful for some programs, but not all of them would benefit from it.