I can't completely blame the language here: anyone "coding" in a language new to them using an LLM is going to have real problems.

It's funny the author says this was 90% written without AI, and that AI was mostly used for the json code. I think they're just new to C.

Trust me I love C. Probably over 90% of my lifetime code has been written in C. But python newbies don't get their web frameworks stack smashed. That's kind of nice.

> But python newbies don't get their web frameworks stack smashed. That's kind of nice.

Hah! True :-)

The thing is, smashed stacks are difficult to exploit deterministically or automatically. Even heartbleed, as widespread as it was, was not a guaranteed RCE.

OTOH, an exploit in a language like Python is almost certainly going to be easier to exploit deterministically. Log4j, for example, was a guaranteed exploit and the skill level required was basically "Create a Java object".

This is because of the ease with which even very junior programmers can create something that appears to run and work and not crash.

> The thing is, smashed stacks are difficult to exploit deterministically or automatically. Even heartbleed, as widespread as it was, was not a guaranteed RCE.

That’s like driving without a seatbelt - it’s not safe, but it would only matter on that very rare chance you have a crash. I would rather just wear a seatbelt!

It's a double-sided coin. LLMs are probably the best way to learn programming languages right now. But if you vibecode in a programming language that you don't understand, it's going to be a disaster sooner or later.

This is also the reason why AI will not replace any actual jobs with merit.

> LLMs are probably the best way to learn programming languages right now.

Books still exist, be they in print or electronic form.

Examples are the best documentation, and we now have a machine to produce infinite examples tailored specifically to any situation

> Examples are the best documentation ...

No they are not, as examples lack explanation of the concepts underlying a programming language's definition.

> ... and we now have a machine to produce infinite examples tailored specifically to any situation

This is like saying, "to learn X language, just read a bunch of source in GitHub repositories that use it."

What books written by authoritative people provide, such as language designers or recognized luminaries, is conveyance of key linguistic concepts and an explanation of "the why" they are important. This is the sole purvey of people.

Pending on the quality of the examples, of course.

I would claim that:

(interactive labs + quizzes) > Learning from books

Good online documentation > 5yr old tome on bookshelf

chat/search with ai > CTRL+F in a PDF manual

Most of what you claim as being better does not address how people can discover concepts of which they are previously aware. To wit:

  One cannot complete "labs + quizzes" unless they know
  how to answer same.

  One cannot "Ctrl-F in a PDF manual" unless they know
  what to search for.
As to online docs being better than a printed "5yr old tome on bookshelf", that depends on if the available online documentation subsumes the book. If it does, awesome, but if it doesn't, then there very likely are things to learn within reach of said bookshelf.

EDIT:

An exemplar to consider is how the Actor Model[0] can be used to define a FaaS[1]-based system. Without being aware of this paper, it is unrealistic to expect someone to be able to formulate LLM prompts incorporating concepts identified by same.

Side note: the Actor Model[0] paper is far older than a "5yr old tome" and is very much applicable to this day.

0 - https://dspace.mit.edu/bitstream/handle/1721.1/41962/AI_WP_1...

1 - https://en.wikipedia.org/wiki/Function_as_a_service

Interactive labs can do a great job of teaching skills, but they fell short of teaching understanding. And at some point, it’s faster to read a book to learn, because there’s a reduced need for practice.

Hypertext is better than printed book format, but if you’re just starting with something you need a guide that provides a coherent overview. Also most online documentation are just bad.

Why ctrl+f? You can still have a table of contents and an index with pdf. And the pdf formats support link. And I’d prefer filtering/querying over generation because the latter is always tainted by my prompt. If I type `man unknown_function`, I will get an error, not a generated manual page.