4 ms·
To be fair I will probably not use it even if it has generics, at least not if I can avoid it. It will still have nulls, lack sum types, have messed up dependen
by dpc_pw 6y ago
To be fair I will probably not use it even if it has generics, at least not if I can avoid it. It will still have nulls, lack sum types, have messed up dependency management and so on. Though in times when I have to use (because it was not in my control), I would rather have them.
- GolDDranks 6y agoYou summarised almost perfectly my gripes with Go. Thank you. Just to add one: any type has a "zero values" as a default value, and the compiler doesn't force you to initialize stuff. That single misfeature caused basically all of my grey hair, and I'm still young.
- marwan-nwh 6y agoWhat do you like to use?
- Diesel555 6y agoVisual Basic, strict mode.
- kerkeslager 6y agoI'm not a stickler for any specific features: it's more about having a group of features that synergize with each other. So far I've not found a language that does this perfectly, but I've found a few that I think do better than Go: 1. Elixir: Pros: Erlang threading model is clearly the best I've come across, expressive syntax, strong data structures and algorithms in standard library. Cons: Slow for some things, anemic standard library for common problem domains, small community. 2. Python: Pros: Strong standard library for common problem domains, supplemented by a strong community set of libraries. Generally intuitive. Cons: Slow for some things, poor threading, inconsistencies in syntax, general dominance of configuration-oriented programming frameworks rather than libraries in the community, types are just not quite strong enough. 3. C#: Pros: strong type system, speed. Cons: dependency injection hell, MS walled garden. I'd like to add Rust and/or OCaml, to this list, but I don't know either well enough to be confident.
- blargmaster33 6y ago>dependency injection hell What?
- Goz3rr 6y ago>MS walled garden .NET Core is FOSS though?
- kerkeslager 6y agoHm, I didn't realize .NET Core had been changed to an MIT license. That wasn't the case when I was working in C# on a regular basis. My guess is that MS proprietary tooling still sucks out the air from FOSS tools, but I can't speak from experience there so I'll just admit I don't know how the ecosystem has changed since I worked in it.
- HideousKojima 6y agoVisual Studio is definitely still the ideal environment for writing C#, but JetBrains Rider is a solid alternative, and VS Code with the right set of extensions is probably "good enough" for most things.
- Nullabillity 6y agoOn paper, but it sure doesn't feel like it when trying to use it. It's nearly impossible to find out which of the umpteen repositories contains the source for the class you're trying to understand, and MSDN won't be of much help. Much of the standard library also has a bunch of decoy source files that only contain signatures and/or mocks, so it's a pain to find the real version. OmniSharp has a "go-to-source" option, but you only get the real source if it's in the same solution. Otherwise you only get signatures. Try giving Metals[0] or Rust-Analyzer[1] a shot, this stuff is night-and-day. The official debugger (vsdbg) only works in VS and VSCode (and explicitly not in FOSS builds of VSCode). There is netcoredbg[2], but I still haven't figured out how to convince Emacs to use it. This wouldn't be as much of a problem if the culture wasn't so hostile to printf debugging (for example, ~nobody bothers to implement helpful ToStrings). There is a heavy cultural bias towards MS libraries, regardless of their merits (ASP.Net Core, DI hell, EFCore, etc). See [3] for an.. interesting example. OmniSharp has a habit of giving up randomly, giving useless error messages, and most GH issues consist of people repeating "+1", until there is a one-liner about how an update fixed it. Root cause analysis, what's that? [0]: https://scalameta.org/metals/ https://scalameta.org/metals/ [1]: https://rust-analyzer.github.io/ https://rust-analyzer.github.io/ [2]: https://github.com/Samsung/netcoredbg https://github.com/Samsung/netcoredbg [3]: https://old.reddit.com/r/csharp/comments/9kha39/does_anybody_use_vimemacs_to_code_in_c/ https://old.reddit.com/r/csharp/comments/9kha39/does_anybody...
- dpc_pw 6y agoRust is my favourite. I wish I could try Haskell, Ocaml or Erlang professionally sometime. I was OK with Scala, and would like to check Kotlin too.