Computer Independence

Share
Computer Independence
Independence

When I started programming, I worked in paper. Getting a computer to run my idea was a distant target. Eventually I got access to some mainframes (sometimes by way of curious roads), but it never felt independent. It was always begging, or paying, or getting hired to do something that did not interest me, or just plain hiding.

Then the home computers arrived. It was not the same. They were primitive, and limited, and plain bad looking. Nothing worked as I expected. But the freedom was incredible. I still did not have the money to buy one, and it was more begging, or getting paid (or, as a naive engineering student as I was at the time, hearing 'you are so lucky that I will let you work with my commodore 128', the sentence from an astute accountant, one of my earliest clients). The freedom was fantastic. I could do anything.

Eventually that started to wash out. Yes, I could to anything, but it needs to work with Lotus 123. Or it has to print in this particular printer. Or the screen needs to be in color (when color was CGA and ate half the screen resolution in exchange of three or four strange colors).

Still, I was able to do everything on my own. I did my own database engine. I even implemented a subset of SQL, which I was the only one who managed to know. Eventually I moved to Clipper, dropped my own SQL, and got, something, in exchange. I started to get lost. But still, I knew everything that my programs did. Or so.

Windows arrived. Delphi, similar enough to Turbo Pascal to be just Pascal, but less so. Add a form. Drop a grid on the form. Drop a table on the grid. You have an application! Use the BDE, now you can have two users in your application! Unless it breaks, and then you call me. Less and less understanding each time, but still, I knew everything that was supposed to happen in my programs.

And then Windows 2000. .NET. SQL Server. Exchange. Click and click and click, and if you remember the screens distribution, and you staid in the same version, you more or less knew what was happening. With limitations. I started to say that I could create any program, but I needed a system administrator a DBA and a front end programmer. That lasted for some years, and I got more and more tired of clicketing around and of being unable to make the whole thing when it broke (and it broke regularly).

Meanwhile, Linux and open source applications became better than the options from Microsoft. Or more accessible. Amazon started renting their machines, and the programs moved solidly to the web, and I left Microsoft and started going around Ubuntu, Node and Python. And also started to have more and more specialists around. Redis need configuration. Kafka, MongoDB, MySQL, PostgreSQL, Docker, everything needs someone who really know the tool. Even for some time, but someone had to know the tools until they worked, then they needed to explain them, then they needed to stay around in case something crashed. The more computing power was available, the less I managed to manage myself. When something broke, we talked with the expert, and then I fixed my part if necessary. It was fantastic, but also tiring. And to do even a small application, I knew that you needed an army around. And usually needed a few service providers, each with their own mindset, and each selling their own opinion.

And now. I the last year or so, the LLMs became more and more able to answer things correctly. What is the recommended practice to deploy RabbitMQ on Docker to talk with Python and SQL? Do you have a configuration example? The example crashed with this message, do you know what it means? Give it a few weeks, and the deployment from the LLM sort of worked well enough to be able to really get into it and making it work, instead of spending weeks just trying to get the most basic stuff online. It was fantastic again. And also worrying, because if I could do that, anyone could. A grocery shop could setup their own infrastructure, do their own programs. Just like in the Commodore times!

Just like in the Commodore times, the theory is correct, the practice not that much. The LLMs are better every week, and still, things go wrong very quickly. After a year on them, I know where to look for problems, and the problems are usually around. And new classes of problems. However, the possibilities keep growing. If you know what to do, and where you go, you can setup any infrastructure you need. DNS, SQL, Git, messaging. Wikis, blogs, graphical editors. Things that needed hours of clicketing, and crashed on each update, now can stay working. Not for free, you still need to hang around and understand what you are doing. but they can work. I bought some Raspberry Pis to implement a Kubernetes cluster many years ago, tried many times, and failed each one, until I did it with machine assistance.

Yes, the start might be incorrect. You might need to throw everything away, and you spend hours and hours waiting, and reading, and checking and verifying. But after a few hours, something is working in some way, and then you can dig as much or as little as you want, because you know that in the worst case, you start again and it will work, faster and better, the next time. And you can do it without having an account in any service provider. What you need, you can run yourself.

That, for me, is computer independence. That is being back in 1985. I know that I can make it work, and I know that I can fix it when it is broken. It is fantastic.

For years I worked with Ubuntu, and published many applications in GitHub. None of them survived more than a few updates. Now, I moved to NixOS, which I didn't know. In setup my own DNS, well enough to install my own Gitea server, well enough to install my PostgreSQL. well enough to install my own documentation managers. I deployed the K8s cluster, and it worked. But I wanted it differently, and still worked. And I don't need to buy services from anyone, except an internet connection and maybe a VPS hosting if I want to keep things separate between public and private. It is exhilarating. Sometimes I just want to hang around doing more and more things, and to program bigger and bigger things. Or smaller ones, because it is kind of free.

These days, the cost of the LLMs is growing. I regularly hit the limits of my plans, and I have to fight with each opinionated LLM provider to ask for the things I want. But even that is changing. I have a pretty old machine for the current standard, but a lot of memory cover for a lot of things. Drop an updated GPU and you can run your own models, at the price of electricity, and maybe waiting time, if you want to stay waiting instead of doing something else. It feels more and more like the start of the PC era. It is like looking to a city in a valley from the top of the mountain. I loved that time, and I love to drive around the mountains. It is very interesting to be a programmer in 2026.