5 ms·
Using a compiled language is not a premature optimization if you're not sacrificing expressiveness. With that said, Go is not the best choice. Like, for anythin
by fellowmartian 9y ago
Using a compiled language is not a premature optimization if you're not sacrificing expressiveness.
With that said, Go is not the best choice. Like, for anything.
- hasenj 9y agoWhat would you choose instead?
- wolco 9y agoFor a website? PHP or Ruby. If you feel you have low level needs move to rust. If you want microservices use node. Go is a compromise of everything.
- fellowmartian 9y agoDepends. If we're talking about high performance, yet expressive language without a steep learning curve, I say Swift. The only major drawback right now is lack of pure Swift AWS SDK. And unfortunately, AWS team has no plans to write one, yet.
- didibus 9y agoI think any of the JVM languages like Java, Kotlin, Clojure, Scala, Eta, etc. The JVM as far as I know is still the runtime king, faster then Go.
- lmm 9y agoThe most general answer is OCaml, though in practice I'd probably use something else depending on the details. For most cases there's a better pick than OCaml, but I don't think OCaml is ever a worse choice than Go.
- didibus 9y agoOP was saying porting a project to Go sounds like premature optimization. The alternative is obviously to continue to use the original language. The question to be answered is why are you porting it? Fun and giggles? Hoping to achieve better performance? Scale? Portability? Correctness? Simplicity? Support? I'd say most of the time its for fun and giggles. Which I think is as fine a reason as all the others, but when its costing someone's elses money, maybe you should be more considerate.
- hasenj 9y agoI think it's the opposite. Choosing python in the first place is mostly for fun and giggles. People want to switch away from python because of all the pain they feel from it.
- didibus 9y agoYa, maybe for some. I think for businesses part of it is familiarity, as its now a lot of people's first language. I also think its a choice made often when you start, because it allows you to go faster in the beginning. Which is where a lot of new projects need to be the fastest. Its still a great choice for projects that are short lived, that's why ML works so well on it, most of ML is just quick iterations on prototypes until you find a solid model.
- acdha 9y agoGo isn't my first choice but “like, for anything” reeks of dogma. Can you explain your rationale?
- fellowmartian 9y agoThat was just a harmless (I hope) hyperbole. I've actually used Go a couple of times for image processing workers and such. And that's when I developed my distaste for this language. I mean, I get it, it's easy to pick up and use. Coroutines and channels are useful, and make easy to write async stuff. But god damn, it's so dull and boring, there's no joy in it. We're programmers, we're supposed to extract abstractions and express them in the code we write. And IMO your language should definitely try to help with that. Instead, Go wants you to do err, value = ..., if err == nil { ... } on almost every single line. You can't adequately compose stuff. Well, you can try, but you quickly run into its ugly, verbose syntax for anonymous functions or lack of generics. Maybe I'm not getting something, maybe it's just not for me, I dunno. But next time I need high performance compiled language, I'll use Swift or maybe even Rust. Also I think Scala Native is somewhat stable already, gotta look into that.
- skj 9y agoI pull my joy from the task being accomplished rather than the syntactic swirls I sketch out while accomplishing it.