| I can explain a bubble sort to anyone, but if they want to program one they’ll need a programming language. What distinguishes programming languages from: random text, spoken languages, or even other programming languages? Syntax. I hate that you define a function in python with: def func(): ; in clojure with: (defn func []; and Haskell with: func = ; just as much now as anyone starting to explore an interest in building with technology. I hate that to participate with the internet you need to know 3 programming languages: html, JavaScript, and css. (While completely ignoring the backend.) But it is that way because different people have different ideas of how to move these 0s and 1s around. Now perhaps one of these overly optimistic proselytizers of the llm teachers might say, “exactly, and we can use this tool to abstract that madness away.” Fine, but it’s something different than programming. I say that without any condescension of either party. What’s it matter if the desired goals are reached? I mean, except that these tools are a silicon fire created by stealing the worlds creative output, and owned by unethical sociopaths who are trying to sell it back to us. But when discussing education, this distinction is important to ensure programming is still taught in parallel to people who are only taught to use an llm. Have we reached the apex of programming? Do all we need is to just stochastically complete tokens of preexisting code? Or do we still have work to do in this field? Who’s going to do the programming if everyone in the discipline learned only how to avoid the programming? |
That's just tradeoffs. Perfomance of C vs easiness of python, flexibility of lisp vs (rigidity?) of Java.
> I hate that to participate with the internet you need to know 3 programming languages:
You only need one (see Gemini protocol), CSS is for getting it pretty and Javascript is for some interactivity. We can probably concoct something in lisp to have only one language (jk). I think it's better to teach HTML first with style and script tags and attributes.
> Now perhaps one of these overly optimistic proselytizers of the llm teachers might say, “exactly, and we can use this tool to abstract that madness away.”
There's no madness. There's only engineering and business tradeoffs. You learn the paradigms, you learn how they map to the Von Neumann/Turing|Lambda Calculus|... machines and you're set. Now what's left is learning the libraries for existing solutions and interactions with other systems.
I agree that programming is not "using llm". Programming can be llm assisted (utility varies), just like it can be IDE assissted, snippet assisted, books and SO assisted.
I don't believe we've reached the Apex of programming. Society evolves and we will have new problems to solve. We still have not finished solving existing one.