3 ms·
People can over abstract in almost any language. The problem is that most developers, especially beginners, are not great at finding the right balance. What you
by exceptione 2y ago
People can over abstract in almost any language. The problem is that most developers, especially beginners, are not great at finding the right balance. What you miss is experience in good design.
Now Go handles that by delivering a deliberately limited language. This has its pros when you have a load of hires fresh out of college.
Some wise people saw it from the beginning that the language designers had went too far with their limits, and so now things need to be bolted on the language. But I think some choices are unfortunate and cannot be repaired.
------------
If you want to go functional, want a powerful Hindley-Millner type system that is not too advanced, you should look at F#. You have the full SDK, you can still sprinkle in some OOP, have C# and C interop, you can still declare some types as mutable if needed, you have proper SUM types... the list goes on.
But in my view, no language can replace design skills. A good team has at least one senior who primarily coaches juniors wrt to design.