Live data from Hacker News

AI is a front for consolidation of resources and power

chrbutler.com

411–420 of 467 posts

Re: AI is a front for consolidation of resources and power

#411

Earlier quoted context omitted.

It's just not true, it is not ready. Especially Claude, where if you check the forums everyone is complaining that it's gone stupid the last few months. Claude's code is all over the place, and if you can't see that and are putting it's code into production I pity your colleagues. Try stopping. Honestly, just try. Just use claude as a super search engine. Though right now ChatGPT is better. You won't see any drop in…

This is far too simplistic a viewpoint. First of all it depends what you're trying to do. Web dev? AI works pretty well. CPU design? Yeah good luck with that. Secondly it depends what you're using it for within web dev. One shot an entire app? I did that recently for a Chrome extension and while it got many things wrong that I had to learn and fix, it was still waaaaaay faster than doing it myself. Especially for sol…

I'd say it was pretty naunced. Use it, but don't vibe code. The crux of the issue is that unless you're still writing the code it's too hard to notice when Claude or Codex makes a mountain out of a mole hill, too easy to miss the subtle bugs, too easy to miss the easy abstractions which would have vastly simplified the code.

And I do web dev, the code is rubbish. It's actually got subtle problems, even though it fails less. It often munges together loads of old APIs or deprecated ways of doing things. God forbid you need to deal with something like react router or MUI as it will combine code from several different versions.

And yes, people are using these tools to directly put code in. I see devs DOING it. The code sucks.

Vibe coded PRs are a huge timesink that OTHER people end up fixing.

One guy let it run and it changed code in an entirely unrelated part of the system and he didn't even notice. Worse, when scanning the PR it looked reasonable, until I went to fix a 350 line service Claude or codex had puked out that could be rewritten in 20 lines, and realized the code files were in an entirely different search system.

They're also generally both terrible at abstracting code. So you end up with tons of code that does sweet FA over and over. And the constant over engineering and exception handling theatre it does makes it look like it's written a lot of code when it's basically turned what should be a 5 liner into an essay.

Ugh. This is like coding in the FactoryFactoryFactory days all over again.

Re: AI is a front for consolidation of resources and power

#412

Earlier quoted context omitted.

Not to come down on either side, but I am begging commenters to refrain from using a Eurocentric lens when discussing a technology that wasn't even invented in Europe.

History of non-european printing press development: cool! Summary of above: cool and useful! Example based on the above: cool and insightful! Slamming someone for using a european example because that's what they know: not cool, not insightful, not useful.

I don't know the history. That would be the source of my discontent. Every time things like this come up, the hyperfocus on Western experience erases whatever insight could have been gained by looking at the topic in its totality. My guess is that whatever dynamic the history of the printing press in the East might have lent to this conversation wasn't even considered until I brought it up. That was my contribution.

Please don't take out your embarrassment on me.

Re: AI is a front for consolidation of resources and power

#413
post #409

Earlier quoted context omitted.

To draft a spec like this, it would take more time and the same or more knowledge than to just write the code. And you still won’t have reliable results, without doing another lengthy pass to correct the generated code. I can create a pseudocode because I know the relevant paradigm as well as how to design software. There’s no way you can have a novice draft pseudo-code like this because they can’t abstract well and…

I don't agree that it would take more time. Drafting detailed requirements like that to feed into coding agents is a big part of how I work nowadays, and the difference is night and day. I certainly didn't spend as much time typing that function description as I would have spent writing a functional version of it in any given language. Collaborating with AI also speeds this up a lot. For example, it's much faster to…

I don't have access to the grok sample you've shared (service not available in my region)

Reading the documentation is mostly for gotchas and understanding the subsystem you're going to incorporate in your software. You can not design something that will use GTK or sndio without understanding the core concepts of those technologies. And if you know the concepts, then I will say it's easier and faster to write the code than to write such specs.

As for finding samples, it's easy on the web. Especially with GitHub search. But these days, I often take a look at the source code of the library itself, because I often got questions that the documentation don't have the answer for. It's not about what the code I wrote may do (which is trivial to know) but what it cannot do at all.

Re: AI is a front for consolidation of resources and power

#414

Earlier quoted context omitted.

I'm about as cynical as they come, but it has to be said that something like 99.9999% of all fundamental technologies are completely public at this point. Humans in the ancient past were unlikely to be that dramatically different in terms of present humans in terms of intellectual ability, but were held back by a lack of knowledge. For instance, we still use steel - and for 99% of humanity's existence nobody knew how…

- 99.9999% Wow! That's a great many indeed. Can you just name 1 though? Just 1? Let's start with fire, certainly making and controlling fire is a skill that uses knowledge, a "technology". Go from there, try to find one technology that did not find itself in the service of power, for consolidating resources, etc.. Don't get me wrong, I think might, both intellectual and physical, should serve the purposes of benevole…

I was going to say, "furry porn," but then I realized that you're essentially just looking at the modern version of a pagan animal worship cult (of personality?) with some of those artists. You'd be surprised what gooners would do to appease their favorite werewolf coitus provider.

...PBS? Sesame Street has only ever been a boon to the common kid.

Re: AI is a front for consolidation of resources and power

#415
post #409

Earlier quoted context omitted.

I don't agree that it would take more time. Drafting detailed requirements like that to feed into coding agents is a big part of how I work nowadays, and the difference is night and day. I certainly didn't spend as much time typing that function description as I would have spent writing a functional version of it in any given language. Collaborating with AI also speeds this up a lot. For example, it's much faster to…

I don't have access to the grok sample you've shared (service not available in my region) Reading the documentation is mostly for gotchas and understanding the subsystem you're going to incorporate in your software. You can not design something that will use GTK or sndio without understanding the core concepts of those technologies. And if you know the concepts, then I will say it's easier and faster to write the cod…

Ah, weird, that's good to know. Well here's the code:

    import { env } from './env';
    import { v4 as uuidv4 } from 'uuid';
    import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
    import sharp from 'sharp';

    async function retry(fn: () => Promise, maxAttempts: number): Promise {
      let attempt = 1;
      while (true) {
        try {
          return await fn();
        } catch (error) {
          if (attempt >= maxAttempts) {
            throw error;
          }
          const delayMs = Math.pow(2, attempt - 1) * 100;
          await new Promise((resolve) => setTimeout(resolve, delayMs));
          attempt++;
        }
      }
    }

    export async function processAndUploadImage(s3: S3Client, imageData: Uint8Array): Promise {
      let metadata;
      try {
        metadata = await sharp(imageData).metadata();
      } catch {
        throw new Error('Invalid image');
      }

      if (metadata.format !== 'png') {
        throw new Error('Not a PNG image');
      }

      if (!metadata.width || !metadata.height || metadata.width !== metadata.height || metadata.width = 100x100');
      }

      const resizedBuffer = await sharp(imageData).resize(100, 100).toBuffer();

      const key = `${uuidv4()}.png`;

      const command = new PutObjectCommand({
        Bucket: env.IMAGE_BUCKET,
        Key: key,
        Body: resizedBuffer,
        ContentType: 'image/png',
      });

      await retry(async () => {
        await s3.send(command);
      }, 100);

      return key;
    }
The prompting was the same as above, with the stipulations that it use TypeScript, import `env` from `./env`, and take the S3 client as the first function argument.

You still need reference information of some sort in order to use any API for the first time. Knowing common Node.js AWS SDK functions offhand might not be unusual, but that's just one example. I often review source code of libraries before using them as well, which isn't in any way contradictory with involving AI in the development process.

From my perspective, using AI is just like having a bunch of interns on speed at my beck and call 24/7 who don't mind being micromanaged. Maybe I'd prefer the end result of building the thing 100% solo if I had an infinite amount of time to do so, but given that time is scarce, vastly expanding the resources available to me in exchange for relinquishing some control over low-priority details is a fair trade. I'd rather deliver a better product with some quirks under the hood than let my (fast, but still human) coding speed be the bottleneck on what gets built. The AI may not write every last detail exactly the way I would, but neither do other humans.

Re: AI is a front for consolidation of resources and power

#416
Scaling laws are irrefutable. There is no doubt that computers will be able to learn more than any humans, after all we're not outgrowing our skulls. The last mile is just tweaking how we define optimality and providing integration points. Everyone investing in this knows this at some level.

What's happening now is already pretty incredible given the understanding that we're basically still at the 'chat bot' stage for most people. The idea of agency is still very, very recent, but it's understandable that most people (particularly non SDs) are not impressed.

It's easy to look at the present and be cynical. If it is only able to solve your problem 95% of the time, you still can't trust it. I think the bets are really about how far we are from 99%, even for random stuff. The fact that a chatbot that was never explicitly trained to, just by predicting next probable tokens is wild. The pace of improvement in the past 5 years has been dizzying.

I'm not out here trying to put a dollar amount on it. But certainly, there is going to be a lot of money to be made. Of course it's a front for money and power. But like... isn't that the point of a corporation?

Re: AI is a front for consolidation of resources and power

#417
post #415

Earlier quoted context omitted.

I don't have access to the grok sample you've shared (service not available in my region) Reading the documentation is mostly for gotchas and understanding the subsystem you're going to incorporate in your software. You can not design something that will use GTK or sndio without understanding the core concepts of those technologies. And if you know the concepts, then I will say it's easier and faster to write the cod…

Ah, weird, that's good to know. Well here's the code: import { env } from './env'; import { v4 as uuidv4 } from 'uuid'; import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'; import sharp from 'sharp'; async function retry (fn: () => Promise , maxAttempts: number): Promise { let attempt = 1; while (true) { try { return await fn(); } catch (error) { if (attempt >= maxAttempts) { throw error; } const delayMs…

As I’m saying, for pure samples and pseudo code demo, it can be fast enough. But why bring in the whole s3 library if you’re going to use one single endpoint? I’ve checked npmjs and sharp is still in beta mode (if they’re using semver). Also, the code is parsing the imagedata twice.

I’m not saying that I write flawless code, but I’m more for less feature and better code. I’ve battled code where people would add big libraries just to not write ten lines of code. And then can’t reason when a snippet fails because it’s unreliable code into unreliable code. And then after a few months, you got zombie code in the project. And the same thing implemented multiple times in a slightly different way each time. These are pitfalls that occur when you don’t have an holistic view of the project.

I’ve never found coding speed to be an issue. The only time when my coding is slow is when I’m rewriting some legacy code and pausing every two lines to decipher the intent with no documentation.

But I do use advanced editing tools. Coding speed is very much not a bottleneck in Emacs. And I had a somewhat similar config for Vim. Things like quick access to docs, quick navigation (thing like running a lint program and then navigating directly to each error), quick commit, quick blaming and time traveling through the code history,…

Re: AI is a front for consolidation of resources and power

#418
post #415

Earlier quoted context omitted.

Ah, weird, that's good to know. Well here's the code: import { env } from './env'; import { v4 as uuidv4 } from 'uuid'; import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3'; import sharp from 'sharp'; async function retry (fn: () => Promise , maxAttempts: number): Promise { let attempt = 1; while (true) { try { return await fn(); } catch (error) { if (attempt >= maxAttempts) { throw error; } const delayMs…

As I’m saying, for pure samples and pseudo code demo, it can be fast enough. But why bring in the whole s3 library if you’re going to use one single endpoint? I’ve checked npmjs and sharp is still in beta mode (if they’re using semver). Also, the code is parsing the imagedata twice. I’m not saying that I write flawless code, but I’m more for less feature and better code. I’ve battled code where people would add big l…

> But why bring in the whole s3 library if you’re going to use one single endpoint?

This is a bit of a reach. There's no reason to assume that the entire project would only be using one endpoint, or that AI would have any trouble coding against the REST API instead if instructed to. Using the official SDK is a safe default in the absence of a specific reason or instruction not to.

Either way, we're already past the point of demonstrating that AI is perfectly capable of writing correct pseudocode based on my description.

> Coding speed is very much not a bottleneck in Emacs.

Of course it is. No editor is going to make your mind and fingers fast enough to emit an arbitrarily large amount of useful code in 0 seconds, and any time you spend writing code is time you're not spending on other things. Working with AI can be a lot harder because the AI is doing the easy parts while you're multitasking on all the things it can't do, but in exchange you can be a lot more productive.

Of course you still need to have enough participation in the process to be able to maintain ownership of the task and be confident in what you're committing. If you don't have a holistic view of the project and just YOLO AI-generated code that you've never looked at into production, you're probably going to have a bad time, but I would say the same thing about intern-generated code.

> I’m more for less feature and better code.

Well that's part of the issue I'm raising. If you're at the point of pushing back on business requirements in the interest of code quality, that's just another way of saying that coding speed is a bottleneck. Using AI doesn't only help with rapidly pumping out more features; it's an extremely useful tool for fixing bugs at a faster pace.

Re: AI is a front for consolidation of resources and power

#419

Earlier quoted context omitted.

This is kind of a myopic view of what it means to be a programmer. If you're just in it to collect a salary, then yeah, maybe you do benefit from delivering the minimum possible productivity that won't get you fired. But if you like making computers do things, and you get joy from making computers do more and new things, then LLMs that can write programs are a fantastic gift.

> But if you like making computers do things, and you get joy from making computers do more and new things, then LLMs that can write programs are a fantastic gift. Maybe currently if you enjoy social engineering an LLM more than writing stuff yourself. Feels a bit like saying "if you like running, you'll love cars!" In the future when the whole process is automated you won't be needed to make the computer do stuff, s…

Some people like running, and some people like traveling. Running is a fine hobby, but I'm still glad that planes exist.

Maybe some future version of agentic tooling will decimate software engineering as a career path, but that's just another way of saying that everyone and their grandmother would suddenly have the ability to launch a tech startup. Having gone through fundraising in the past, I'd personally prefer to live in a world where anyone with a good idea could get access to the equivalent of a full dev team without raising a dime.

Re: AI is a front for consolidation of resources and power

#420
post #418

Earlier quoted context omitted.

As I’m saying, for pure samples and pseudo code demo, it can be fast enough. But why bring in the whole s3 library if you’re going to use one single endpoint? I’ve checked npmjs and sharp is still in beta mode (if they’re using semver). Also, the code is parsing the imagedata twice. I’m not saying that I write flawless code, but I’m more for less feature and better code. I’ve battled code where people would add big l…

> But why bring in the whole s3 library if you’re going to use one single endpoint? This is a bit of a reach. There's no reason to assume that the entire project would only be using one endpoint, or that AI would have any trouble coding against the REST API instead if instructed to. Using the official SDK is a safe default in the absence of a specific reason or instruction not to. Either way, we're already past the p…

Just to conclude the thread on my side.

IMO, useful code is code in production (or if it’s for myself, something I can run reliably). Anything else is experimentation. If you’re working in a team, code shared with others are proposal/demo level.

Experimentation is nice for learning purpose. Kinda like scratch notes and manuscripts in the writing process. But then, it’s the editing phase when you’re stamping out bugs, with tools like static analysis, automated testing, and manual qa. The whole goal is to have the feature in the hand of the users. Then there’s the errata phase for errors that have slipped trough.

But the thing is code is just a static representation of a very dynamic medium, the process. And a process have a lot of layers. The code is usually a small part of the whole. For the whole thing to be consistent, parts need to be consistent with each other, and that’s when contract cames into place.The thing with generated AI code is that they don’t respect contracts. Because of their nature (non deterministic) and the fact that the code (which is the most faithful representation of the contracts can be contradictory (which leads to bugs).

It’s very easy to write optimistic code. But as the contracts (or constraints) in the system grew in number, they can be tricky to balance. The rescourse is always to go up a level in abstraction. Make the subsystems blackboxes and consider only their interactions. This assumes that the subsystems are consistent in themselves.

Code is not the lowest level of abstraction, but it’s often correct to assume that the language itself is consistent. Then it’s the libraries and the quality varies. Then it’s the framework and often it’s all good until it’s not. Then it’s your code and that’s very much a mistery.

All of this to say that writing code is the same as writing words on a manuscript to produce a book. It’s useful but only if it’s part of the final product or help in creating it. Especially if it’s not increasing the technical debt exponentially.

I don’t work with AI tools because by the time I’m ok with the result, more time have been spent than if I’ve done the thing without. And the process is not even enjoyable.

Post reply on HN