3 ms·
I think what really makes those languages/teams productive is iteration time being low. Part of that is a natural consequence of small teams and lack of legacy
by overgard 8y ago
I think what really makes those languages/teams productive is iteration time being low. Part of that is a natural consequence of small teams and lack of legacy code but certain languages definitely encourage it more than others. If you have fast iteration times you can really quickly figure out a system by experimenting, or work through bad ideas on the way to good ones.
For whatever reason software developers always seem to undervalue fast iteration times, and the less productive languages always seem to make iterating quickly harder, whether it’s C++s ghastly compilation times and lack of an ABI making it hard to integrate libraries, or Java’s interdependent class based nature causing excessive mocking and/or lots of generally unrelated state being required to have a working object to test with. In contrast smalltalk lets you just highlight a chunk of code and run it, and the lack of separation between runtime and ide generally means you have enough of the system live for things to work. I think where smalltalk doesn’t scale is it can’t easily take advantage of things invented outside of it because it’s so integrated and practically its own OS