13 ms·
Open Source .NET three years later
- pugz 9y agoMy 2c: I never had any interest in writing C# on the .NET platform until it was open-sourced and added first party-supported cross-platform support with the introduction of .NET Core. Nowadays it's my favourite language I write in - it has _excellent_ tooling, especially JetBrains Rider IDE. The open-source library ecosystem might not be as broad as NodeJS or Ruby, but it's high quality and growing all the time.
- mandeepj 9y agoFYI - there is support in .net to run any nodejs package
- politelemon 9y agoThis was new to me - for anyone wondering have a look at: https://github.com/aspnet/JavaScriptServices https://github.com/aspnet/JavaScriptServices https://dotnetthoughts.net/using-node-services-in-aspnet-core/ https://dotnetthoughts.net/using-node-services-in-aspnet-cor...
- foepys 9y agoDo you use Rider professionally with other team members that use Visual Studio? If so, can you elaborate a bit how your experience was? I'm a Java developer that is now working with C# and Visual Studio is driving me crazy. I want to use Rider but I'm unsure on how it interacts with TFS and MS-centric workflows with other team members.
- jayd16 9y agoSeems to play nice with the solution. Code styles are customizable so you'll want to tweak that to be your team's style. I think there's a tfs plugin but I haven't used that. It's good enough to try for a bit, I'd say.
- wenc 9y agoLet me say something about the prejudice (mostly my own). For most the late 80s-early 2000s, I was not a huge fan of Microsoft mostly because of their predatory practices and the shoddy quality of their software. But they had a few products that I thought were legitimately good, and Visual Studio (and the C# language) was one of them. Part of my admiration of it was partly because of Anders Heijlsberg, its architect. I started my programming life with Borland tools (Turbo Pascal), and then later Delphi. Anders architected all of these tools. They are long in the tooth now but at the time, these tools were fairly well regarded because they reflected flair and good taste. When Anders created C#, I managed to look at it without being clouded by my Microsoft prejudice, because I knew who was behind it. I started writing C# code a couple of years ago when I started working for a large enterprise. Even as a Linux/UNIX guy, I am able to say that C# is a truly elegant language that is fun to work with, and I would pick it over Java or Scala any day. I don't like its Windows centricity (Windows is still not my favorite platform), but outside of that, it is truly a well-architected language. Silicon Valley types would do well to put aside their prejudices of the C# language and evaluate it based on its own merits.
- Clubber 9y agoYes, I am in the same boat. I started my PC career in DOS with Turbo Pascal then C++, then in Delphi/Oracle after college. I started C# full force around 2005 or so and have been using it ever since. Delphi was way ahead of it's time. PS: Commodore 64 was my first love.
- Xeronate 9y agoC# is a great language and I love using it (especially compared to Java), but right now the Microsoft stack is prohibitively expensive compared to the common stacks for java, ruby, and python. .NET Core is a great step in the right direction, but it is going to be a long time before parity with other ecosystems is reached and unfortunately enjoying writing the code is way less important than having the libraries I need to interact with modern web technology.
- alkonaut 9y agoWhat are you paying for with C#? Tooling including IDE is free, servers are typically free (unless you run IIS on windows) and databases are obviously the same as in any other stack. In an apples to apples comparison I can’t see .NET coming in more expensive than java. The only thing that might be more expensive on Linux is if you need a better IDE than vs code - you’ll have to pay for JetBrains Rider. But good java IDEs aren’t free either.
- pnikosis 9y agoI learned C# a while ago when started a project in the now defunct XNA. I loved how I felt like home when moving from Java bit with some really nice differences. I thought that after open sourcing .Net the C# adoption outside the MS ecosystem would be wider by now, but I feel it's not the case. Or am I missing a trend I'm not aware of? (which is very likely too)
- oblio 9y agoThere is still wide resentment towards Microsoft, just go to /r/programming and check out threads about .Net, there's at least a few threads at the bottom going "EEE". Plus dotnet core wasn't API stable until recently. I think we're still 1-2 years from mass adoption. Also check @librexpr's comment above, there's a lot of confusion around.
- mattmanser 9y agoIt's still not really any where near finished is it? I think they finally managed to get image manipulation in to replace the missing System.Drawing, but EF Core is still woefully half-finished. The literally seem to have no clue about how people actually use their system and keep focusing on all the wrong things. Actually, it's more like some idealist programmers have become the core team instead of getting-it-done programmers, so it's all the latest fads instead of getting finished. The obsession with async isn't helping either, it makes the code so bad for no real-world performance gains. My impression is they are moving super slowly and from the POV of an existing customer, the whole process has been a complete disaster. It might end up ok, but at the moment it's just a bad version of existing .Net.
- genzoman 9y agoYour paragraph about they "literally don't know how people use their system" seems obvious to me that you must be a 10x mega developer with insider knowledge. Idealist programmers, you're right! Async await offers NO benefits and was implemented in es6 as a mistake... probably corporate bullying.
- 9y ago
- librexpr 9y agoI'd like to switch away from Java in future applications, and C# seems like the top contender, but there are questions I'd really like answered before I make the switch. I see a lot of people talking about Microsoft open-sourcing .NET Core. But as someone who's never used it, what is .NET Core? And if .NET Core was open-sourced, what about the rest of it? Am I likely to run into major parts of the ecosystem that are still proprietary? Also, can I develop and use C# applications on Linux without feeling like a second-class citizen? The ability to easily develop on Linux using free software and then run on my clients' Windows computers is one major reason I use Java at all, and I definitely won't switch to a language that doesn't support Linux properly. And finally, how likely is Microsoft to fuck free software developers over with proprietary extensions in the future? This is Microsoft we're talking about, after all.
- oblio 9y agodotnet core = new, entirely cross platform runtime + core libs meant to serve as the new core of dotnet. In the future everything dotnet will be based on it, for now this isn't the case cause of legacy code. Basically you'd have dotnet core + Windows stuff for the Windows framework, dotnet core + various bits for Mono, etc. Regarding the ecosystem, even Java has proprietary libs on top. For dotnet, Windows stuff is still proprietary, but even that is changing. You won't care about it anyway. Just make sure you stay within dotnet standard (i.e. cross platform API standard for dotnet) and either use Open Source Microsoft extras or just use community-developed stuff. For Linux C# dev, Jetbrains Rider or Visual Studio Code + C# plugin. Regarding extensions, the battle has shifted. Microsoft is fighting Azure and GCE these days. The proprietary bits are in the services. The clients are Open Source to get mindshare, so no worries there.
- jeswin 9y agoWhat's holding .Net back is a lack of the vision thing. That's a shame, since in many ways it is a better designed framework, with a superior flagship language (C#) compared to the Java platform. Their framework and language designers are truly world-class, probably the best in the world. The problem with .Net's vision has been painfully obvious to anyone following .Net over the years - it is still Windows First. While in Enterprises and Startups [1], Linux is what matters on the Server. As an example, just last week I was looking for some http2 libraries in C#. Go and Java have mature libraries already in production, while .Net only supports http2 services on Windows. That in turn affects other ecosystems as well, such as gRPC Services. This to me is a red flag. Given how important something like http2 was going to be, how come Microsoft is so late to the party? What exactly is .Net's niche, given front-end wars are over? Another example, the very promising CoreRT project (https://github.com/dotnet/corert https://github.com/dotnet/corert) page says this about Linux: "Same as Windows, the libraries are less complete." As a late comer, .Net faced an uphill climb. High-end web tooling is almost exclusively JVM based (Kafka, Cassandra, Elastic Search, Kibana etc). The upcoming competitor is Go, not .Net. If Microsoft doesn't pour a billion dollars into getting .Net ready for Linux in 2018, .Net is over. [1] I've been a consultant to several Small and Medium sized businesses (especially in Medical) which predominantly use Windows and .Net, and that's still a huge market. But even they are looking to move off Windows.
- Nullabillity 9y agoJava may be the JVM's "flagship language", but why would I replace the whole platform with C# when Scala and Clojure exist, and stay compatible with the JVM?
- hacker_9 9y agoAlways confused that people talk about .Net as if it's failed on here, any time I look for employment in the UK there is a seemingly unlimited amount of high paying C# jobs available and it doesn't take long to get hired. Even my university taught in C# for the first year. Net core is a slow moving project for sure, and it's not at a stage to use in production yet, but it'll get there and I look forward to further improvements made in 2018.
- mattmanser 9y agoIn the UK C# occupies the main enterprise language slot that Java does in America, that's why. Java just didn't get as far here. I remember in mid-2000s not being sure whether to learn Java or VB6/.Net, but a few years later I rarely saw Java jobs. At least that's my impression from being on HN for the last decade, and working mainly in MS back-end languages in the UK. The other one I never see mentioned in the UK is Oracle, I've only had Oracle mentioned to me IRL once, and that's because the local council is inexplicably moving from MS SQL to Oracle for reporting, but they're super incompetent.
- JeanMarcS 9y agoAahhh, thank you for stating this. I’m reading HN for only 1 year and half and couldn’t figure out why Java seemed so present in conversation as I thought it was not spread that much. I’m french and I only know one person who’ve been on the Java path, and he’s not even working in France. I of course know companies working on Java, but not that much (not at all, if you except those working for Android) and suddenly it becomes crystal clear. Thanks again.
- EnderMB 9y agoWhile that's true, C# isn't limited to enterprise. I've worked in startups and digital agencies throughout my career, and C# is everywhere in the latter. It's a lot harder to find startup work, but there are people building on the .NET framework. You can happily make a career in .NET without ever working in an enterprise capacity.
- jsingleton 9y ago
- romanovcode 9y agoCan we have a link to the actual talk please?
- jsingleton 9y agoLink to the recording (slides and audio): https://www.youtube.com/watch?v=garlskQb8BU https://www.youtube.com/watch?v=garlskQb8BU
- romanovcode 9y agoThanks, this is exactly what I've been looking for.
- matthewwarren 9y agoIf you don't want to watch through the whole thing I wrote a post the gives an outline, see http://mattwarren.org/2017/11/14/Microsoft-and-Open-Source-a-Brave-New-World-CORESTART/ http://mattwarren.org/2017/11/14/Microsoft-and-Open-Source-a...
- mcny 9y agoI have given up on .NET for the most part. Wake me up when we are in Fedora's repos because until then, there are pieces that Microsoft hasn't (won't?) release that we need to get out of COPR. The people of Dot Net Special Interest Group at Fedora are too nice to say this but I am not. Microsoft is dragging its feet and it is ridiculous.
- teh_klev 9y ago.NET core seems to install and work fine on Fedora 27 using: https://www.microsoft.com/net/learn/get-started/linuxfedora https://www.microsoft.com/net/learn/get-started/linuxfedora There were issues with Fedora 25 which is what I was previously running, but that resolved itself after I dnf upgraded to 27. Or am I missing something here?
- mcny 9y agoFedora has strict guidelines that you have to meet to be included in the default repos. These packages don't meet them. This indicates the project isn't free enough.
- oblio 9y agoCOPR = ? I also can't imagine why Microsoft wouldn't want higher adoption levels...
- mcny 9y agoSorry, here it is https://copr.fedorainfracloud.org/coprs/g/dotnet-sig/dotnet/ https://copr.fedorainfracloud.org/coprs/g/dotnet-sig/dotnet/
- polskibus 9y ago.NET Framework is still closed source AFAIK. .NET Core is open source, but that's two different things. Moving existing applications from .NET Framework to .NET Core and running them on Linux is still troublesome (for example lack of proper ODBC support on .NET Core). Serialization between the two is often not possible or not easy (differences in byte layout). While I think .NET Core is better than nothing, it all has a long way to go, including MS-provided API dlls (like ADOMD, etc.).
- kilon 9y agoIt’s funny when Java devs mention that C# and .NET is a copy cat. The irony is the other way around , even though Java predates .NET , the same creator was then one that created Delphi which Java pretty much copy pasted not as elegantly. It’s great to see Delphi being around and it’s legacy continue through C# and .NET. The fact that Microsoft open sourced it brought a smile in my face. My Delphi days are over, nowadays I Code in Python, but .NET still feels like home.
- wglb 9y agoIt actually goes further back than that. Anders Hejlsberg created Turbo Pasacal, then Delphi. However, the development of c# did follow the development of Java. C# is not really related to Delphi or Pascal other than they have the same author.
- kilon 9y agoNot really, .NET is heavily tied to its IDE and winforms are very similar to VCL. Not to exclude the fact that Microsoft was already heavily copying Delphi way before .NET. Java is simply another programming language.
- pvg 9y agocreated Delphi which Java pretty much copy pasted not as elegantly Maybe that is funny, but it's not even a little bit true. Delphi and Java were released roughly contemporaneously. One was mostly an IDE/RAD tool for Windows, the other a cross-platform VM + language. Unlike .NET/Java, Delphi/Java were not even the same kind of system.
- dustinmoris 9y agoI am extremely impressed by Microsoft. I think Microsoft has proven the world that nothing is impossible. Once a hip tech company at the beginning of the computer era, then transitioned into an old, boring and outdated corp has now turned into one of the healthiest, most innovative, brave and genuinely nicest tech giants of our time again. What Microsoft has done and achieved in recent years is astonishing. They played many years catch up and I think at the point when they realise they cannot do everything themselves and started to embrace the open source world they quickly moved from catching up to being the innovator who pushes new limits again (Azure, Surface devices, Window 10, .NET Core, etc.) It's already a bit old, but I wrote a blog post not too long ago where I tried to sum up some of the amazing things that happened at Microsoft over the course of the last few years: https://dusted.codes/thank-you-microsoft-for-being-awesome https://dusted.codes/thank-you-microsoft-for-being-awesome
- flatline 9y agoLiterally none of these characterizations of Microsoft, past or present, resonate with me at all. Maybe the company has truly turned a new page, but I still mostly see them copying others’ ideas and playing second string as a result. I’m glad they finally have some real OSS offerings but I don’t yet see any as truly collaborative efforts which keeps them on the sidelines. But, you know, hail corporate!
- mmgutz 9y agoBeing open source is good but outside of Windows it's still perceived as a Windows solution with bonus Linux support. I have yet to hear someone migrate from Java, Go, Node, Ruby ... to .NET in meetups I attend. Is open source .NET penetration on Linux any better than Mono?
- Yuioup 9y agoWhat exactly is .Net's niche, given front-end wars are over? .NET works as an awesome back-end for Angular 2+
- danthejam 9y agoBut so do most other programming languages and frameworks.
- lafar6502 9y agoMaybe because it hasn’t been the most popular tech among open source developers .net is now a very effective tool for almost any kind of work. The choice of libraries and frameworks is smaller than in Java but quality is better and purpose more clear. You can pick a few core libraries and build on that instead of sifting through millions of half-done or incompatible frameworks. And if you don’t demand that Windows is like Linux then it’s quite decent OS. The only thing missing is good desktop UI framework, but nobody has a better solution now