6 ms·
hand up uh not as experienced as most people on HN, what's the hate for c#? I went from vb6 to VB.net then c# and while I fully admit I'm a casual coder, i have
by marak830 7y ago
hand up uh not as experienced as most people on HN, what's the hate for c#? I went from vb6 to VB.net then c# and while I fully admit I'm a casual coder, i haven't had an issue (with what I do, which is voice to string primarily) so far. Is there something better for this I perhaps should look into?
- deleted 7y ago[deleted]
- dtech 7y agoThe .NET ecosystem is an order of magnitude smaller than the JVM ecosystem. Up until ~3 years¹ ago C#/.NET also meant a fully Microsoft and Windows environment for all practical purposes². This is changing and Microsoft seems to be embracing open source and Linux, but it takes time for a 20 year old ecosystem to fully make the transition. ¹ The story is Steve Balmer was very anti-open source and forbade most interop or support for Linux, so this only could start changing when he left in 2014. ² You always had Mono with is why Unity and GNOME could also use C#, but is was very niche outside of Unity.
- inapis 7y agoThat fully Microsoft and windows stack has had ripple effects. At least from my perspective in South Asia. First the price was a deal breaker. Second, people who started with C# quickly found their only employment opportunities to be at large companies. Those who started with Java/Node/Ruby had a much wider array to choose from. Third, when people jumped to start their own companies, Java/Node/Ruby/Python/Go won by a large margin. Startups rarely had the cash to spare for Microsoft stack and MS stack guys had to change their skill sets which is a painful endeavour in and of itself. Fourth, after some time people, who had been in the market for years, started discouraging younger devs to committing exclusively to a full MS stack. People rather interpreted it as dumping the MS stack. In my batch, only a dozen or so people were interested in pursuing C#/.Net. By the time we graduated only one person was still pursuing that stack. TLDR; Price was a big factor which only large companies could afford. Not everyone can be employed by large companies. This had a lot of secondary effects.
- marak830 7y agoThat's a very interesting view point, thanks for that. I hadn't considered it from that point of view. Back when I was learning code(early high school) it was qbasic, HTML and c++, once I was able to afford a cheap pc I learnt via scripting (for Ultima online free servers). I guess it's a big difference between learning for a job and learning for fun(pre-job that is). Which it seems I have kept on the years after haha. Thank you again :-)
- wolfspider 7y agoFunny you should say that because it was Sun Microsystems itself which caused me to switch to C#. Starting out in my career I worked for serial entrepreneurs exclusively to learn from them and one such company used Sun Java for their main product. Hello there! Every time the Java development chatroom crashed for a couple years or so it was me who started it back up. The company I worked for provided that chat software. Sun was not happy with the performance and sent us a letter citing the GPL demanding we host, at our expense, the server for their chats and also a 10 point response plan for turning things around. They claimed that since we used Java our IP was theirs respectively and we were now unpaid employees of Sun. They did not take our revenue (although that was never off the table) but they did assign a tech writer to scream at me over the phone whenever it went down. This “product” was written by a teenager for a coding contest we did and that developer received ~100$. Those agreements you sign off on when installing Java are all about that and sooo much more. This article is about the same thing happening once again under Oracle. Be careful what you agree to- anything I do Java related anymore is OpenJDK. TL;DR here is Java is not evil in itself but the licensing around it certainly is.
- miskin 7y agoThis sounds very unlikely. So SUN Microsystems claimed that you should run service for them because of GPL that had classpath exception? Even without that exception that is not how GPL works.
- marak830 7y agoHmm thanks for the info, I'll admit I haven't used pretty much any ecosystem outside of windows (aside from my new jobs Mac which drives me nuts(non coding job)), but haven't had a need to install any variant of Linux. Which still leaves me a tad confused, is the anger because c# is a propriety windows tech(I'm guessing from the responses - which btw thank you to the threads I don't respond to).
- jayd16 7y agoIt used to force you to a Windows only stack which can be problematic in a server based app. Its much easier to manage linux servers even if you just look at it from an OS license perspective.
- nathanaldensr 7y agoThe anger is a "red vs. blue" mentality. They're Java developers, they always have been, and they always will be. They still think Microsoft--the EEE Microsoft of years past--somehow relates to their (Microsoft's) development tools and platforms org. It doesn't. Things aren't "changing," they've changed already. .NET Core is more than stable enough to run on any major platform and has been for quite some time now. C#--especially the upcoming C# 8.0 with the new nullable reference types feature--is an excellent language that can handle anything you want to throw at it. The hate comes from ignorance, pure and simple.
- ptx 7y agoThey have certainly changed – the .NET installer used to ask if you wouldn't mind participating in their product improvement program by sending data to Microsoft (defaulting to disabled by default), but now .NET Core will send your data to Microsoft by default without asking: https://github.com/dotnet/cli/issues/3093 https://github.com/dotnet/cli/issues/3093 The data is supposedly anonymized, except sometimes (according to comments on above-mentioned issue) when it accidentally isn't. You can also disable it, except when the disabling mechanism is accidentally broken.
- ethbro 7y agoMost of the hate around C# stems from Ballmer-era interoperability blocks, specifically some hot / cold dithering on the work Mono was doing to make it truly cross-platform.
- marak830 7y agoHmm I hadn't really considered cross-platform(as I mentioned above aside from a forced forey into Mac ATM dur to work, I've always been windows). I'm thinking perhaps I should take some primers on non windows coding, and the advantages there of. Anyone have any good beginners links (note I'm fairly adept at Java, .net, vb and such, just trying to find a good place - and reason - to learn something cross platform). Pre:edit: I don't mean this to sound argumentative about platforms, just honestly looking for some good resources (and I'm fairly time constrained)
- mercer 7y agoPerhaps the biggest 'bang for your buck' would be Javascript or Python. The former because it's everywhere, and the latter because it's almost everywhere and probably more pleasant than the former. And possibly better if you're time-constrained, because you could pick one of the areas where it's a staple. Either way, both are quite un-windows, and un-corporate, but used all over the place. I'm suggesting them because, as someone who hasn't been part of any 'corporate' ecosystem since Delphi (to the point where even Java is 'too corporate'), I've been meaning to dip into the 'less sexy' world of Java/Delphi/C#/.Net/VB just to find out what it's like. I'd very much like to hear your thoughts if you decide to check out this side of the fence, so by all means do so and write a blog post about it (or send me an email and perhaps we could write a dual-author post about our respective experiences someday!).
- marak830 7y agoActually (about 7+ years ago?), I did dip into python and wrote a stock taking and auto order generating system for one of my kitchens in it, never really got the chance to revisit it after that though. I do remember how surprised I was at how quickly I got it done (I was coming from vb6 at the time). I may have some automation things I can do at my work soon, I might write up a blog about that, interesting idea! (Queue the 'if I only had more time' chant haha)
- marak830 7y agoTo the downvoters. Really? I'm literally asking why here, while my karma is really a non issue, I'm wondering why you would down vote an honest question. (Thanks again to the people who gave me informative posts, I have some things to research, just need to find the time!)
- mercer 7y agoyour comment is back in the black now, so I'd say generally don't worry about these things. A lot of people reflexively downvote stuff, but in many cases this is correct within 12h or so. That's been my experience most of the time, at least. Complaining about it is often brutally punished by more downvotes though, so beware!
- marak830 7y agoHaha yeah I was taking a risk, but I was pissed of lol
- UglyToad 7y agoI don't think there's hate for it as such since HN doesn't really get into holy wars it just ignored for similar reasons to Java. There's a bias towards the novel or newer trends especially coming out of startup culture which means limited interest in the established workhorse languages, C#, Java and to a lesser extent C++ when compared to Rust, Go, etc. I only write C# despite having tried a few other languages (F#, Python, Java, Elixir, etc) because I'm not prepared to invest the time in languages until the tooling is as productive for me as C#. I'm more interested in what I want to do than how to write it. Both C# and Java remain big in the market here in the UK and I believe in the US; you just might not find work at the cutting edge with them.
- ngcc_hk 7y agoHate is not but the verbosity of java meant that you cannot afford time to type or read those statements. And the complexity. When you start up and/or hack, you are 1 p or small group. Java enterprise is not really an option. I need to move to phase 3 before I ask the team to switch to spring and JE side. Painful. But can we do it first with those. No way. And for personal project :-)
- UglyToad 7y agoYes I can certainly understand the reasons startup culture leans towards the less verbose less boilerplate demanding languages. For me, my short term memory is too bad for languages without types and autocomplete on the level of JetBrains products. I feel like C# specifically (I don't have any real Java experience) is a lot lower on boilerplate now and I can usually get a working prototype of something together in a day or two and it allows me to target games, desktop, mobile, Web, ML, etc. But it's not to everyone's taste and that's fine.