4 ms·
I get your argument regarding PHP, MongoDB and NodeJS, but having never used Go I'm wondering what makes it a "bad technology"? I've mostly heard good things a
by chriswarbo 10y ago
I get your argument regarding PHP, MongoDB and NodeJS, but having never used Go I'm wondering what makes it a "bad technology"?
I've mostly heard good things about Go, except for lack of generics and the use of github repos in "import" statements.
Are those the reasons you think it's bad, are there more serious ones? Is Go actually "bad", or does it just bring little to the table? I understand Go's meant to be a middle-ground between Python (dynamic, memory-safe, slow) and C (static, unsafe, fast); do you consider it a step forward in that regard? If a bug-free, non-obfuscating source-to-source translator between two languages appeared overnight, would you prefer those languages to be Python -> Go, Go -> Python, C -> Go or Go -> C?
- yummyfajitas 10y agoSo by "bad", I mean 20 years behind other languages that live in the same niche. Lack of generics and a modern type system (assuming you go the type system route) is actually a really bad thing. If you want a middle ground between Python, there are already great options that provide everything Go does and more, for example Java, Scala, Common Lisp, Haskell and Rust. Lisp is a bit closer to the dynamic/slow side, Haskell/Java/Scala are more or less Pareto superior to Go, and Rust is a little closer to the static/fast/unsafe side. But unlike Go, Haskell/Scala/Java expect you to learn a few things before you can be really productive in them.
- ixtli 10y agoWhile I'm not sure I agree with your entire point I think it's clear that not only do people not appreciate the _generations_ of hard work you're leaving behind when you abandon LLVM/Clang/etc or languages with powerful type systems but they actively resist understanding this. Put simply I don't think people disagree with the "20 years behind" thing, I actually think they don't understand what you mean.
- yummyfajitas 10y agoYes, that's because they are code monkeys who are unwilling to put the effort into learning something new. (An uncharitable, but perhaps effective way to phrase it.) My proposal is simply that we don't treat this anti-intellectualism with kid gloves.
- ixtli 10y agoI'm fine with that, though I have noticed in years participating in _this_ community that it vocally penalizes strongly worded criticism. This is, of course, stupid.
- mindslight 10y agoI haven't used Go (lack of pattern matching is a non-starter for me), but the lack of generics seems like more of a decision to place it halfway between typed and untyped. I don't think it's valid to assert that any typed language is deficient if it does not have an expressive type system. (I completely agree with your original point. "Worse is better" is not meant to be an equivalence)
- ThatGeoGuy 10y ago> Lisp is a bit closer to the dynamic/slow side This is a nitpick for sure, but Lisp via SBCL is hardly on the "slow side." This isn't 1970 anymore. Perhaps this is evident of "contempt culture" and how we propagate memes of fast vs. slow, types are good vs. types are restricting, and other non-specific comparisons.
- spriggan3 10y ago> but having never used Go I'm wondering what makes it a "bad technology"? The justification for Go is basically "developers are stupid and don't know what they are doing,so we're going to tell them what to do, how to do it and not trust them in any ways". Which is bullshit of course, it's just that Go compiler is bare-bone and so is its type system. Go is bait+switch . It has just enough features to make it easy to learn/deploy, its standard library has just enough things to get one started quickly when it comes to writing servers. But as soon as one tries to write something a bit complicated its short comings become obvious and tedious. Some see it as a blessing, some see it as an insult to software development. There is a bit of bad faith in both camps but Go authors have masterfully been able to escape any criticism with dubious arguments. Imagine Java maintainers refusing to add closures to the language and the Java community would be justifying it by saying "closures are too complicated, slow and a bad practice". Does it make Go a bad tech ? no, but it sure has a weird community. But Go has great ideas, it's just has horrible ones too. Fortunately, as the language becomes more popular, it will be more exposed to criticism. Which hopefully will lead to a better Go in the future, whether it comes from Google or not.
- jcadam 10y agoGo has a seriously good chance of becoming the language of choice for organizations which prefer to employ cheap code monkeys. As far as long-term career 'strategery' goes, specializing in Go development may be risky :) It's one of the few languages I've seen where a programmer can progress from novice to master in a couple of months because its features are few and its opinions strong. It's easy and fun to learn (it might make an excellent CS 101 language, actually), but spend enough time with it and you will grow to dislike it. That said, I do occasionally use it when I need to whip up a quick command line utility to do something simple :)
- deleted 10y ago[deleted]