Hacker News new | ask | show | jobs
by tobiasSoftware 1186 days ago
I don't see programming going away for this reason. Think about it, if you have to carefully describe what you want to do to an AI - you are just writing a program. Only a program is deterministic and will do what you tell it to, whereas an AI may or may not.

The future that I see, coding and AI are divided into two camps. The one is what we would call "script kiddies" today - people who don't understand how to write software, but know enough to ask the right questions and bodge what they get together into something that mostly works. The other camp would be programmers who are similar to programmers today, but use AI to write boilerplate for them, as well as replace Stack Overflow.

3 comments

I'm already at the point where I get frustrated when GPT writes some incorrect code - despite it saving me enormous amounts of time. The appetite for productivity seems to be insatiable. I want to be able to create a million lines of code per month by myself.
> I want to be able to create a million lines of code per month by myself.

That sounds terrible. Who is going to read all that code when you need to understand and modify it? The LLMs, I guess?

I'd much rather be able to write 10,000 lines of code that can do what your million lines of code does. Better programming languages, libraries, and other abstractions are what we need.

>> I'd much rather be able to write 10,000 lines of code that can do what your million lines of code does.

Sure, who wouldn't. Unfortunately this is my hypothetical and I get to control what I mean by it. The million lines of code in my hypothetical is good quality, maintainable with reasonable density.

>> Better programming languages, libraries, and other abstractions are what we need.

In the entire history of languages, we've only managed about a 10X improvement via these mechanisms (that is being charitable probably). Several important things are still written in C which would mostly be recognizable to a programmer from 40 years ago. There are still problems to solve but I feel we are on the asymptotic section of the curve in this regard.

So relatable! I find myself getting irritated when it gets stuck on something and I have to intervene, yet it helps absolutely shred LOCs in some other cases.
"If we wish to count lines of code, we should not regard them as lines produced but as lines spent." — Dijkstra
I think these days, LOC is a reasonable metric for a peer-reviewed code base. It is unlikely that the lines of code in a given project can be reduced by 10X in a maintainable way. Can we easily reduce the LOC in the Linux kernel or Postgres by 10X for example? It seems unlikely.

LOC is a fuzzy proxy for the amount information in a code base. It should never be used for any kind of productivity metric however since that is obviously dumb and easily gameable (win by writing terrible code). Of course most productivity metrics are fall into the dumb/gameable category so lets not use them.

Between GPT-3 and GPT-4 the precision required for prompts was decreased significantly. In theory it should reach the point where a project manager type person would be able to describe what is needed and it would simply do it, the main thing missing from attaining that is that GPT-4 basically never responds to questions with requests for clarification, otherwise, a whole team of developers could be reduced to just one proofreader.
That’s not very impressive. With very little precision I can throw a few keywords into google and get a full answer and perhaps some code snippets from stack overflow to solve whatever problem I have in the moment.

Except you can’t just blindly copy code snippets, you have to read the author’s explanation and perhaps adapt things to your own code sometimes, or reject their solution entirely. GPT-4 can’t do this because it doesn’t actually know what the hell it’s doing, it’s just putting stuff together in a form that is most probably correct based on what it has seen in training data for past examples.

I fear for the layman who sees a bunch of AI generated code and think it must be right. Who knows what bugs, security flaws, or performance issues they will run into, that they have no idea how to solve or even to begin asking a prompt for.

> That’s not very impressive.

That’s kind of impressive.

I usually have zero luck with stack overflow except for super trivial things.

Some of the stuff I’ve done has no documentation and I had to find an example (like one other person in the entire history of mankind though this was a good idea) on some random repo on GitHub. Or I’m implementing code from a paper written 30 or 40 years ago and there’s no example code to look at. I could ask on stack overflow but who needs that abuse?

Admittedly I just do this to amuse myself and think that having a LLM digest a paper and spit out code is the bee’s knees.

> Admittedly I just do this to amuse myself and think that having a LLM digest a paper and spit out code is the bee’s knees.

This is what I have been doing also. Verification/Implementation of Software Engineering papers will be juicy especially with image ingestion.

You must not have used GPT very much based on this response. It is pretty great.
The thing that makes ChatGPT (especially 4) great though is that everything is hyper customized to you and, given a little prompt context (which is pretty trivial to automate and will be built right in to our tools one way or another), it can produce working code that fits your exact needs extremely rapidly.

e.g., if I type into google, "Build me a React component todo list that loads its data using fetch() to /api/v1/todos and is styled with Tailwind", I'm going to get a bunch of stuff that I can maybe use, if I invest 15 minutes wading through cancer-inducing blogs. Whereas at least for trivial problems, ChatGPT just tesseracts something that's extremely close and you copy-paste it in, change a few things, boom, component done. Something doesn't work? Often a follow up message fixes it.

The problem is the unfounded assumption that the code will be shitty 10 years from now. You really want to make that bet given the extreme velocity of recent progress? My expectation is that the code will actually be good.