15 ms·
I've got to be honest, when these language shootouts come up (and it feels like I've read a lot of them this week), it reminds me why I'm pretty happy working i
by douche 11y ago
I've got to be honest, when these language shootouts come up (and it feels like I've read a lot of them this week), it reminds me why I'm pretty happy working in C#. I've got great tooling, generally good libraries, a pretty decent core language, and generally, shit just works so I can get shit done.
Is it super sexy, no. Does it win me Internet Geek Points™, no. It's pretty much still Windows-only, but fine, that's the world I live in. The foot-guns are relatively small-caliber, and I've learned enough to avoid pointing most of them. I can do OOP, I can do functional (maybe not super pure ivory-tower monad/ADT/pattern-matching sorcery, but whatever - still have F# on my todo-list...), I can write straight procedural code if I really wanted to. I've even got a REPL and can use it as a scripting language.
Plus, I have generics :-)
- johnny_reilly 11y agoI know what you mean :-) Incidentally the Windows-only days will one day be a memory: https://get.asp.net/ https://get.asp.net/
- scruple 11y agoYeah, well, I've been hearing the "one-day we'll be on Linux" claims long enough to grow tired and move on. Developing on Windows, after having had some experience developing in a Linux/Mac environment, feels like second class citizenry. That's without even talking about nuget, etc...
- manigandham 11y ago.NET has been available on Linux for years via Mono (with various compatibility issues but it works). And the next official version with cross platform support already has a Go Live license which means Microsoft will support any production app. "one-day" is today.
- scruple 11y agoWhat production application are you deploying in .NET on Linux today? edit/ I'm not letting you off this easily. Mono never really worked and never really had Microsoft's support. Where's the ecosystem?
- manigandham 11y agoWe have some smaller backend stuff running today (messaging, logging, etc). Bigger apps have dependencies that are still waiting to be compatible with .NET Core.
- manigandham 11y agoIn reply to your edit: Yes, Mono had issues as I said but it did/does work if you can work around it. Granted the windows licenses are cheaper than the dev effort to fix any potential issues so it's not the best situation. But .NET Core can be used today and it works fine with the framework rapidly being developed. Several major libraries are also in or have completed the migration and we're just waiting on some other dependencies but we do have smaller apps running today. Ecosystem for the code is the same (and as vast) as it's ever been, that's the strength of the CLR/framework. Mono/.net on linux does have a community but it's growing quickly now with Core.
- manigandham 11y agoC# is an amazing language. The .NET framework is equally amazing and probably the most productive framework created so far. In the next 12 months with the release of .NET Core, even the Windows requirement will go away. It should be at the top of the list for just about any project these days.
- wfsfw4w44 11y agoNo, it should not. As another poster already commented; > You don't need to try selling C# to anyone. People who need it already use it
- Rapzid 11y agoThat's just as definitive as "it should be...". "Need" is a funny way of framing your counter. Of course any one who "needs" it, need meaning they can't use something else, would be using it. However there are many who would very much LIKE to use it but can't because the Core stuff is not quite ready for them; I NEED for it to work on OSX and linux but as of the latest dotnet deb package I can't use the AWSSDK with it.
- manigandham 11y ago> No, it should not. Why not? I'm not selling anything. I just listed some reasons why C# is a great language with a great framework that can be more productive than most other environments. By the way, it's probably one of the most commonly used languages ever when looking at the entire amount of software that's written in the world. Basically the entire Fortune 500 runs software written with .NET/C#.
- osweiller 11y agoHonest question - what is the point of this comment? While I understand that HN has quite a population of .NET platform devs these days, traditionally this sort of noisy comments would be quickly rendered transparent (this one even claims to justify itself relative to a "language shootout"....only it's just a page talking about Go best practices, so it is off the mark). And the "Internet Geek Points™" thing is just nonsensical, and has become another defensive .NET talking point (e.g. "We're not trend chasers...now let me tell you how we also incorporate all trends"). I would have ignored it, but the above "language partisan" comment, having utterly nothing of value to add to the comments, or this story, and being completely out of context, has been floating on the top, betraying a pretty profound twist in the saga of HN.
- zongitsrinzler 11y agoLook at the username ;)
- fauigerzigerk 11y agoCombine a momentum oriented society with an up/down vote button on everything and this is what you get. Voting based on insightfulness or relevance simply cannot work when only a small minority can ever be expected to stick to it. We are being conditioned on picking a side and then boosting that side no matter what. Voting up a comment that is in disagreement with your own opinion makes it look like you are losing the debate if being upvoted is generally associated with being right. So most people won't do it. I believe the only way to prevent this in a community is to force people to use only words to express opinions. In my view, voting has no place in debates. And yes it means that we're not going to get our debates filtered and ranked according to insightfulness. But at least we're not getting any false signals based on perverse incentives either.
- bhauer 11y ago> I believe the only way to prevent this in a community is to force people to use only words to express opinions. In my view, voting has no place in debates. And yes it means that we're not going to get our debates filtered and ranked according to insightfulness. But at least we're not getting any false signals based on perverse incentives either. And yet, I just upvoted your comment because it seemed much easier than typing a reply to say that your comment was of interest to me and I enjoyed reading it. But now I've said that as well. I like having the flexibility to do both, but I recognize the compelling arguments you've made about the problems with having voting available everywhere. On HN in particular, I feel the downvote capability should be further constrained than it is presently (I think it opens at 500 karma presently).
- cel1ne 11y agoIsn't the biggest problem of .NET/C# that Java and the JVM are just too similar? Sure, some things are nicer in .NET-land, but is it worth the switch, which kinda locks you, or at least moves you towards Windows too?
- pjmlp 11y agoFor me the few positive things is that Go is a kind of second coming of Oberon-2 with C like syntax and now many Hipsters are using it instead of C (why I re-wrote X in Go kind), which eventually leads to less exploit-friendly code being written.
- aikah 11y agoC# or Java are enterprisey, established languages used by millions of developers. They aren't going away because of Go, Elixir, or Node.js ... And C# is sexy, it's the best object oriented language out there. So don't worry. C# doesn't need yet another guide for web apps, there are thousands of books and tutorials about the subject already. You don't need to try selling C# to anyone. People who need it already use it.
- thegenius2000 11y agoYes, C# is sexy if you're okay being locked into Windows, Visual Studio and OOP from right-off-the-bat.
- robodale 11y agoI'm glad you had the balls to come out and say this here..on HN. I'm a .NET/C# dev as well (as labelled by recruiters and companies hiring me). There's a time to play with new shiny objects, and there's a time when you have to get real work done. If anyone here hates on you because you can get shit done with your preferred language...they're just jealous of your productivity.
- dimgl 11y agoIt doesn't take "balls" to say anything anonymously on an online forum. Nobody's angry he likes C#; there simply is no reason for this comment to exist on a thread about Go. I've done C# development for many years. C#, while elegant, is far from being a productive language, mostly because of its ecosystem and community. Making a simple API web server using proprietary Microsoft libraries is way harder than it needs to be. Documentation is also piss-poor on most of these tools, and many developers just resort to reading opinionated online web blogs which give all kinds of terrible advice. You can use open-source libraries like Nancy instead, but they're usually error-prone and updates have been known to break production deployments. Visual Studio still crashes all the time and compilation on bigger projects is usually slow and painful. I've had to work on full fledged projects with infamous Entity Framework data-access layers and these things are a nightmare to work with. I've seen entire projects generated using T4 text templates... As feature-rich as the language may be, the way developers use it lead to huge problems. Now that Microsoft is introducing ASP.NET Core the fragmentation in the community is only getting worse. Couple this with the fact that .NET is used in all sorts of dysfunctional development teams, and you've got a recipe for disaster every time. C# is not a productive language.
- thegenius2000 11y agoHonestly comments like these further discredit the Windows-development-community in my view. First, a quick rant. You talk about "great tooling," and by this (I fear) you mean Visual Studio? Good libraries, by this you mean things like System.Foo.Bar.BazQux()? A "decent core language," by that you mean a pretty blatant knock-off of Java (which is an overly-bloated language in its own right)? And by "can do OOP" you mean must do, since the language forces you to embrace the paradigm? "Functional?" Without real first-class functions: without closures? Generics? Fair point. Golang is lacking in that regard, at least for now. But let me address the key misconception in your comment. You mention "sexiness," which in your mind is some sort of pointless quality. Here's what you're missing: biologically, we interpret sexiness as an indication of fertility. Good tools and languages aren't good because they're sexy, they're sexy because they're good. The ability to perceive, expect and demand this sexiness from tools is nothing more than a veiled desire to work in the most effective possible way. That's why people love Unix and hate Windows. That's why they leave languages like Java, C#, and C++ for Python and Go; and some (who I admire) use Haskell. It's not about elitism, the elitism is merely a by-product: the fundamental issue here is greediness, and the strength of one's desire to be as efficient as possible.
- douche 11y agoDid OOP kill your father, kick your dog, and sleep with your wife? If you stick your fingers in your ears and sing "module! module! module!" as you do it, you could probably live with the fact that C# coerces you into putting your static functions in a class. Since 2007 there have been LINQ, lambdas, closures, and a whole host of functional features added to the language. With regard to sexiness, as an old Quebecois logging foreman once told me, "Sometimes you want the supermodel wife, and sometimes you want the one who can carry the canoe." If you can get both, great, but I got a lot of canoes to carry. > Honestly comments like these further discredit the Windows-development-community in my view. I'm just an asshole with an opinion on the internet, and I seem to have misplaced my official Windows-development-community membership card...
- dang 11y agoPlease don't post unsubstantive comments to Hacker News. Programming language flamewars are bad for this site. They're tornados of tedium that pick up entire threads and deposit them miles away in an intellectual desert. Please let's keep them off HN.