I think I’m the type of person who gets into things after everyone. To that regard AI is no different, and for a long time I considered LLMs a toy - this was truer of older models, such as the original chatGPT models that came out in 2022-2023.
The discourse has understandably evolved over time and it’s clear that AI is not going anywhere. It’s like quadcopters in warfare, or so many other new techs before. As much as we’d like them not to be used or exist, they will still be. To refuse to adopt new advancements means to be left behind and giving oneself a disadvantage on purpose.
Ultimately the problems around AI stem from capitalism. Yes, there are excesses. But this is true of humans too.
AI - especially LLMs, which I have more experience with - are great at some tasks and absolutely abysmal at others. Just like some people are good at their job and others don’t know the first thing about it. I used to get an ad on Twitter about some guy’s weird messianic book, and in it he showed two pages. It was the most meaningless AI bullshit, just faffing on and on while saying nothing, written in the most eye-rolling way.
That’s because LLMs currently aren’t great at writing prose for you. Maybe if you prompt them just right they might, but that’s also a skill in itself. So we see that there is bottom-of-the-barrel quality, and better quality, and that exists with or without AI. I think the over-reliance on AI to do everything for them regardless of output will eventually be pushed out, and people who do it will stop finding success (if they even found it in the first place, don’t readily believe people when they boast about their own success).
I use AI to code, for example. It’s mostly simpler stuff, but:
1- I would have to learn entire coding languages to do it myself, which takes years. AI can do it in 30 minutes and better than I could in years, because it knows things I don’t. We can talk about security for example, but would a hobbyist programmer know to write secure web code? I don’t think so.
2- You don’t always have a coder friend available. In fact, the reason I started using AI to code my solutions is because try as we might to find coders to help, we just never could. So it was either don’t implement cool features that people will like, or do it with AI.
And it works great! I’m not saying it’s the top-tier quality I mentioned, but it’s a task that AI is very good at. Recently I even gave deepseek all the JS code it previously wrote for me (or even handwritten code) and asked it to refactor the entire file, and it did. We went from a 40kb file to 20 after refactoring, and 10kb after minifying. It’s not a huge file of course, but it’s something AI can do for you.
There is of course the environmental cost. To that I want to say that everything has an environmental cost. I don’t necessarily deny AI is a water-hog, just that the way we go about it in capitalism, everything is contributing to climate change and droughts. Moreover to be honest I’ve never seen actual numbers and studies, everyone just says “generating this image emptied a whole bottle of water”. It’s just things people repeat idly like so many other things; and without facts, we cannot find truth.
Therefore the problem is not so much with AI but with the mode of production, as expected.
Nowadays it’s possible to run models on consumer hardware that doesn’t need to cost 10,000 dollars (though you might have seen that post of the 2000$ rig that can run the full deepseek model). Deepseek itself is very efficient, and there are even more efficient models being made to the point that soon it will be more costly (and resource-intensive) to meter API usage than give it out for free.
I think the place you have as a user is finding where AI can help you individually. People also like to say AI fries your brain, that it incentivizes you to shut your brain off and just accept the output. I think that’s a mistake, and it’s up to you not to do that. I’ve learned a lot about how linux works, how to manage a VPS, and how to work on mediawiki with AI help. Just like you should eat your vegetables and not so many sweets, you should be able to say “this is wrong for me” and stop yourself from doing it.
If you’re a professional coder and work better with handwritten code, then continue with that! When it comes to students relying on AI for everything, then schools need to find other methods. Right now they’re going backwards to doing pen and paper tests. Maybe we should rethink the entire testing method? When I was in school, years before AI, my schoolmates and I already could tell that rote memorization was torture and a 19th century way of teaching. I think AI is just the nail in the coffin for a very, very outdated method of teaching. Why do kids use AI to do their homework for them? That is a much more important question than how are they using AI.
As a designer I’ve used AI to help get me started on some projects, because this is my weakness. Once I get the ball rolling it becomes very easy for me, but getting it moving in the first place is the hard part. If you’re able to prompt it right (which is definitely something I lament, it feels like you have to say the right magic words and they don’t work), it can help with that, and then I can do my thing.
Personally part of my unwillingness to get into AI initially was from the evangelists who like to say literally every new tech thing is the future. Segways were the future, crypto was the future, VR was the future, NFTs were the future, google glasses were the future… They make money on saying these things so of course they have an incentive to say it. It still bothers me that they exist, if you were wondering (if they bother you too lol), but ultimately you have to ignore them and focus on your own thing.
Another part of it I think is how much mysticism there is around it, with companies and let’s say AI power users who are so unwilling to share their methods or how LLMs actually work. They retain information for themselves, or lead people to think this is magic and does everything.
Is AI coming for your job? Yes, probably. But burying our heads in the sand won’t help. I see a lot of translators talking about the soul of their art - everything has a soul and is art now (even saw a programmer call it that to explain why they don’t use AI in their work), we’ve gone full circle back to base idealism to “explain” how human work is different from AI work. AI already handles some translation work very well, and professionals are already losing work to it. Saying “refuse to use AI” is not materially sound, it is not going to save their client base. In socialism getting your job automated is desirable, but not in capitalism of course. But this is not new either, machines have replaced human workers for centuries now, as far back as the printing press to name just one. Yet nobody today is saying “return to scribing monks”.
I think it would be very useful to have an AI guide written for communists by communists. Something that everyone can understand, written from a proletarian perspective - not the philosophy of it but more like how the tech works, how to use it, etc. I can put it up on the ProleWiki essays space if someone wants to write it, we’ve put up guides before, e.g. if you want to see a nutrition and fitness guide written from a communist perspective.
I very much agree with all that. This is already a very useful tool, and it can save you a lot of time once you learn how to apply it effectively. As with any tool, it takes time to develop intuition for cases where it works well, and how to use it to get the results you want. I get the impression that a lot of people try using LLMs out of spite already having a bias that the tool is not useful, then they naturally fail to produce good results on the first try and declare it to be useless.
As you point out, it’s an excellent tool for learning to work with new languages, to discover tricks for system configuration, and so on. I’ve been doing software development for over 20 years now professionally, and I know some languages well and others not so much. With LLMs, I can basically use any language like an expert. For example, I recently had to work on a Js project, and I haven’t touched the language in years. I wasn’t familiar with the ecosystem, current best practices, or popular libraries. Using an LLM allowed me to get caught up on that very quickly.
I’m also not too worried about the loss of skill or thinking capacity because the really useful skills lie in understanding the problem you’re trying to solve conceptually and designing a solution that will solve it. High level architecture tends to be the really important skill, and I find that’s basically where the focus is working with agents. The LLM can focus on the nitty gritty aspects of writing the code, while I focus on the structure and the logic flow. One approach I’ve found very effective is to stub out the functions myself, and have the agent fill in the blanks for me. This helps focus the LLM and prevent it from going off into the weeds.
Another trick I found is that’s handy is to ask the agent to first write a plan for the solution. Then I can review the plan and tell the agent to adjust it as needed before implementing. Agents are also pretty good at writing tests, and tests are much easier to evaluate for correctness because good tests are just independent functions that do one thing and don’t have a deep call stack. My current approach is to get the LLM to write the plan, add tests, and then focus on making sure I understand the tests and that they pass. At that point I have a fairly high degree of confidence that the code is indeed doing what’s needed. The tests act as a contract for the agent to fill.
I suspect that programming languages might start shifting in the direction of contracts in general. I can see stuff like this becoming the norm, where you simply specify the signature for the function. You could also specify parameters like computational complexity and memory usage. The agent could then try to figure out how to fill the contract you’ve defined. It would be akin to genetic algorithm approach where the agent could converge on a solution over time. If that’s the direction things will be moving in, then current skills could be akin to being able to write assembly by hand. Useful in some niche situations, but not necessary vast majority of the time.
Finally, it’s very helpful to structure things using small components components that can be tested independently and composed together to build bigger things. As long as the component functions in the intended way, I don’t necessarily care about the quality of the code internally. I can treat them as black boxes as long as they’re doing what’s expected. This is already the approach we take with libraries. We don’t audit every line of code in a library we include in a project. We just look at its surface level API.
Incidentally, I’m noticing that functional style seems to work really well here. Having an assembly line of pure functions naturally breaks up a problem into small building blocks that you can reason about in isolation. It’s kind of like putting Lego blocks together. The advantage over stuff like microservies here is that you don’t have to deal with the complexity of orchestration and communication between the services.
This is exactly how I use LLMs to code too, I’m good at laying out the steps to solving the problem, not so good a coder (I basically hand code html and css because it’s faster for me than using an LLM but I never learned JS and have never felt like learning it even before AI was a thing).
I also have it create constitutive components, e.g. for the reading mode on prolewiki I had it make it trigger on 0 press and apply a class to <html> which I then customize myself in the CSS file, then after that I had it make other functions to have a page progress bar or hoverline. The hoverline was actually an idea from an LLM, to keep track of which line you are on. Finally just recently I gave deepseek these three different functions and told it to refactor and optimize efficiency, and it did just that. It doesn’t do everything in one step yet but if you know even passably well what it’s capable of you can have it do it in several steps.
edit - and of course just asking the AI to answer questions about itself. “Write as a Midjourney prompt” for example. That’s why I think it would be important having a proletarian guide to AI, so that everyone could start somewhere because a lot of the knowledge is gatekept individually.
What do you use for agents? I downloaded agent0 and it runs but gets stuck on ‘checking memory’ every time. I’m not on a great rig to be running local models right now but apparently this is a problem several people are facing.
If you’ve just been using the web UI for DeepSeek, I highly recommend checking out using tools that let you run models on the actual codebase you’re working with. It’s a much better experience because the model has a lot more context to work with.
There are two broad categories of tools. One is REPL style interface where you start a chat in the terminal, and the agent manages all the code changes while you prompt it with what you want to do. You don’t have as much control here, but the agents tend to do a pretty good job of analyzing the codebase holistically. The two main ones to look at are Aider and plandex.
The other approach is editor integration as seen with Cursor. Here you’re doing most of the driving and high level planning, and then use the agent contextually to add code like writing individual functions. You have a lot more granular control over what the agent is doing this way. It’s worth noting that you also have a chat mode here as well, and you can get the agent to analyze the code, find things in the project, etc. I find this is another aspect that’s often under appreciated where you can use the LLM to find the relevant code you need to change. A couple of projects to look at are Continue and Roo-Code.
All these projects work with ollama locally, but I’ve found DeepSeek API access is pretty cheap and you do tend to get better results that way. Obviously, caveat is that you are sending code to their servers.
I’d like to know your opinion on https://opencode.ai/ and/or https://charm.land/ if you have tried them - FOSS competitors to tools like Claude code.
Oh I haven’t tried either, looks like they’re in aider/plandex style but with a bit more UI. I’m guessing in the end these projects are all pretty similar since ultimately it’s the model that really matters. These tools largely just manage MCP interaction and communication with the model.
Thanks I’ll take a look at the links! Lots of stuff to check out and try lol but that’s true of everything.
yeah it can be a bit overwhelming :)