5 ms·
I've used Go for numerous web projects, and I dislike it progressively more as time goes on. There are a lot of things that I really like about it, but I feel a
by clessg 11y ago
I've used Go for numerous web projects, and I dislike it progressively more as time goes on. There are a lot of things that I really like about it, but I feel as though its advocates have a bit of stockholm syndrome. If Go makes X difficult or clumsy, then clearly X is a bad idea and you should Do It The Go Way™. I hope that doesn't come across as too dismissive; it's just been my experience.
I really like some of the decisions around Go, but I don't like Go itself, as a language. For web apps, at least. I've been looking at http://elixir-lang.org/ http://elixir-lang.org/ and http://www.phoenixframework.org/ http://www.phoenixframework.org/ and I really hope that they gain steam before Go does. I will continue to use Go for command-line apps, which I think it is very well suited for.
- laumars 11y agoI get what you mean there. For the stuff Go is good at, it's very nice to work with. But for the stuff it's not so great at, it's often just a pain. While this is true for most / all languages, it feels more apparent in Go since it's very inflexible outside of the Go idiom. I guess a fair comparison would be like Linux how the many flavours others users variety and freedom, but it also complicates and often introduces subtle incompatibilities (albeit usually resolvable if you know what you're doing). And similarly the Go idiot is a double edged sword that sometimes enables it's users, and sometimes hinders.
- tptacek 11y agoIf you replace "X is bad" with "X is not the right way to solve the problem in Go programs", you end up with a much more reasonable statement. Lots of good, even great things don't make sense in every program. The notion that every good thing should be available to every program seems more unreasonable to me than the inverse notion.
- kasey_junk 11y agoAbsolutely, but there is certainly a very large strain of "father knows best" in the golang language and community. Which can be very off putting.
- tptacek 11y agoIt's probably the ~5 years of Ruby I did prior to Go that inoculates me from that; I'd rather have "father knows best" than the opposite.
- clessg 11y agoAs somebody who's done a lot of Ruby, I can sympathize with that. But the rationalization is typically very religious: it often turns out that every decision made in the language is obviously the right decision. If you disagree, then you're wrong, and you should just accept it and stop questioning it. (This is not hyperbole. People actually say this.) The Go community can be really problematic and condescending. Which is another reason why Elixir appeals to me: you get treated like a person.
- AnimalMuppet 11y agoWell, if I'm in a position to re-write the language, then how I think they should do it matters. If I'm in a position to select which language gets used on a project, then which language does it the way I prefer matters. But if I'm in the middle of a project in language X, trying to do Y, then "shut up and do it the way we do Y in X" really might be the correct answer. Work with the tool, not against it...
- GhotiFish 11y agoFor the record. It is never not the case that if you find a way of doing something very difficult in a particular language, you should look for a way to do it in that language that is not difficult. That may sound trite, but it's not as bad as it sounds I think. As an example: People want to make their own map (or have a library that provides map) in go, but go just will not play ball. The algorithms and writing styles people had in mind that use map shouldn't be written, and if you legitimately cannot express a concept concisely without it, than that makes go a worse language.