Earlier quoted context omitted.
My question is why use AI to output javascript or python? Why not output everything in C and ASM for 500x performance? Why use high level languages meant to be easier for humans? Why not go right to the metal? If anyone's ever tried this, it's clear why: AI is terrible at C and ASM. But that cuts into what AI is at its core: It's not actual programming, it's mechanical reproduction. Which means its incapabilities in…
Isn't it also because LLMs are trained on existing software, and the programs we would write in Python or JS have few examples in C ?
My article on why AI is great (or terrible) or how to use it
151–160 of 241 posts
Re: My article on why AI is great (or terrible) or how to use it
#152The author presents a false dichotomy when discussing "Why Not AI". ... there are some serious costs and reasonable reservations to AI development. Let's start by listing those concerns These are super-valid concerns. They're also concerns that I suspect came around when we developed compilers and people stopped writing assembly by hand, instead trusting programs like gcc ... Compilers are deterministic , making thei…
People keep saying this like it is an absolute fact, whereas in reality it is a scale.
Compilers are more deterministic than LLMs in general, but no they are not completely deterministic. That's why making reproducible builds is hard!
https://stackoverflow.com/questions/52974259/what-are-some-e... and https://github.com/mgrang/non-determinism give some good examples of this.
This leads to the point: in general do we care about this non-determinism?
Most of the time, no we don't.
Once you accept that the next stage is accepting that most of the time the non-deterministic output of an LLM is good enough!
This leads to how do I verify it is good enough which leads to testing and then suddenly you have a working agentic loop....
Re: My article on why AI is great (or terrible) or how to use it
#153I will never as long as I live understand the argument that AI development is more fun. If you want to argue that you’re more capable or whatever, fine. I disagree but I don’t have any data to disprove you. But saying that AI development is more fun because you don’t have to “wrestle the computer” is, to me, the same as saying you’re really into painting but you’re not really into the brush aspect so you pay someone…
I've coded professionally for 30 years (ergh!). I'm ok at it.
But I love building things with AI. I haven't had this much fun since the early 2000s.
Re: My article on why AI is great (or terrible) or how to use it
#154Earlier quoted context omitted.
I think you're looking at it from the wrong angle. Wrestling the computer is stuff like figuring out how to recite the right incantation so Gradle will do a multi-platform fat bundle, and then migrate to the next major Gradle version. Unless you have a very specific set of kinks, tasks like these will make you want to quit your career in computers and pick up trash on the highway instead. You very likely have some of…
The hard part of software engineering, and indeed many other pursuits, is working out what it is you actually need to happen and articulating that clearly enough for another entity to follow your instructions. Using English, with all its inherent ambiguity, to attempt to communicate with an alien (charitably) mind very much does /not/ make this task any easier if the thing you need to accomplish is of any complexity…
This just isn't the case.
English can communicate very simply a set of "if.. then.." statements and an LLM can convert them to whatever stupid config language with I'm dealing with today.
I just don't care if Cloudflare's wrangler.toml uses emojis to express cases or AWS's Cloudformation required some Shakespearean sonnet to express the dependencies in whatever the format of the day is.
Or don't get me started on trying to work out which Pulami Google module I'm supposed to use for this service. Ergh.
I can express very clearly what I want, let a LLM translate it then inspect the config and go "oh that's how you do that".
It's great, and is radically easier than working through some docs written by a person who knows what they are doing and assumed you do too.
Re: My article on why AI is great (or terrible) or how to use it
#155Re: My article on why AI is great (or terrible) or how to use it
#156The author presents a false dichotomy when discussing "Why Not AI". ... there are some serious costs and reasonable reservations to AI development. Let's start by listing those concerns These are super-valid concerns. They're also concerns that I suspect came around when we developed compilers and people stopped writing assembly by hand, instead trusting programs like gcc ... Compilers are deterministic , making thei…
This is true (to an extent), but the generated LLM code is also verifiable. We use automated tests to do it.
Re: My article on why AI is great (or terrible) or how to use it
#157The author presents a false dichotomy when discussing "Why Not AI". ... there are some serious costs and reasonable reservations to AI development. Let's start by listing those concerns These are super-valid concerns. They're also concerns that I suspect came around when we developed compilers and people stopped writing assembly by hand, instead trusting programs like gcc ... Compilers are deterministic , making thei…
>> Compilers are deterministic, making their generated assembly code verifiable This is true (to an extent), but the generated LLM code is also verifiable. We use automated tests to do it.
A compiler offers absolute guarantees that what you write is semantically preserved, barring bugs in the compiler itself. An llm provides zero guarantees even with zero bugs in the llm's code.
Re: My article on why AI is great (or terrible) or how to use it
#158None of these articles address how we'll go from novice to expert, as either self-taught or through the educational system, and all the bloggers got their proverbial "10k hours" before LLMs were a thing. IMO This isn't abstractions, the risk is wholesale outsourcing of learning. And no, I don't accept the argument that correct and LLMs errors is the same as correcting a junior devs errors because the junior dev would…
But the technology does exist. The proof is in the models you can use today, on two lines:
First, what you describe is exactly what the labs are doing. We went from "oh, look, it writes poems and if you ask for code it almost looks like python" 3 years ago. Since then, the models can handle most programming tasks, with increasing difficulty and increasing accuracy. What seemed SF 3 years ago is literally at your fingertips today. Project scaffolding, searching through codebases, bug finding, bug solving, refactorings, code review. All of these are possible today. And it all became possible because the labs used the "signals" from usage + data from subsidising models + RL + arch improvements to "teach" the models more and more. So if you zoom out, the models are "learning", even if you or I can't teach them in the sense you meant.
Secondly, when capabilities become sufficiently advanced, you can do it locally, for your own project, with your own "teachings". With things like skills, you can literally teach the models what to do on your code base. And they'll use that information in subsequent tasks. You can even use the models themselves for this! A flow that I use regularly is "session retro", where I ask the model to "condense the learnings of this session into a skill". And then those skills get invoked on the next task dealing with the same problem. So the model doesn't have to scour the entire code base to figure out where auth lives, or how we handle migrations, and so on. This is possible today!
Re: My article on why AI is great (or terrible) or how to use it
#159The author presents a false dichotomy when discussing "Why Not AI". ... there are some serious costs and reasonable reservations to AI development. Let's start by listing those concerns These are super-valid concerns. They're also concerns that I suspect came around when we developed compilers and people stopped writing assembly by hand, instead trusting programs like gcc ... Compilers are deterministic , making thei…
I suspect the argument is that both AI and a compiler enables building software at a higher level of abstraction.
In most contexts you can abstract the earth as a sphere and it works fine ex:aligning solar panels etc. Until you enter the realm of precision where treating the earth as a sphere utterly fails. There’s no realistic set of tests you can right where an unsupervised LLM’s output can be trusted to generate a complex system which works if it’s constantly being recreated. Actual compilers don’t have that issue.
Re: My article on why AI is great (or terrible) or how to use it
#160Earlier quoted context omitted.
I think you're looking at it from the wrong angle. Wrestling the computer is stuff like figuring out how to recite the right incantation so Gradle will do a multi-platform fat bundle, and then migrate to the next major Gradle version. Unless you have a very specific set of kinks, tasks like these will make you want to quit your career in computers and pick up trash on the highway instead. You very likely have some of…
Now we have to figure out how to recite the right incantation to Claude to get it to recite the right incantation to Gradle in an exchange redolent of "guess the verb" from old Adventure games. Best case if you get it wrong: nothing happens. Worst case: grue will eat you. Sanchez's Law of Abstraction applies. You haven't abstracted anything away , just added more shit to the pile.
This is not your average abstraction layer.