5 ms·
Perceived cool factor, I think. Both .NET/C# and Java are the core of Dark Matter Development [0]. They're what a huge chunk of developers and enterprise actua
by UglyToad 5y ago
Perceived cool factor, I think.
Both .NET/C# and Java are the core of Dark Matter Development [0]. They're what a huge chunk of developers and enterprise actually use but they're not cool and they don't get blogged about.
Obviously the history of EEE and Windows only legacy means there's a lot of hostility to anything .NET specifically amongst a subpopulation of developers. However I don't think it sufficiently explains the lack of noise about both Java and C#.
It's a bit of a shame because it would be nice to have more startup opportunities in .NET (or Java/Kotlin - rather than slow, dynamically typed, error-prone scripting language du-jour), there are some but they're a tiny minority.
It's hard not to get caught up in worrying about the future of one's favorite language/ecosystem but then I think over time the obvious benefits of the ecosystem will win people over, I hope.
[0]: https://www.hanselman.com/blog/dark-matter-developers-the-unseen-99 https://www.hanselman.com/blog/dark-matter-developers-the-un...
- vips7L 5y agoIMO Java/.NET just don't get blogged about _on this site_. If you visit /r/Java, /r/dotnet etc, you'll actually find the content about them.
- atraac 5y agoThe issue with /r/dotnet is that most people there are almost fanatics. A single bad word about MS or any topic of the month like MediatR gets you downvoted to oblivion. There's almost no real discussion there.
- magicalhippo 5y agoNot a new thing. I recall the same fanaticism on big C# IRC channels back when .Net 2.0 was in beta.
- kumarvvr 5y agoGetting blogged on this site is the goal. Getting blogged on a site that is dedicated to that tech is not noteworthy. You can find such blogs or forums for every obscure language that has more than a 1000 users.
- vips7L 5y agoJava and dotnet aren’t obscure languages. Java’s user base is larger than anything on _this site_. Java bloggers also know that HN isn’t their target audience because they know HN is biased. It’s a much more worthy investment to reach the actual community who are going to come back to your site and actually discuss your content.
- damagednoob 5y ago> It's a bit of a shame because it would be nice to have more startup opportunities in .NET Even if you ignore the history of companies like MS and Oracle what it comes down to is vendor lockin. If there's a chance a vendor will pop up in 3 years time with a huge bill, why take the risk when there are plenty of free alternatives.
- svick 5y agoI think there is zero chance of that happening. MS recently made one tiny decision that was unfriendly to open source, it caused a huge outcry and a reversal within 48 hours on a weekend. I can't even imagine what the reaction would be in your scenario. Besides, basically everything is open source now and you can't put that genie back into the bottle.
- damagednoob 5y agoSQL Server, Windows and Oracle DB are open source?
- to11mtm 5y agoSaying that outcry was about one tiny decision is like saying WW1 was because an Archduke got assassinated. Microsoft's handling of .NET 's OSS community has been haphazard at best. Just a week or two prior to the 'dotnet watch' debacle, there were issues and concerns with the .NET Foundation that led to the Executive Director stepping down [0]. I bring this up, because in many cases the perception is that there is -still- lock in, just in a different fashion. By that, I mean, if you Ask a typical .NET developer what they use, they'll probably say ASPNETCORE, EF Core, maybe you'll hear Hangfire, MediatR, RestSharp, or Dapper. So, you've got a bunch of .NET devs that -only- know Microsoft technologies for the most part. Yeah there's some other stuff like MongoDb, Kafka, Redis, stuff like that, but It's not very frequent you hear about teams reaching out to other technologies. It's very rare I hear people bring up Linq2Db, a beautiful* Micro-ORM that is best described as a type-safe, extensible SQL DSL. Or Websharper, a really-freaking-cool library that basically lets you transpile your C#/F# code into Javascript and/or Reactive HTML, complete with seamless server calls if you'd like. You might run into some interesting things at different places. One shop I was at used MassTransit, which was kinda cool. I've wound up using Akka.NET a few times in the past, which has always been super fun. The end result of this though, is the -perception- of what .NET Developers are like. And sometimes those perceptions are real. I remember the dev that felt Dapper was some sort of 'black magic' and would stick to writing DataReaders and or datatables by hand, and another that was so against the idea including Non-MS tech in a project that it wound up costing him his job; he insisted there was a way to get EF to do things in a performant way (answer: not sanely, and not easily the way the app was built on an arch level,) and refused to accept a PR that solved the problem with Dapper. He wound up doing the thing I've seen a -lot- of .NET developers do; fight the Framework. To be clear here, I'm not referring to the BCL. It's not always perfect (I'd love for an analogue to SSLEngine, please?), but it's -fine-. I'm referring to bits like ASPNETCORE, EFCore, SignalR, and Microsoft.Extensions.(DependencyInjection/Logging) where developers wind up getting in awkward tarpits around some weird edge case because of a business requirement or some other decision that, unfortunately, can't be undone. Or are just plain 'well, that sounds sensible in theory' like "I would like to update N rows in an new status that are older than 1 month and set to overdue, and not have it be N update statements." Maybe EF does that now, but last I knew the answer was not really. At my first 'Real' Dev job, we were a .NET shop, that often had to 'fight the framework' (it didn't help that we were on an Oracle Backend, which made -everything- more of a PITA before we discovered Dapper.) When the .NET guys hit one of these roadblocks, it would often take sprint after sprint of fighting to either have no solution, or have a solution that would render the app hard to maintain. The newer teams using Java? They didn't have those problems. We later heard they had 5 different ORM-ish libraries in use over there. At the time, a lot of the .NET devs kinda treated it as a sort of derision. 'hows somebody gonna understand it?'... But the Java teams delivered. It is also worth considering, maybe those were the best libraries to solve the problems that the app in question needed to deal with. And that's kinda the 'mindset' that is a set of .NET developers that fit the stereotype; if it's not an app that fits their cookie-cutter world, they break down and can't understand it. In other words, they're afraid to step outside the box, which means they're less likely to think outside the box. The typical 'litmus-test' of this type for me is a sliding scale based on their past/current experience with other languages and willingness to work with them. * - I do some contribution work to Linq2Db, so my opinion may be a little biased. [0] - https://github.com/dotnet-foundation/Home/discussions/39# https://github.com/dotnet-foundation/Home/discussions/39#
- lowbloodsugar 5y agoNot just "cool factor". From your linked article: "Where are the dark matter developers? Probably getting work done. Maybe using ASP.NET 1.1 at a local municipality or small office. Maybe working at a bottling plant in Mexico in VB6. Perhaps they are writing PHP calendar applications at a large chip manufacturer" i.e. in Cost Centers not Revenue Centers, which is to say in jobs that do not pay well, and their management is trying to figure out how to spend less money, not make more money.
- moonchrome 5y agoExactly - .NET ecosystem and community is structured around cost center development. I see Microsoft attempting to make C#/ASP.NET more lean and faster to get started with (eg. minimal APIs) but I doubt they can overcome the stigma.
- DeathArrow 5y agoI was working with .NET most of my career. And I've been in a cost center just for one year.
- moonchrome 5y agoAnd I'm sure some COBOL developer out there is working on new projects. That doesn't change the fact that .NET roots are in old enterprise and Java - which was dumbed down by design to make it easy to onboard unskilled developers (look at their arguments against local type inference and lambdas before they were added). Things like ASP.NET core slam you with heavy duty abstractions from ground up and justify it by project scaling and reducing maintenance cost at the expense of iteration speed - again tradeoffs made for large enterprise const center style projects. With recent iterations (minimal APIs, top level functions, namespace declaration, etc.) they are trying to reduce those tradeoffs and cater to the startup crowd but the MS + corporate budget development stigma is going to be there.
- jiggawatts 5y ago"Dark Matter Development" -- finally I have a name for it! Sometimes you see articles on the Internet where someone basically says something along the lines of "All developers use the Linux bash command-line workflow", and I just look at statements like that and wonder what on earth are they talking about!? I have never seen a developer familiar with the command line. I have never seen a developer willingly use a Linux desktop. I have never seen anyone do anything but boring, "dark matter" .NET and Java development using IDEs on Windows. I'm not talking about a couple of guys here. I mean that I have met or interacted with hundreds of developers across dozens of organisations! Literally not one has ever said: "I wish I had bash", or any similar statement. I tell a lie. I just remember that the one startup that I worked for had: Linux, bash scripting, allergies to Microsoft, hip-new-technologies, etc, etc...
- kumarvvr 5y agoI agree. I am from India. My whole life I have used Windows. Usage and teaching of Unix / Linux is severely limited to top universities, and only because they copy the US university culture (most professors are US educated) 90% of the articles on the web, are 100% certain that I have a use VIM / Emacs, on a Linux machine. Where are the articles that focus on the rest of us?
- andai 5y agoWhat kind of articles make assumptions about your preferred text editor? Or do you mean they assume you're on Linux in general?
- jiggawatts 5y agoAs a random example, the justification presented for VS Code using "up arrow" to view the search & replace history is that it matches the "bash standard". Every other Windows text editor in the history of the world uses down-arrow. Similarly, Microsoft broke how clear screen works in both Windows Terminal and VS Code to match the UNIX terminal standard. Hint: Neither of these are standards by any definition, and UNIX people were arguing over both of these things at length themselves. Before we forget: VS Code is made by Microsoft employees and is primarily deployed by people using Microsoft Windows. But it has to adhere to the "standards" that Microsoft developers are used to and expect.
- vsareto 5y agoI thought we were calling us plumbers >:(
- mmgutz 5y agoDon't think it's just about coolness. In .NET there is usually one way to do things, the MS way. You don't have options. Whatever MS prescribes is practiced by most enterprise shops. I remember arguing for something closer to MVC (several open source solutions) when ASP.NET forms was the way to do things. It wasn't until ASP.NET MVC came out that enterprise shops came on board. I still see a lot of documentation that shows Visual Studio screenshots. How am I supposed to do that on Linux? .NET still feels like a Windows first solution. You will not find official docs for Python, Node or Go using OS-specific IDE or editor screenshots.
- snorremd 5y agoI needed to learn dotnet for my new job, and I use MacOS and Linux when developing. Took a course on dotnet and entity framework, and when it came time to set up the database stuff of course both the tutorial and documentation on the official dotnet framework page showed instructions specifically for Visual Studio. Had to do some googling and reading GitHub issues to find the command line solution. When the .Net Foundation was announcing that they were going to drop the hotreload support from dotnet watch in favour of supporting it in the Visual Studio editor I was again reminded of how (some parts of) MSFT think that dotnet should still be a fully integrated development platform for Windows, rather than a multi platform, open community and open source project. I guess there might be some internal power struggle there between various business interests. There are already more Linux VMs on Azure than there are Windows VMs. And if they still insist on making the dotnet experience on Linux and MacOS subpar compared to Windows they will very quickly find that people who develop for these OSs will move towards Java or other languages and frameworks with better support for these operating systems.
- DeathArrow 5y ago>In .NET there is usually one way to do things, There are infinite ways to do things. But the most easier way to do things is one. And that is good because anyone can understand anyone's code.
- mmgutz 5y agoThere are many languages that are easier to follow than C#. Every import in Go or Node is explicit. You don't need an IDE to tell you which package a method originates from. Anyway, my point is there are very legitimate reasons why most startups don't use .NET. And it rarely has anything to do with being cool.