logoalt Hacker News

What my dad taught me about AI coding in the 90s

135 pointsby askmike08/24/202675 commentsview on HN

Comments

simonwyesterday at 1:54 PM

I'm not completely convinced by this comparison between blind chess and prompting LLMs.

In blind chess you get deterministic information about the state of the board: each mental update to your board model can be precise, and you have the full state at every point in time.

LLMs are notoriously non-deterministic, and even at temperature zero you still can't predict exactly where the weights will take you next.

I suppose you can get closer to deterministic if you adopt a prompting style where you almost dictate every line of code, but at that point the coding agent is more of a typing assistant.

The productivity benefits of coding agents unlock themselves when you figure out how to turn short prompts - "add tests that exercise the registration form and check the happy path and all failure states" - into larger changes.

If you're completely blind to the results of those you're going to end up with a system you don't 100% understand very quickly. In blind chess terms you'll no longer know the positions of every piece on the board.

show 5 replies
qbaneyesterday at 3:16 PM

I do not think the metaphor can go very far. Have blindfolded chess become the "productivity trend" that every one should learn it to enjoy chess? Have normal chess players been replaced because skilled players can do blindfolded?

show 1 reply
yipinwongyesterday at 2:45 PM

Analogies work at an abstraction, and gotta take the chess analogy at its face value, as deeper people go into what's different between the chess and real life (deterministic vs non-deministic), one is not getting the lesson the author is presenting.

Remember, analogy is not territory. Every analogies fail at some point

tikimcfeeyesterday at 2:30 PM

I really like this idea, because I think people forgetting that when you are writing code there exist a time T greater than zero, where you're not actually writing code and you're doing this thing called "thinking", ha ha. I find that there's a lot of times where I'm sitting staring at the screen and the lines of text sort of blur, and I'm in my head thinking about the connection of everything and not really worried about the actual implementation and how bites are moving, but wondering about the structure and the nature of the actual flow of the code. There's a wonderful XKCD about this, where a person sitting on a computer has this very beautiful stack of thoughts and clouds about what's being written, and then someone walks up to them and says something, and the entire cloud pops. If I understand this article, I think that's exactly a reasonable analogy to it. There is something that happens in the mind, and perhaps a neural weights, where the non-execution is where creativity and problem solving happening by mapping to the higher level concepts and stitching them together without having to specifically worry about the line level details. They still crop up, and implementation will probably always be king, But I do think I agree with this entirely!

yellow_leadyesterday at 3:04 PM

Is there anything new in this article? Yes, experts use AI better than non-experts for tasks in their domain. See LLMs reward expertise [1] and Terrance Taos conversation with LLM [2].

[1] https://www.seangoedecke.com/llms-reward-expertise/

[2] https://chatgpt.com/share/6a5fdc7a-d6f8-83e8-bbea-8deb42cfed...

show 1 reply
dzongayesterday at 6:15 PM

it's a Sunday - I don't have time to put things into buckets.

there's coding - writing code to do something could be a game, utility to move files around. what have you. inherently the nature is a closed domain. AI is perfect here - the impact if something goes wrong is close to 0 or null.

then there's software engineering - which is both an art & science. u r dealing with rules of thumb. nothing is ever coded / written down. but a feel to whether something feels right or not. the domain is unbounded. the impact of something going wrong is catastrophic in all dimensions. coding is a delivery mechanism for software engineering. but not the actual work. using A.I here is useless.

but we keep having these pieces - I guess that's just shallow the industry is.

lordnachoyesterday at 2:50 PM

I think I agree. I guess I don't know enough about chess to be sure, but the idea seems to be that although to novices a blindfolded player must reconstruct the board in his mind, that is not actually what is done by the expert.

That is something I can agree with, having spent a heck of a long time coding in the trading domain.

I've managed to vibe code a trading system. It's a hobby project directed on my phone on my commute, but it does do all the things I find important about trading systems. I can connect to external exchanges and see that I have sent valid orders, I get fills, and I can see debug logs of the timestamps. It doesn't allocate memory on the hot path, cores can be pinned, and so on. There are benchmarks that say how fast the code is parsing messages. It works.

So I've somehow built a thing that I've barely examined in the traditional sense, which nonetheless satisfies certain business needs for this hobby project.

How could that be? If you transported me back two years, I would know exactly where to make whatever changes you desired. I had the IDE open all the time, and I knew where things were. Now, I don't even know what the internal structure is like, I just know whether consideration has been made for some aspect of the system.

And I think this is what seems so baffling to a lot of people. How are software developers getting such different experiences with LLMs? Some people genuinely are producing things with incredible pace, while others find the AI just produces slop for them.

Some people are ready for the blindfold, but many are not. It's incredibly frustrating, especially if you are reasonably advanced but not yet at that overview stage.

show 1 reply
a2ff6eeb0yesterday at 3:19 PM

This makes no sense. The skills needed for AI coding are the same skills needed to hire Gary Kasparov to play chess.

Tell them where the game is and stand back as they play.

lowbloodsugartoday at 1:30 AM

I use AI every day and have unlimited budget. I will certainly not trust it to write safe, system level code for our systems. You absolutely do need to be playing blindfold chess and you can’t do that if the other actor doesn’t tell you the moves it made. Using LLMs as described here is essentially what vibe coding is all about. To use this chess analogy, the model says “checkmate!” and you just believe it because you never heard or looked at the moves it claimed to have made.

_diyaryesterday at 4:58 PM

The analogy can be dragged one step further: once the engine is good enough, it’s functionally impractical for a human to play.

show 1 reply
F7F7F7yesterday at 3:19 PM

This article reads like it was written by prompting AI for connections between two loosely connected things.

show 1 reply
TZubiriyesterday at 3:38 PM

Au contraire, playing blindfold is removing a tool, depending on nothing but your mind.

Vibe coding is the opposite, not just depending on the chessboard, but depending on a couple of Gflops to even think.

Blindfolded programming would be the programming we do in the shower

mikeaskew4yesterday at 3:00 PM

My dad just had a computer around and looked the other way when I spent all night on it. And I learned chess on my own.

This may not be the argument Mike makes here, I have always felt that seeing the board and not knowing what it means is more valuable than knowing everything about it without seeing it.

If you’re drowning, who do you want to save you, the lifeguard who can’t read or the author of the book on water lifesaving techniques who can’t swim?

mistrial9yesterday at 9:50 PM

William E. "Bill" Bates in Berkeley coded an entire "virtual cat" demo in the late-1990s on the MacOS using neural nets and learning.

source: eye-witness

dumbfounderyesterday at 2:14 PM

Meh. Chess exists to entertain the players. Coding exists to solve problems. I see way too often the programmers think it’s all about the coder and the code. Solve the problem. Don’t write code at all to do that if you can (AI generated or otherwise).

show 2 replies
paidxtoday at 1:25 AM

[flagged]

cryptolobstertoday at 1:31 AM

[flagged]

syou1024yesterday at 3:06 PM

[flagged]