ThoughtStorms Wiki

Living EcoSystems are messy, crufty and have a lot of redundancy.

Do you think software has become "messy" and "bloated"?

Nov 13, 2019

Yes ... but.

Yes, I think it has indeed become ridiculously messy and bloated.

That's why so many people hanker after the simplicity and purity of systems like SmallTalk and LispMachines and RedLanguage etc which seem to promise everything built from the ground up on a few reused pieces.

But, I kind of suspect this is inevitable. Software is like an ecosystem or economy. It's either healthy, in which case it's growing, adding new, rival, competing species; adding complexity; building up layers of legacy and history which you have to deal with.

Or it's dead. All those ideal systems are either completely dead, like Lisp Machines, or in a kind of suspended animation, like Smalltalk, always just about to wake up and conquer the world, but never doing so. Or like Rebol / Red-Lang, they're inspired by older dead systems, but are young and hopeful. But still haven't taken off.

New systems that start simple, let's say JavaScript, but become popular, then undergo a kind of Cambrian explosion of new frameworks and libraries and abstraction layers etc. until they end up hugely messy and bloated. Like the Amazon rainforest.

So I do think that today software development is horribly bloated. And from one perspective I see the absurdity and unnecessity of this. But at the same time, I'm not sure what you could do about it. Or if it's possible, even in principle, to do anything about it.

All the examples of beautiful simplicity ARE basically "dead". And if they came alive, would they stay simple?

Suppose people finally saw the light and Smalltalk started growing in popularity and usage. Wouldn't you start seeing a multiplicity of rival frameworks springing up? As different programmers started wanting to solve the same problems in their own different ways? Wouldn't you quickly get a need for the unified "image" which contains all the batteries, to be broken up into a set of separately installable external packages, so you can install only what you actually need. Leading to dependency management issues? Wouldn't your web-framework bloat because 500 different heavy users of it all needed a couple of extra tweaks and parameters to handle edge-cases in their specific applications? Etc.

No Backlinks