Hacker News new | ask | show | jobs
by crdrost 1427 days ago
Marx talks about this a bit in Das Capital... You would think that the automation of an industry improves working conditions inside of it, in practice the opposite has usually been true: fewer people work longer hours in ever-more-tedious ways. So you used to go to work to design something, but in this vision of the future, you now go to work to craft prompts to DALL-E-2 so that it can design something for you, but because design is now so much cheaper you have to do three or four times as much design in the day, and this mechanism only doubles your rate of production... Gets to be a real mess.

However, I would notice that we have been blessed with a different exponential, which we have been riding into the future. That is the exponential of processor speed and storage and all of the other computing resources. It's a perennial observation that our actual programs have not gotten much faster. The extra resources are immediately wasted. The reputation of hiring developers from developing countries, the cheap foreign labor force, for us has always been that you get a big ball of mud which you cannot maintain very easily. I do not see AI helping with this, but rather exacerbating it. Beforehand, there was a reasonable limit to how many lines of code you might expect from a developer per day, maybe a couple hundred if they test their code well and do other things to refactor and simplify. But with AI you could imagine it multiplying 10-fold, just throw more mud at the problem, the mud ball is already huge: what could it hurt.

In fact, we may see the Smalltalk revolution! Of course this has been prophecied before, but never really come to pass. In this more-dystopian form, the idea is that everyone leans heavily into AI and something like kubernetes for modularization. Every single cell, every pod, in these gigantic supercomputer clusters which shall exists to serve up a smallish blog, needs to do something small enough that with its abundant AI generated code, it can nevertheless live and die successfully, spawning new processes as needed. The blog is thousands of small mud balls, and they work together in signaling pathways that are no longer understood by any human who works on the blog, and the dominant metaphor ceases to be one of mechanism and design and inputs and outputs... Rather it is biological, or even ecological. To start such systems up requires a story of “childhood” where a harness coordinates the first thousand nanoservicesv and grows the cluster into a template for the living application, then it needs AI-style “training” to reconfigure itself to handle actual business purposes, finally it will be released on the world, only to make mistakes which we will have to educate it to discern as mistakes... We certainly can't fix the system, we don't know how it works. Not what Alan Kay envisioned! But who knows. Maybe our kubernetes clusters will go to school one day.

1 comments

What’s the “Smalltalk revolution?”
It is in the history of the programming language Smalltalk, that it was meant to usher in a new era of computing.

This era would be built on several basic principles. The first one is that you would have no real separation between source code in some text editor, and the running program—a prophecy that has yet to come to pass. All the rest of us rely on shooting a misbehaving program in the head and birthing a similar child with slightly altered DNA to replace it... Smalltalk expects you to have a conversation with the program as it runs: the whole programming language is instrumented with reflection, and every module is hot reloadable. There is literally a method, Object.become, “OK computer, take all of the references anyone has pointing to that other object and point them to me, I will be taking over for it.” Bold.

A second conceit is that the new way to be a programmer, the new metaphor, is not one of traditional authoritarianism—think in particular of remote procedure calls. But the new metaphor will be biological: a module will peek around its environment, maintain a “homeostasis” of inner state consistency, the system as a whole will be tolerant of intra-module logical inconsistency, while the individual cells will just die if they cannot maintain consistent state, cells live, cells die, cells organize into larger tissues and organelles and organs in order to find their greater purpose.

A third great principle is fractal architecture, the idea that the parts should contain the essence of the whole. So in functional programming you might build a computer program out of parts that are not computer programs. But Smalltalk wants to say, no: every computer program in this language will be constructed out of units that are fully fledged computers in their own right, running one or many computer programs. And so there is no need for all of these computers to be on the exact same host machine, of course they can be because a computer can pretend to be multiple computers by task scheduling, but it is not necessary.

Related to that, there is a vast skepticism towards locking and atomicity. Implement virtual time, or leverage the full power of the actor model... Those are preferable.