▲ | Cthulhu_ a day ago | |||||||
Counterpoint, other languages - notably Javascript, Scala, PHP, maybe Java - have taken the stance that they adopt other languages' features, not because the language needs it, but because developers were clamoring for it. Which led to added complexity, because they kept adding more and more ways to solve a problem or structure an application, which led to every codebase being so different from the next that the amount of transferable skills and knowledge became less and less. Scala is the worst offender for that IMO. One frequent praise one hears of Go is that a developer can open any codebase and immediately understand what's happening. Go is readable and stable, which are critical for code for the long term. | ||||||||
▲ | monksy a day ago | parent | next [-] | |||||||
I like scala and I think it's a great language even with teams. I think you're overlooking the context of the language. It was a language that introduced a lot of new concepts to most programmers out there on top of that it was flexible to accomidate existing Java developers (for better or for worse). It evolved and grew quite a bit. The fact that you could develop different styles made the language a lot more useful. I'm not sure what you mean by transferable skills.. but that sounds like code for overly excessive coding preferences by hiring groups. If you're working with Play you'll be able to learn Finagale, or go to Http4s. When you attack a codebase, you can't consume it and understand the full context easily, the range of operations that a code base is expected to do is far too vast for that. Even with Go, you can't just pickup and go that quickly. It may (if you're that experienced) become easier to understand. But with a large codebase, it's going to make it much harder as that it encourages large drawn out functions and verbose handling of errors. Also, Go's testing preferences tend to make it harder to write good and effective tests. | ||||||||
▲ | worldsayshi a day ago | parent | prev | next [-] | |||||||
The one language feature that I miss in most languages is pattern matching. I wonder if there's any minimalistic language that implements pattern matching well? | ||||||||
| ||||||||
▲ | guappa 10 hours ago | parent | prev [-] | |||||||
I don't even need to open a go codebase to know what's happening. 60% is "if err != nil". |