this article is incredibly long and rambly, but please enjoy as this asshole struggles to select random items from an array in presumably Javascript for what sounds like a basic crossword app:
At one point, we wanted a command that would print a hundred random lines from a dictionary file. I thought about the problem for a few minutes, and, when thinking failed, tried Googling. I made some false starts using what I could gather, and while I did my thing—programming—Ben told GPT-4 what he wanted and got code that ran perfectly.
Fine: commands like those are notoriously fussy, and everybody looks them up anyway.
ah, the NP-complete problem of just fucking pulling the file into memory (there’s no way this clown was burning a rainforest asking ChatGPT for a memory-optimized way to do this), selecting a random item between 0 and the areay’s length minus 1, and maybe storing that index in a second array if you want to guarantee uniqueness. there’s definitely not literally thousands of libraries for this if you seriously can’t figure it out yourself, hackerman
I returned to the crossword project. Our puzzle generator printed its output in an ugly text format, with lines like
"s""c""a""r""*""k""u""n""i""s""*" "a""r""e""a"
. I wanted to turn output like that into a pretty Web page that allowed me to explore the words in the grid, showing scoring information at a glance. But I knew the task would be tricky: each letter had to be tagged with the words it belonged to, both the across and the down. This was a detailed problem, one that could easily consume the better part of an evening.
fuck it’s convenient that every example this chucklefuck gives of ChatGPT helping is for incredibly well-treaded toy and example code. wonder why that is? (check out the author’s other articles for a hint)
I thought that my brother was a hacker. Like many programmers, I dreamed of breaking into and controlling remote systems. The point wasn’t to cause mayhem—it was to find hidden places and learn hidden things. “My crime is that of curiosity,” goes “The Hacker’s Manifesto,” written in 1986 by Loyd Blankenship. My favorite scene from the 1995 movie “Hackers” is
most of this article is this type of fluffy cringe, almost like it’s written by a shitty advertiser trying and failing to pass themselves off as a relatable techy
I’m not personally concerned that any currently-existing ML system can take my job. The state-of-the-art ones can barely help me in my job, let alone do it for me. The things I’ve found them to be good at are things I spend very little time at work actually doing.
But they’re vaguely shaped like something that can take our jobs, and I don’t know if they’ll turn into that. So I worry - in part also for the purely personal reason that I’m a disabled, middle-aged guy who’s seen better days; a hypothetical future labour market that has no need for programmer-shaped brains anymore is one that people like me would probably do very poorly in.
I think that’s a really fair far-future take. I think the most reasonable approach isn’t knee-jerk in either direction (they’re taking our jobs vs they are no threat). I feel that good programmers of the future are going to take advantage of AI capabilities. Copilot does a great job of quickly writing boilerplate code I could write at a slower rate. That in turn gives me more time to focus on things like chunking the problem into method names it could figure out how to write or just writing that complicated business logic myself. All of that comes from my architecture experience and ability to suss out what stakeholders really want, then deliver a minimum viable solution quickly enough to iterate or deliver. The emphasis becomes a focus on soft skills and systems thinking, which is something I feel can come naturally to good programmers today. Getting soft skills isn’t so easy and that might push a lot of folks out.
No matter what, I feel like a solid programmer is one who knows how to adapt. If you can do that, you can adapt to a future where our code jobs are very different from where they are today. I’m pretty young; I started writing Perl web apps, switched to PHP, did random shit, learned JavaScript, did some Rails, then found my passionate in DevOps/SRE. My selling point pre-leadership was my ability to code, not just write YAML, on top of infra knowledge. I think even in an AI future there’s still an edge or two available, even if it’s just soft skills.
On a related note, if LLMs get good enough to shove is out, the writing will be on the wall and we should have plenty of time to use said LLMs to write killer software for future us before executives grok the change.
I’m afraid this is going to be a bit of a rambling answer.
Some context: Many devices in the industrial embedded sector have extreme environmental requirements. Some of them have to keep functioning if they’re being blasted with a snowstorm or if they’re right next to horrible exhaust heat. The processors that can handle that sort of abuse are often a lot less powerful than desktop or even mobile consumer processors, and storage is terribly expensive. At the same time, a lot of the software that developers and users reasonably expect to be present has grown awfully large and resource-hungry. A system crash can be very, very unpleasant - and as every dev knows, more code means more potential for bugs.
What all of this means, taken together, is that we’re all very, very happy when we manage to come up with something that contributes a large negative number of lines of code to the platform. If we figure out something that allows us to make a lot of other code redundant so we can throw it away, everyone is happy. This is the opposite of what tools that enable very rapid generation of repetitive code help with - we spend more time trying to come up with smart ways to avoid ending up with more code. Don’t get me wrong - we use generated code for a lot of tasks where that makes sense, but the part we seem to be spending all our time on at my job, LLMs don’t help very much at present.
The cheery part: I’ve mentioned elsewhere that one of the problems mentioned in the article wasn’t “tricky”, but rather it was just tedious. These sorts of tasks don’t really require deep reasoning or creativity - they just require a lot of trivia, and they’re things that have been done a billion times already, but the languages in common use don’t necessarily have mechanisms that makes them easily abstractable. There’s probably a lot of software that doesn’t get written simply because people can’t be arsed to do the boring part. 90% of that currently-unwritten software is going to be crap because 90% of everything is crap, but if LLMs help get that last 10% off the floor, then that’s great.
Historically, whenever software has gotten significantly easier and cheaper to make, we’ve ended up discovering that there’s a lot more things we can do with software we hadn’t done before because it’d be too expensive or bothersome, and this has usually meant that demand for software has gone up. A current-day web dev can whip something up in a couple of days that would have been a major team undertaking in 2010, and completely technically infeasible in 1998. If you showed a modern web framework to a late-1990s web developer, they’d see a tool that had automated their entire job away - but there’s a lot more web developers today than there were in 1998.
The dark part: We’re discussing a “programmers are over” article. There have been a lot of them in the media in the last year, and while I don’t think that’s an accurate description of the world I actually see around me, this is not at all a fun time to have an anxiety disorder. I’ve spent most of my life filing away the more obviously neurodivergent bits of my personality, and I worked as a teacher for a while - but I am what I am, and “soft skills” will never be my strength.
There’s not a billion-dollar industry in “better autocomplete”, but there would be one in “mass layoff as a service”, and that’s what many of the big players in the field are pumping enormous amounts of money into trying to achieve.
I love your rambling responses! You add a lot of detail and you’re talking about a side of code I don’t touch.
I think a safety net for you that will continue to exist your entire lifetime is embedded work for the US government or related contracts. I’ve got buds writing embedded code for defense contracts. Stuff like that will take decades to adopt LLMs because of how contracts work and the security process. I’ve got friends at DHS that just finished a fucking Coldfusion migration. Some friends are writing Ada for bombers. Your skills fit that niche pretty well and it’s stable work. The idea is not to use the newest and greatest but rather test in depth with old setups.
if the capitalists succeed in their omnipresent goal to vastly reduce the perceived value of your labor, you can always write terrible code that kills in one of the most tedious languages ever invented
do these ideas give you comfort
This is the point where the anxiety patient has to make a rambling reality check.
It’s obvious they want mass-layoff-as-a-service. They openly say so themselves. But it’s less obvious, at least at this point in time, that generative AI (at least in models like the current ones) actually can create that. I’m worried because I extrapolate from current trends - but my worries are pretty likely to be wrong. I’m too good at worrying for my own good, and at this point, mass layoffs and immiseration are still involuntary speculative fiction. In general, when transformative technologies have come along, people have worried about all the wrong things - people worried that computers would make people debilitatingly bad at math, not that computers would eventually enable surveillance capitalism.
We’re currently in the middle of an AI bubble. There are companies that have enormous valuations despite not even having a product, and enormous amounts of resources are being poured into systems that nobody at present knows how to make money from. The legal standing of the major industry players is still unestablished, and world-leading experts disagree about what these models can realistically be expected to do and what they can’t. The hype itself is almost certainly part of a deliberate strategy: When ChatGPT landed a year ago, OpenAI had already finished training GPT-4 (which begun a long time prior). When they released that, it looked like they leapt from GPT-3 to GPT-4 in a few months. The image input capability that came out a few months ago were in the original GPT-4 model (according to their publication at the time); they just disabled it until recently. All of this has been very good at keeping the hype bubble inflated, which has both had the effect of getting investors (and other tech companies) to pour money into the project and making a lot of people really worried for their livelihoods. I freak out whenever I see a flashy demo showing that a LLM can solve some problem that no developer actually needs to use their brain for solving, because freaking out is unfortunately what comes naturally to me when the stakes are high.
I don’t think this is like the crypto bubble. Unlike crypto, people are using LLMs and diffusion models to produce things, ranging from sometimes-useful code and “good enough” illustrations for websites, to spam, homework assignments and cover letters, to nonconsensual deepfake porn and phishing. We now have an infinite bullshit machine, and lots of what people do at work involve producing and managing bullshit. But it’s not all bullshit. A couple months ago, the “jagged frontier” paper gave some examples of tasks for management consultants, with and without LLM assistance. Unsurprisingly, writing fluffy and eloquent memos was much more productive with an LLM in tow, but complex analytical tasks actually saw some of the consultants get less productive than the control group. In my own attempts to use them in programming, my tentative conclusion is that at the moment they help to some extent when the stumbling block is about knowledge, but not really much when it’s about reasoning or skill. And more crucially, it seems that an LLM without a human holding its hand isn’t very good at programming (see the abysmal issue resolution rate for Github issues in the SWE-Bench paper). At the moment, they’re code generators rather than automatic programmers, and no programmer I know works as a code generator. Crucially, not a single one of them (who doesn’t also struggle with anxiety) worries about losing their jobs to LLMs - especially the ones who regularly use them.
A while ago, I read a blog post by Laurence Tratt, in which he mentions that he gets lots of productivity out of LLMs when he needs a quick piece of Javascript for some web work (something he doesn’t work with daily), but very little for his day job in programming language implementation. This, it seems to me, likely isn’t because programming language implementation is harder than web dev or because there’s not enough programming language implementation literature in the training set (there’s a lot of it, judging by how much PLT trivia even small models can spit out) - it’s because someone like him has high ambitions when working with programming language implementation, and he knows so much about it that the things he doesn’t know are things the LLM also doesn’t know.
I don’t know if my worries are reasonable. I’m the sort of person who often worries unreasonably, and I’ve never felt as uncertain about the future of my field as I do at the moment. The one thing I’m absolutely sure of is that there’s no future in which I write code for the US military, though.
this is an excellent point I haven’t seen before, and it clarifies a lot of the oddness around how these things have been deployed. it’s marketing-oriented development, and it’s being used to paper over the severe limitations in these models
that’s mostly where I’m at too, though I feel like my anxiety has enough reason behind it that I want to actively do something about it — usually something to do with this instance, though a lot of my recent projects (learning a lot more about hardware design languages, planning a community for folks to share their open source work) are deeply influenced by that anxiety too
Do you have anything to else to offer or is your solution to roll over and do nothing? Some of us still have families and networks to support so we can’t just devote all our time to sniping labor on the internet in preparation for the glorious revolution. Given the discussions you have on your instance, I’m kinda disappointed this tepid response is the best you have.
I should have seen this coming.
you have mistaken me for the cartoon socialist in your head
deleted by creator
Assuming that the current largesse of US defense contracts will survive the LLM-induced collapse of the middle classes is … a take.
US defense spending is seen as a political holy cow at the moment but its well-paying superstructure is as vulnerable to attacks from the nativist/neo-isolationist right as from the left. Add in a sprinkling of attacks on “woke” corporations and that bomber program is not as safe as you think.
I’m not American, and if “mass layoff as a service” actually ends up working, the safety net my country does have is going to break apart rather rapidly.
It’s dependent on people and companies paying taxes, and that’s going to be a problem if middle class employment implodes, domestic businesses are destroyed and all the money is captured by Silicon Valley oligarchs and put in tax havens.
Oh my goodness! I apologize for assuming. I read the wrong thing into your comments.
Do the whims of Silicon Valley greatly affect your market? The most I’ve interacted with non-US markets is running some near-shore consulting with one of the majors (spun up a Mexican firm but the executives wanted to pay local rates for remote US work which is a fucking joke). I also know, should I leave the US, I will have a much lower salary. I’ve hired a fair amount of remote talent in the Americas and India for various jobs; I think a good chunk of that work is the kind that could be replaced by LLMs in the next two decades or so.
I live in a North European country. My salary is considerably lower than what American devs make, but I live a comfortably middle-class life. My expenses are also lower: There are a lot of things I don’t need to worry about (eg. healthcare), and I live in a walkable city area where pretty much everything I need day-to-day is at most a 15 minute walk away - except my workplace, which is a comfortable 20 minute bus trip. I don’t have a car and never really miss having one. The great thing about this is that I could take a substantial pay cut and still live reasonably comfortably - I wouldn’t lose healthcare, and if I had any kids I wouldn’t have to worry about their education. But this all works because my country spent the last few decades using social policy to establish a comparatively large “knowledge sector” - which is exactly the thing that AI companies want to move fast and break. If all the middle-class jobs implode and all the major domestic businesses are destroyed by Silicon Valley tech giants, then we’re screwed. The ubiquitous answer of “UBI” won’t work when the economy is being drained from the outside - who’s going to pay for the UBI then?
I don’t know how quickly contemporary AI will be able to replace people to a significant extent (or whether more fundamental breakthroughs are necessary before that sort of labour disruption happens; historically, there’s been a lot of times where it turned out we all dramatically underestimated the real world). There’s a lot of impressive demos, and they do allow rapid code generation (for some well-established tasks) and rapid generation of eloquent natural language - but they suffer from the “last 10%” problem, and the last 10% are already what most professionals seem to be spending all their time on. In programming, this is pretty much by definition: If Copilot is doing it for you, you’re not spending significant time on it - and even the most avid LLM users I know aren’t anywhere near running out of work to do.
We live in a globalized economy, and that means that some whims of tech oligarchs will fly everywhere, and some won’t. Uber never took off here - their excuse that their drivers were “independent contractors” and not employees didn’t fly, and they ended up legally being considered a taxi company rather than an app company, meaning that all the labour protections that apply to taxi drivers would also apply to Uber drivers. That made the whole thing untenable, so they gave up. But that’s different, because Uber can’t teleport a car here from the US. If a Silicon Valley company actually becomes able to deliver fully autonomous digital knowledge worker replacements (which is what they want to do, but not where they currently are), there’s nothing stopping executives here from using them just like executives in Silicon Valley.
Just out of curiosity, why did you assume I was American?
US bias. Nothing more. All of the embedded devs I know are from the US. I know a bunch of European security and data folks, so in those contexts I don’t immediately jump to US there. That’s also why I asked the questions I did. I know my market and I’m really curious how it affects you.
That’s fair (I’m not insulted, just in case).