Settings

Theme

Don't be the out of touch Kung Fu master – John Carmack

twitter.com

62 points by dsubburam · 35 comments

Reader

14 threads
glimshe

We are going from the era of manual, line-by-line mental model transcription to one where software engineers can focus on data structures, software architecture and algorithms.

I love being able to quickly bring out the program that is already running in my head without having to worry about the grind of typing it into a format that the compiler understands. Dealing with API names. Syntax. Language quirks. Library gotchas. A sizeable portion of my successful career as a software engineer was spent on the tiresome process of interacting with a text editor/IDE to get a program to do what I wanted.

I was there when people were still coding assembly. A slow torture where the simplest things took forever to get right.

Once I've mentally solved the problem, the fun is mostly over for me. Pure vibe coding is dull and unsustainable with current technology for all but the simplest systems; AI-assisted coding, on the other hand, rekindled my passion for computers.

  • corv

    I like your constructive outlook and I want to believe that we can now focus on the bigger picture, but I'm not really seeing it around me. Most everyone I know that's "AI-pilled" has spent the newfound capacity on throughput instead of altitude.

    Is anyone actually seeing a shift towards improved structure rather than more code, faster? We seem to be living in the Gatling-gun version of the picture John Carmack drew when modernity also ushered into precision marksmanship...

    • enraged_camel

      >> Is anyone actually seeing a shift towards improved structure rather than more code, faster?

      Yes. At work we recently finished a complete rewrite of the platform. The old codebase got abandoned and two new codebases got stood up. Previous stack was Phoenix LiveView and the new one is Phoenix API + Vue /w TypeScript. Zero code shared between the two. We took the opportunity to re-architect a lot of the core functionality and get rid of the tech debt that had been hounding us and killing our velocity for the past six years.

      We finished the rewrite in two months. A little over 700k LoC total. 95% of it was planned, orchestrated and written by AI. We could have gotten it done faster, but we were well aware of the potential for slop and thus paid an absurd amount of attention to (and tokens for) code quality. For example, there is a 100% test coverage requirement in both server and client, combined with AI-driven review rules that say all tests must be non-vacuous, plus a ton of invariants enforced via deterministic checks. Everything from standard linting and formatting rules to AI-necessitated stuff like "comments cannot be more than five lines each" is in there. At the end of each week, we get together for ~30 minutes to review each bug that was fixed that week (there haven't been that many) and try to figure out if more deterministic checks can be added (or new ones extended) to prevent that class of bug from re-appearing. We actually have an Architecture epic with a dedicated Fable agent orchestrating all the initiatives and tickets in it and keeping track of improvements (and the occasional regression). So things like accessibility, usage of shared helpers, enforcement of common patterns, etc. are all kept track of.

      The difference between the old codebase and the two new ones has been night and day. The new codebases, combined, are ~35% larger than what we had before, and yet there are way fewer bugs (we actually got suspicious at first and had to check to make sure our logging instrumentation was configured correctly). Performance is also stellar, features have been a lot easier to add and extend, and everything is a lot easier to find. When someone asks a question or has an issue we have a pretty good idea of what part of the codebase to look in and we're usually right.

      It wasn't all unicorns and rainbows. Not everyone on the team was proficient with AI-driven development, so they had to be brought up to speed quickly and taught the tools and also what works and doesn't. Code reviews were also difficult and time-consuming. We had to deal with our anxieties about working in two new codebases none of us had authored much code in ourselves. What made all of it worse was that we were racing towards a deadline imposed by external factors so we all ended up working a lot of hours. It was essentially between getting it done this summer or waiting until next summer and we bit the bullet and did it. It absolutely would not have been possible without AI.

      • doctorpangloss

        > For example, there is a 100% test coverage requirement in both server and client, combined with AI-driven review rules that say all tests must be non-vacuous,

        look, your application works, right? so it doesn't really matter what you or i think, and this is why AI matters. but this, your "100% test coverage" - that is pure slop. just 20 years ago, all the most popular software shipped with NO tests. are you getting it?

        • socalgal2

          > just 20 years ago, all the most popular software shipped with NO tests

          not sure what you're point is here. It sounds similar to "we use to use blood letting and leeches and doctors didn't clean their hands and everything was fine so what are you getting at?"

          Good tests have real benefits. The fact that people shipped without them in the past in no way suggests they aren't needed or have no point.

        • fc417fc802

          And 80 years ago cars didn't have seatbelts. Your point?

        • enraged_camel

          >> but this, your "100% test coverage" - that is pure slop.

          Not really, but I can see why some people think that.

          We treat 100% test coverage as "required, but by itself not sufficient". It doesn't give us false confidence that everything will be perfect or anything like that. But it provides us with the discipline to make sure no corners are cut, and the bugs that are fixed don't come back.

          One refreshing aspect was that during PR reviews we stopped debating whether something needed test coverage. Instead we focused on what was being tested and how.

  • agentultra

    I’m the opposite. I don’t believe there is a royal road to understanding anything. For me, the process of programming involves frustration. That is usually when I find my greatest insights.

    Syntax isn’t a big deal. Names either. You can look them up. Remember them. Language gotchas are annoying and sometimes problematic.

    To me, our job is understanding problems. And for me, understanding the problem involves wrestling with the code. I learn much from modelling problems in code, building theories, testing them.

    Once an LLM system has generated some code I haven’t learned anything. Even when I read through the solution. It doesn't require the same activation of my brain. There’s nothing quite like working through the problem yourself.

    LLMs definitely feel like they are draining my passion for computers. There were plenty of folks who checked out or were never truly passionate about programming. Now they’re louder than ever. “Nobody cares about code,” and, “optimizing is a waste of time.” Now we don’t even want to understand how it works, or whether it works at all. They repeat the lines their master have told them: get on board or get left behind.

    I’m pretty sure I am risking getting, “left behind.” But I’m okay with that. The tech is truly the least interesting thing to me. If I don’t have a career in 10 years… oh well. I’ll still be programming.

  • skydhash

    Have you tried live programming (smalltalk, LISP)? Or a proper Edit-Compile-Run cycle with a good editor?

    A lot of people are bashing old practices, but from y standpoint, it always seems like a lack of proper (usage of) tooling to streamline the coding phase of building software.

    • glimshe

      Dear sir, I appreciate the help but, as I mentioned, I've been around since the Assembly days... Been there, done that. I currently have a crazy efficient Edit-Compile-Run setup and a great VSCode personal config, all of which were made a lot more crazy efficient with Codex.

tkel

Ironically, this post comes off as out of touch. The purpose of the various martial arts isn't just to win in a life-or-death brawl or murder people as efficiently as possible. Similarly, the point of programming isn't just to generate as much code as possible, or only to be more "productive".

xyzsparetimexyz

'Make sure you don't fall behind!!!' is my least favourite type of post about ai. There's resllt nothing to learn about ai. You're just typing and telling it what to do.

  • fooker

    This is like saying there's nothing to learn about programming, you're just telling a computer what to do. :)

    It's partly true, but where this logic gets stuck is software engineering, for both the cases.

    Just telling the AI what to do won't get you to good software, especially when you want to use dozens of agents working in parallel, when you have something correctness sensitive, when you want the AI to try and solve a research problem you have a hunch about but not a concrete solution.

  • acestus5

    the point of AI hype is to increase shareholder value.

sriram_malhar

Everyone who writes enthusiastically about AI already has the benefit of having worked without AI. They have been schooled in the basics. Enough of us know about data structures, concurrency, networks, language design etc. from the ground up that the knowledge is passed on. I worry about the world that we will be living in when a whole generation has skipped learning the basics the hard way. Given the attendance rates at various educational institutions, I fear that day is already here.

nickledave

> In 2022, he left Oculus to work on his AGI startup, Keen Technologies

https://en.wikipedia.org/wiki/John_Carmack

oh

justinator

"don’t be the out of touch Kung Fu master"

posts on Twitter

CamperBob2

https://xcancel.com/ID_AA_Carmack/status/2098443262214230095 for convenience

m3kw9

I don't think with the models we have, you shouldn't need to even write a single line of code. What you need is to prompt it right, check for over engineering, check for edge cases, test it very thoroughly. That means don't accept it writing 10,000 lines of code that you cannot review or test properly. Make modules small enough that can be reviewed/tested properly.

ianpenney

Why are we always at war?

  • tclancy

    Because someone profits from it. If your man had truly embraced Zen after, y’know, becoming wealthy enough to never need anything, it feels like freedom from want would have come pretty easy. Instead we have to find our examples in poor people after they die.

    This post brought to you by DraftKings. Reach Nirvana and its five bucks off your next bet on the Bardo!

  • nxobject

    It's funny, but to relax I was reading Tim Berners-Lee's FAQ for kids. He has a section about "I'm interested in Math -- what exciting stuff is there we don't do at school?". He quickly sketches out what ideas might get us to Maxwell's Equation, ironically enough. But, what a joy it is to see a person who believes in the public domain, and who we have everything to thank for right now, saying "The main thing is, to have fun."

    https://www.w3.org/People/Berners-Lee/Kids.html

cortesoft

I mean, there is still a place in the world for a Kung Fu master… it’s just not as someone trying to win in an anything goes combat competition.

If you think there are going to be as many jobs in the future for people writing all their code by hand, I hate to break it to you. However, there will still be some jobs, and fewer people who want to do it. It will still be a path for some people.

rramadass

Resubmission of I recently went through a translation of Musashi's Book of Five Rings - https://news.ycombinator.com/item?id=49660833 (1 comment)

vatsachak

Slop posting

cadamsdotcom

Yep. Having to type the code is a form of accidental complexity, and with it gone, you can focus more on the problem to solve, getting it down faster.

Of course it's possible for it to go off the rails. Consider that a wildly swung sword can do damage you can't do with your bare hands. To prevent this, constrain your model to the solution shape you want by grounding it; give it contact with reality; ways to run the code it's generating and refine it to meet your goals; granular tests; etc.

The new job is in how you wield the tools and it is at least as complex as the old.

RunSet

I understand why people value the code John Carmack has released but I do not understand why people value his public statements.

"eventually id Tech 5 is going to be open source also. This is still the law of the land at id"[0]

"Great! I think Microsoft has been a good parent company for gaming IPs"[1]

By sheer coincidence, John Carmack is peddling machine generated code.[2]

[0] https://web.archive.org/web/20081003111457/http://www.linuxg...

[1] https://x.com/ID_AA_Carmack/status/1308069857913720832

[2] https://80.lv/articles/john-carmack-s-agi-startup-keen-techn...

  • Insanity

    Don't throw the baby out with the bathwater. It makes more sense to read his 'public statements' and judge them individually rather than in aggregate. No one is correct all the time.

    As for this current post (just a tweet really, public statement sounds overly official), I think he's making sense. If you don't follow industry trends, you'll eventually be out of touch. Whether you're a senior software engineer or engineering manager, keeping current with the evolution of tech will make you better at your job. Today that happens to be related to following AI developments, but it applied equally to learning higher level programming languages in the 90s, or big data engineering practices in the 2010s.

  • the_interloper

    1st link is broken

  • tclancy

    I have a new theory as of this moment.

    Elon Musk, Paul Graham, Steve Yegge and now, sadly John Carmack. Your average hacker scoffs at the idea of religion or faith, but somehow is comfortable with complete unquestioning fealty to whichever person who did something interesting with technology in the past and made enough money to afford drugs you don’t get arrested for and then they started prophesying.

    Before you stone me, remember every prophet was downvoted in their own forum.

    • socalgal2

      I see it as those who learn to use AI effectively are seeing massive benefits. Those that haven't seen those benefits are still skeptical.

      Someone who's seen the benfits, knows, with proof, the benefits exist. They're like Copernicus who realized the plants go around the sun, not the earth. The others are still like those who look up, see the planets go around the sky, and can't believe the earth is not at the center. They then shout "you're lying, your crazy, burn the hertic!"

    • zulux

      The nice thing about religious faith is that most minds can hold only one at a time. I may believe in an oddly resurrected deity who took the shape of a man, but I don't have room for anything crazier.

      "We are fools for Christ's sake." 1 Corinthians 4:10

      • tclancy

        Sure, but it is that Christ, Buddha or any of the other incarnations of the same idea? I am right there with you, believe it or not, but don’t John 3:16 the wrong football game.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection