Yeah if you read further I mention the exceptions. Generally speaking though we don't do mathematical modeling. Basic Type checking is as far as we typically go.
>but most software, most of the time, does not bump into them much at all.
You bump into it on a daily basis. Tokens are limited by compute which is limited by physics. It can't be more obvious than it is with modern software how limited computation is by actual real world physics.
You really need to use it to see the light. It's like reading about programming and actually programming. You don't understand programming until you actually program.
You won't understand why elm is simple until you actually use elm to the point of internal understanding. I think doing this is much harder nowadays given that most people would likely use an LLM to do most of the coding.
>An engineer's model must be tightly bound to the laws of physics and chemistry.
Anything that exists in reality and is observable by definition is tightly bound by the laws of physics and chemistry. Software is too.
>Software is a lot like math,
Probably referring to computer science. Computer science is neither about computers nor is it a science. It is a math. Software is like math but applied.
>The only limitation is the imagination of the creator of the virtual world (and perhaps the pesky limitations of computer resources)
computer resources: AKA physical laws. And these "laws" highly limit us in what we can do. We are definetely not operating in some kind of playground where we can be virtual gods, not even close, that's why entire swe teams are involved and paid a lot in software.
Honestly the main difference between "Software Engineering" and "Engineering" is that software is more an "art". We make up a bunch of technical nomenclature for it (like design patterns which sounds technical but is mostly made up and more artsy then say statistical mechanics) but it's mostly similar to sculpture or some artistic creation as we sort of piece everything together by instinct.
The difference between this and engineering is usually engineering involves mathematical modeling and testing heavily in development, while software engineering (usually) does not involve mathematical modeling and software testing is more of a catch-all to find bugs.
Type checking is mathematical modeling, but I wouldn't call it the core of software engineering. I guess this is where the categories get blurry.
>(probably not an LLM, that'd produce better results)
The last 3 years was a paradigm shift. How do you know if a comment was generated by AI? If it's written Better than a human comment... if it's too good.
You are wrong again in every possible count. Since you think in terms of algebra think like this: there is context SP which is context window shared between all sessions, that is called the system prompt. Then there is the context window called memory M which is shared between all sessions under a user and then finally there context CW (current window) which is the context comprised of the queries from the current chat session. Total context = SP + CW + M.
M is the context window that doesn’t require retraining that allows the LLM to “learn” in the same way humans do. This is the usual set up. But nothing prevents someone from adding a GM (general memory) shared between all users. Under this set up the LLM and harness fits and is virtually identical to how humans learn at a high level.
But this is besides the point because even if none of this was done. Just a context window or just training is in itself a form of learning. There was no action taken in your algebraic example where learning did not occur.
this is profoundly false. AI not only can learn, it is built entirely from learning. The field is called machine learning after all.
Not only that... AI is NOT only learning during the training phase... LLMs learn in real time the minute you talk to it. It learns something and saves those learnings in a context window or somewhere else if you want it to exist beyond the context window.
All of the above runs on static hardware. Don't understand how someone can say a profoundly wrong statement and get voted up.
Last year it was, “AI is just a stochastic parrot.”
This year it’s, “AI can write the code, but a human still has to review it!” (Using AI, of course.)
Give it another year and the narrative will be: “Only AI is capable of reviewing code, and only AI can review the AI’s review. Humans just need to read the AI’s final opinion so they still have meaningful oversight.”
The goalposts keep moving. The certainty never does.
Not true. I’ve attacked people before in the sense I was disgusted with the short cuts they took and the things they tried to get away with in the code.
I’ve seen the malicious deletion of features in order to stay hidden and I’ve called it out.
It’s just wording for the same thing. Arguments can be persuasive.
When you say you persuaded someone it meant you gave a persuasive argument. You’ve turned the discussion into word play but essentially we are in agreement that I am right. No need to argue when we both agree.
This is kind of rude, implying I’m on drugs. It’s a cheap way to win an argument to sort of degrade your opponent before even talking.
I prefer to keep what’s underneath my post is as a discussion rather then play games or engage in arguments like this. So I’m sorry to say, everything you wrote underneath that initial paragraph you can just throw it in the trash because I’m not reading it. Apologies and thank you.