Remix.run Logo
googamooga 5 hours ago

I started my coding apprenticeship back in early 80s with a senior programmer who taught me to code in LSI-11 processor codes. I memorized the whole table of octal processor opcodes and learned how to compose them with data to write programs on PDP-11. I was able to understand what each exact 16-bit word in my program is doing. It was a great skill. But then the same guy taught me FORTRAN 83, and I suddenly understood that writing in opcodes is not exciting anymore, because you can be 10x more productive and suffer less. Now, many years and programming languages later, with my coding skills in LSI-11 opcodes totaly athrophied, I do not regret about loosing that skill at all.

I see no reason to regret that our skills in coding C++/Java/* will decline or athrophy at some point in time. This will mean that we just don't need them anymore.

bwestergard 4 hours ago | parent | next [-]

I think this is a false comparison, and I believe cognitive science will show this to be true over time.

"Now, many years and programming languages later, with my coding skills in LSI-11 opcodes totaly athrophied, I do not regret about loosing that skill at all."

But the cognitive capacities you developed reasoning about opcodes almost certainly made it easier for you to learn FORTRAN and its successors.

LSI-11 opcodes, FORTRAN 83, C++, the lambda calculus, etc are all formal languages that we can reason about logically. It's also the case that we can implement machines (hardware or virtual) that can in practice produce the results that match our logical deductions. This is generally what people mean when they say these languages are "deterministic".

It seems obvious to me that it is more cognitively demanding to reason about formal languages like these, to prove to oneself that a given change in the code will produces the outcomes you intend, than it is to prompt for changes in the code and review it.

ip26 4 hours ago | parent | prev | next [-]

One significant difference is that all programming languages, whether machine code or python, have always been a precise language for describing the desired computation or algorithm. Working with an AI agent means specifying what you want the program to do in English, which is not precise. Unless you write English pseudocode.

(Yes, I know the compiler does wild stuff behind the curtain, but unless you're using -Ofast, the assembly is black-box-equivalent to a naive compilation)

siva7 4 hours ago | parent | prev | next [-]

The difference between now and then is a grand skill shift (from logic to vibe) and also fear of being replaced by this technology which was never the case before at this scale. You and me, we don't have this fear but many colleagues fear this new tech and also those colleagues who seem to get along with it.

googamooga 4 hours ago | parent [-]

Yes, fully agree with you. Although, I read some stories that in early 60s a lot of people who used to program in opcodes (because there were no higher-level languages, even assemblers were quite new and "untested") were also struggling to accept new reality that was coming with Algol, Fortran, amd Cobol. But given that the absolute number of programmers in the world at that time was quite low nobody paid attention to their fears and pains.

To me, personally, this shift is really enabling and refreshing. I usually have lot's of ideas but did not neither time nor capacity to play with them. Some of them were just impossible to do as a team of one. Now everything is possible! :)

wrs 2 hours ago | parent | prev [-]

When you let the LLM do the programming, you’re a product manager, not a programmer.

googamooga an hour ago | parent [-]

When you let compiler generate code for you, you're not a real programmer... That's what opcode coders was ranting in early 60s about FORTRAN programmers.

Product managers can't produce viable programs ready to be deployed in production (yet). But maybe the will able to do it in the future. We don't know how far or close this future is. But I don't think it's not a bad idea in general.