My thoughts on Dave's (@ratfactor) post "A programmer's loss of a social identity" (I recommend reading the original before the response below!)
Hi Dave,
Thanks for your article. It articulates a lot of the thoughts that I had on this subject matter too, but I never really crossed the threshold of displeasure to publish about them.
Which is to say that the pleasure I get from programming is mostly about learning the underlying truths about computation and applying what I’ve learned. Always improving the craft. This, to me, is the practice of programming.
When I was younger I also liked entertaining the idea that learning things is fun. I've built a bit of a name for myself for doing esoteric languages (know Malbolge? Wonder who proved it Turing-Complete after 20 years?) and other useless stuff purely because the path from A to Z was quite fun.
The transformation has been bewildering. It feels like the blink of an eye, though I guess it’s been about three years. The culture has changed immensely in that short time. When I identified with the programmer culture, it was about programming. Now programming is a means to an end ("let’s see how fast we can build a surveillance state!") or simply an unwanted chore to be avoided.
You're not going to like this, but I feel like this joy is now behind me 🙁. I have adulted, found a job, and realised that nobody will really appreciate all of these nifty things, while I still have to - unfortunately - cater to my physiological needs to eat and sleep. Programming no longer feels like something enjoyable by itself, because I need a result for my upcoming paper, or I have so many things unrelated to the bread and butter of computing to do that I simply can't nurture my curiosity by programming anymore.
I was very lucky, riding a wave of personal computing on an upward slope that probably started sometime during the radical advent of home computers in the 1980s and continued well into the 2010s.
I vehemently disagree.
The world was always this cruel: when I was young, I chose to ignore nay-sayers and decided that learning stuff, regardless of how immediately useful it seems, is a good idea and judging by the track on which my life is now - the effort paid off. But for each person who appreciated it, there were ten who would go out of their way to say that I'm wasting time for not building soulless products. It's no wonder that people these days turn to LLMs.
I think that the reason why you observe the things you do is the unfortunate, noxious grip of capitalism that haggles for the remaining bits of immediate value of Human Resources. If I didn't fear for my immediate future, I would do what I would really love. But these days, all I can do is to slowly kindle away. Thankfully nobody is pointing a gun at me and making me use LLMs, so maybe it's not as bad as it could have been.
If the problem is that we’ve painted our development environments into a corner that requires tons of boilerplate, then that is the problem. We should have been chopping the cruft away and replacing it with deterministic abstractions like we’ve always done.
Regarding this intermezzo on abstraction: It's agreeable if you look at it from a perspective of a programmer. The general trend of trying to get rid of these pesky and annoying programmers has started way back. BASIC, COBOL, SQL, all meant to make programming more accessible to non-programmers. The early 1990s brought CASE (Computer-Aided Software Engineering). Under the premise that code produced by human programmers is substandard, but that they are nonetheless excellent at modelling and creating specifications, we attempted specification-driven code generation for the first time. Around the same period, UML was invented. How is it that you have (most likely) never heard of CASE? The principal problem with it, deep down, is that it never worked. When generating code, the best the tools could do was create all the classes for you and perhaps define the methods for the class. The tools could not provide an implementation unless they also managed the implementation within the tool itself, which was dreadful. The early 2020s brought LLMs, no comment needed here.
OOP is not a tool of thought, it is rather a tool of source code obfuscation. It's never implemented properly, trades implementation details for structural features, and exists solely to serve as a balm to the soul of the middle-level manager in his pursuit of the Plug&Play Programmer.
I’ll say the really awful part now: For the first time in my life, I’m suddenly wary of meeting other "computer programmers" in the wild.
I hate programmers too.
--
With Valediction, Kamila Szewczyk (https://iczelia.net)
