5 ms·
The CTO dictated our move to Go two years ago on what felt like a combination of whimsy and anti-Microsoft sentiment. I'll admit that there are parts of the lan
by vsnf 4y ago
The CTO dictated our move to Go two years ago on what felt like a combination of whimsy and anti-Microsoft sentiment. I'll admit that there are parts of the language that are nice, such as the relatively snappy compile times and single statically linked binary output, but not a single day goes by where I don't miss C#, and more specifically .NET Core (now just .NET I guess?), which can do everything Go is doing.
- jamil7 4y agoYeah, the language itself has never really “clicked” for me, and I've tried a few times. It still feels cumbersome to write. The tooling, standard library and fast compile times are really great though. Maybe I'll revisit it.
- tinco 4y agoLike Go, C# has also always been a decade behind on the tooling side. For a recent project I wanted very fast HTML templating and I/O. Went with C# instead of Go and it's looking pretty good so far. The tooling is close to the level Ruby was ten years ago, and that was really acceptable. I was very happy with my previous project that I did in Go as well, you just can't go wrong with Go for implementing network protocols. If you need more than a microservice, then you need more than Go in my opinion, and C# is an excellent choice. I think most of these startups going mono-lingual on Go are going to regret it, just like the startups that went mono-lingual on Node.js a decade ago. If you're building anything that requires some serious architectural structure, and that might be easiest to implement as a monolithic app, then you need a language that supports that instead of getting in the way. Now with Typescript Node.JS might finally be suitable. But I'd definitely consider Ruby and C# or maybe Java or even Haskell first. Maybe Elixir, I heard that's still going strong as well.
- smcl 4y agoAh interesting, so I'm relatively happy working with C# and .NET. I'm interested in what you think might be lacking, is there an example of another language with some tooling not available in .NET? Note: not trying to pick a fight, I'm legit interested what I might be missing since I feel like my needs are pretty much covered :)
- jen20 4y agoThe list is shorter then it once was, but high quality Bazel support comes to mind.
- nwsm 4y agoMy .NET experience is about 1 year out of date, but at the time the ecosystem was in a really great spot. First class Linux and Docker support, your choice of editor/IDE with VS, Rider, and VSCode, and nice test and profiling utilities. Historically though (pre-.NET Core), .NET was always in a Microsoft bubble which held it back as the industry consolidated on Linux and Docker. The person you're replying to may agree that C# tooling is currently pretty good.
- JavaOnlyGuy 4y agoWhy people always mention tooling but never explicitly mention which tooling they miss? I use Java for 4 years and I constantly find stuff that's missing here where other languages have it baked in from day one
- tempodox 4y ago> I constantly find stuff that's missing You didn't mention which tooling you miss.
- sockpuppet_12 4y ago> tooling Neither did you.
- simonsaysso 4y agoNot the other person, but I miss Gradle every time I use something else. It feels like the correct tradeoff of complexity and power. The Bazel family always felt unapproachable, and things in the Python or Rust universe basically require a makefile or other orchestrator to make sure tasks are ordered correctly. What do you find missing from the Java tooling world? In my experience it’s been the best built out, and maybe overly so.
- shp0ngle 4y agoI migrated from Python and C and JS (and kind-of java, but Java 7...) and from that direction, Go seems amazing. I cannot, however, compare it to modern Java or C#.
- mmarq 4y agoPointers being used as option types and that weird back-tick thing to deserialise JSONs still give me nightmares after 3 years.
- Thaxll 4y agoC# can't do everything Go can, also it's a language that keeps adding features every 6month or so, which can be good or bad.