Hacker News new | ask | show | jobs
by winterrx 770 days ago
> Professors are shifting away from syntax and emphasizing higher-level skills

As it should be.

1 comments

How so?

Programming IS syntax.

If you want higher-level /skills/ you need foundational skills.

If you want higher-level understanding, well that’s what pop sci is for.

> Programming IS syntax.

And writing a novel is spelling.

What I think he means is that when you program, you take terms that has specific meanings (in whatever abstract machine the compiler/interpreter embodies) and arrange them according to the rules in order to describe the steps of a solution so that the machine can solve it automatically. The syntax are not that actually important, you can compose new terms from basic terms and create a language that way. You abstract that way, expanding or reducing the vocabulary you have to work with, finding some specific relations between the term that facilitates describing (paradigms). Syntax is important because the machine only understand those specific terms arranged in those specific ways. It just that the set of problem it can solve is very large, the solutions more so, and your program is just only one element. Solving the problem is not programming, restricting it to what the machine can do is. And for that syntax is what you got, because that's what the machine accept.
The correct analogy here is grammar, not spelling.

Someone who hasn't mastered the written grammar of the language in which they wish to write a novel, is unlikely to produce anything someone else would want to read.

I would argue that spelling is a prerequisite for writing a novel.
Prerequisite, yes, but it is not the thing itself. Just because you can spell doesn't mean you can write a novel, or every Spelling Bee winner should become an award winning novelist. The meaning of the words, the structure of the novel, characterizations, etc. all matter as well, and are ultimately much more important than just spelling things correctly.

Defining programming as just syntax is nonsense. The SHOUTED IS (like we're on AOL again for some reason) places outsized emphasis on syntax. Either that it is "just syntax" as randomdata wrote or the majority of programming as the SHOUTED IS could also imply, makes no sense. Just creating a syntactically valid program is insufficient for creating a correct or useful program, just as correctly spelling a string of words is not enough to create a novel.

Hey, if we’re going with uncharitable readings I’ll give my own a go…

I challenge you to write me “correct and useful program” without syntax.

Be mindful, the natural language you use to communicate with llms also, brace yourself, has syntax.

https://en.m.wikipedia.org/wiki/Syntax

You ever gone a week without SyNtAx?

https://m.youtube.com/watch?v=X9FJiDFVoOo

> just as correctly spelling a string of words is not enough to create a novel.

I present to you finnegans wake. ;P

Challenge accepted

“This program, print the numbers from 1 to 10 in python”

In order to run my simple program just copy paste it into your LLM, of choice and execute it

Notice that the program does what it supposed to do it is deterministic unless you use something like gpt2 and it solves the problem that I aim to solve

We are in a New Age

Dictated but not read

Programming most definitely isn't syntax. When I visualize software solutions in my head, not a single bit of code is up there. Syntax is just a textual representation of concepts.
> When I visualize software solutions in my head, not a single bit of code is up there.

If you envision a mechanical solution without anything like a mill or lathe up there, do you consider yourself to be machining?

> Syntax is just a textual representation of concepts.

Mechanical parts are just the metal (or whatever material) representation of concepts. Does programming not refer to processes around taking those concepts and turning them into something 'tangible' of a certain variety?

It seems to me that programming is, in fact, just syntax (within some loose interpretation). As you call attention to, syntax doesn't mean much in a vacuum, but the bigger picture that includes thinking about concepts usually gets the "engineering" moniker.

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?

> 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.

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.

I’m not sure why you’re being downvoted. Among all CS students, when they are weak, the #1 problem I observe is a poor ability to “see” code down to the character. They literally do not notice mistakes. I’ve seen their ChatGPT histories, their questions are too vague. It’s two sides of the same coin.