> I wonder if there’s room for a theory of convergent evolution, in software and languages, towards something that is generally appreciated.
There definitely seem to be a few attractors. Almost every serious language from the last 20 or so years is now essentially OCaml with some minor tweaks. (e.g. Java has pretty much spent 25 years gradually turning into OCaml; so has Python, despite a very different starting point). Meanwhile languages that get extensive macro capabilities early on tend to turn into Lisp.
Most likely, just like all phones now are big black rectangles.
There are also orders of magnitude more programmers now, so the style of programming changed. Think classical music (few listeners) versus popular music (lots of listeners).
And all phones in sci-fi movies are big transparent rectangles! What's up with that???
Maybe it's meant to be scathing social commentary on the ultimate destination of today's mobile phone trends in terrible user interface design and terrible privacy. But probably not.
> towards something that is generally appreciated.
I think it's simpler than that.
It's convergence to the lowest common denominator. The simplest implementation of the simplest thing that does the job, in the simplest easiest language that is capable of it.
But because "simple" can be taken to extremes of very clever but abstruse tools that only near-genius level minds can use effectively, and those folks do not work well together, what ends up cheap at first is the simple easy thing that is simple and easy to get working.
Lisp might be arguably simpler in a theoretical sense but for a lot of ordinary folks it's just too weird and too hard.
APL is "simple" inasmuch as a hundred lines of nested loops can be written as one line of a dozen hieroglyphics that does the same task in one operation... but there are only a few hundred people on the planet that can read it.
C is a simple tool for simple computers but you can pick it up and learn how to use it with just a book and some time.
It's fiddly and hard to do anything clever which means programmer must do grug brain stuff.
And that means others can follow it, and work with it, and that means teams scale. Not very well but a bit. So companies can hire rooms full of grugs and make it work.
Result, people who like the dumb tool have strength of numbers and they mock the speccy nerdy weirdos who like the weird tool.
Which is fine until you end up with a million programs built from a million lines of C each and a million techies trying to get them to work together.
Then you end up with an industry that makes billions of dollars a month, selling billions of lines of code that nobody understands, and hundreds of thousands of people trying to prop it up and keep it working.
By that point it becomes clear that you should have employed a dozen geniuses to do it in a few thousand lines of the weird nerdy tool. You'd have ended up with something smaller and simpler and easier to maintain, and even the paycheques of the dozen geniuses would be less than the paycheques of a thousand grug brain developers.
But it's too late. The geniuses retired or went off to grow bonsai or something. All that's left is people who only know the grug brained methods.
It is easy to believe it's some kind of elegant evolution of the best possible solution... but it's not really. It's lots and lots of the cheapest worst solution until everything else dies out.
That is what I am trying to get at here.
But I am always learning and I try hard to be open minded. If you have specific point by point rebuttals, I'd love to read them!
> By that point it becomes clear that you should have employed a dozen geniuses to do it in a few thousand lines of the weird nerdy tool. You'd have ended up with something smaller...
Probably.
> ... and simpler...
Maybe not. Some geniuses produce simple; some produce insane complexity.
> ... and easier to maintain
Almost certainly not, unless you have another genius.
Maybe there will always be camps arguing for one thing or another, but together and over the longest term, do they all pull in one general direction?
I’m not so sure I agree with most of the article. The perspective is valuable.