Remix.run Logo
goalieca 5 days ago

Anecdote here, but when I was in grad school, I was talking to a PhD student i respected a lot. Whenever he read a paper, he would try to write the code out and get it working. I would take a couple of months but he could whip it up in a few days. He explained to me that it was just practice and the more you practice the better you become. He not only coded things quickly, he started analyzing papers quicker too and became really good at synthesizing ideas, knowing what worked and didn't, and built up a phenomenal intuition.

These days, I'm fairly senior and don't touch code much anymore but I find it really really instructive to get my hands dirty and struggle through new code and ideas. I think the "just tweak the prompts bro" people are missing out on learning.

benterix 5 days ago | parent | next [-]

We are literally witnessing the skills split right in front of our eyes: (1) people who are able to understand the concepts deeply, build a mental model of it and implement them in code at any level, and (2) people who outsource it to a machine and slowly, slowly lose that capability.

For now the difference between these two populations is not that pronounced yet but give it a couple of years.

CuriouslyC 5 days ago | parent | next [-]

We're just moving up the abstraction ladder, like we did with compilers. I don't care about the individual lines of code, I care about architecture, code structure, rigorous automated e2e tests, contracts with comprehensive validation, etc. Rather than waste a bunch of time pouring over agent PRs I just make them jump over extremely high static/analytic hurdles that guarantee functionality, then my only job is to identify places where the current spec and the intended functionality differ and create a new spec to mitigate.

e3bc54b2 5 days ago | parent | next [-]

As the other comment said, LLMs are not an abstraction.

An abstraction is a deterministic, pure function, than when given A always returns B. This allows the consumer to rely on the abstraction. This reliance frees up the consumer from having to implement the A->B, thus allowing it to move up the ladder.

LLMs, by their very nature are probabilistic. Probabilistic is NOT deterministic. Which means the consumer is never really sure if given A the returned value is B. Which means the consumer now has to check if the returned value is actually B, and depending on how complex A->B transformation is, the checking function is equivalent in complexity as implementing the said abstraction in the first place.

stuartjohnson12 5 days ago | parent | next [-]

It's delegation then.

We can use different words if you like (and I'm not convinced that delegation isn't colloquially a form of abstraction) but you can't control the world by controlling the categories.

hoppp 5 days ago | parent | next [-]

Delegation of intelligence? So one party gets more stupid for the other to be smart?

arduanika 5 days ago | parent | next [-]

Yes, just like moving into management. So we'll get a generation of programmers who get to turn prematurely into the Pointy-Haired Boss.

ThrowawayR2 4 days ago | parent [-]

I like that. To paraphrase the Steinbeck (mis)quote: "Hacker culture never took root in the AI gold rush because the LLM 'coders' saw themselves not as hackers and explorers, but as temporarily understaffed middle-managers."

rewgs 4 days ago | parent [-]

This is fantastic, stealing this.

benterix 5 days ago | parent | prev | next [-]

Except that (1) the other party doesn't become smart, (2) the one who delegates doesn't become stupid, it just loses the opportunity to become smarter when compared to a human who'd actually do the work.

soraminazuki 5 days ago | parent | next [-]

You're in denial. (1) The other party keeps learning, (2) the article cites evidence showing that heavy AI use causes cognitive decline.

casey2 4 days ago | parent [-]

The evidence it cites is that paper from 3 months ago claiming your brain activates less while prompting than actually writing an essay. No duh, the point is that you flex your mental muscles on the tasks AI can't do, like effective organization. I don't need to make a pencil to write.

The most harmful myth in all of education is the idea that you need to master some basic building blocks in order to move on to a higher level. That really is just a noticeable exception. At best you can claim that it's difficult for other people to realize that your new way solves the problem, or that people should really learn X because it's generally useful.

I don't see the need for this kind of compulsory education, and it's doing much more harm than good. Bodybuilding doesn't even appear as a codified sport until well after the industrial revolution, it's not until we are free of sustenance labor that human intelligence will peak. Who would be happy with a crummy essay if humans could learn telekinesis?

soraminazuki 4 days ago | parent | next [-]

That's a lot of words filled with straw man analogies. Essentially, you're claiming that you can strengthen your cognitive skills by having LLMs do all the thinking for you, which is absurd. And the fact that the study is 3 months old doesn't invalidate the work.

> Who would be happy with a crummy essay if humans could learn telekinesis?

I'm glad that's not the professional consensus on education, at least for now. And "telekinesis," really?

bigbadfeline 4 days ago | parent | prev [-]

> No duh, the point is that you flex your mental muscles on the tasks AI can't do, like effective organization.

AI can do better organization than you, it's only inertia and legalities that prevent it from happening. See, without good education, you aren't even able to find a place for yourself.

> The most harmful myth in all of education is the idea that you need to master some basic building blocks in order to move on to a higher level.

That "myth" is supported by abundant empirical evidence, people have tried education without it and it didn't work. My lying eyes kind of confirm it too, I had one hell of time trying to use LLM without getting dumber... it comes so natural to them, skipping steps is seductive but blinding.

> I don't see the need for this kind of compulsory education, and it's doing much more harm than good.

Again, long standing empirical evidence tells as the opposite. I support optional education but we can't even have a double blind study for it - I'm pretty sure those who don't go to school would be home-schooled, too few are dumb enough to let their uneducated children chose their manner and level of education.

lazystar 5 days ago | parent | prev [-]

well, then it comes down to which skillset is more marketable - the delegator, or the codong language expert.

customers dont care about the syntactic sugar/advanced reflection in the codebase of the product that theyre buying. if the end product of the delegator and the expert is the same, employers will go with the faster one every time.

ModernMech 5 days ago | parent [-]

That's how you end up in the Idiocracy world, where things still happen, but they are driven by ads rather than actual need, no one really understands how anything works, somehow society plods along due to momentum, but it's all shit from top to bottom and nothing is getting better. "Brawndo: it's got what plants crave!" is the end result of being lead around by marketers.

lazystar 3 days ago | parent [-]

isnt this what assembly devs would have said about c devs, and c devs abput python devs?

charcircuit 5 days ago | parent | prev [-]

It's not 0 sum. All parties can become more intelligent over time.

matt_kantor 5 days ago | parent [-]

They could, but you're commenting on a study whose results indicate that this isn't what happens.

charcircuit 5 days ago | parent [-]

And you are in a comment chain discussing how there is a subset of people where the study is not true.

dvfjsdhgfv 5 days ago | parent | next [-]

Rather a subset of people who would like to believe the results don't apply to them.

Frankly, I'm sure there will be much more studies in this direction. Now this is a university, an independent organization. But, given the amount of money involved, some of future studies will come from the camp vitally interested in people believing that by outsourcing their work to coding agents they are becoming smarter instead of losing achieved skills. Looking forward to reading the first of these.

charcircuit 5 days ago | parent [-]

Outsourcing work doesn't make you smarter. It makes you more productive. It gives you extra time that you can dedicate towards becoming smarter at something else.

soraminazuki 5 days ago | parent [-]

Become smarter at what exactly? People reliant on AI aren't going to use AI on just one thing, they're going to use it for everything. Besides, as others have pointed out to you, the study shows evidence that AI reliance causes cognitive decline. It affects your general intelligence, not limited to a single area of expertise.

> Students who repeatedly relied on ChatGPT showed weakened neural connectivity, impaired memory recall, and diminished sense of ownership over their own writing

So we're going to have more bosses, perhaps not in title, who think they're becoming more knowledgeable about a broad range of topics, but are actually in cognitive decline and out of touch with reality on the ground. Great.

beeflet 5 days ago | parent | prev [-]

There is? You haven't proven anything

rstuart4133 5 days ago | parent [-]

Haven't you been paying attention? He probably heard it from an AI. That's the only proof needed. Why he put in any more effort? /s

robenkleene 5 days ago | parent | prev | next [-]

One argument for abstraction being different from delegation, is when a programmer uses an abstraction, I'd expect the programmer to be able to work without the abstraction, if necessary, and also be able to build their own abstractions. I wouldn't have that expectation with delegation.

vidarh 5 days ago | parent | next [-]

The vast majority of programmers don't know assembly, so can in fact not work without all the abstractions they rely on.

Do you therefore argue programming languages aren't abstractions?

benterix 5 days ago | parent | next [-]

> The vast majority of programmers don't know assembly, so can in fact not work without all the abstractions they rely on.

The problem with this analogy is obvious when you imagine an assembler generating machine code that doesn't work half of the time and a human trying to correct that.

vidarh 5 days ago | parent | next [-]

An abstraction doesn't cease to be one because it's imperfect, or even wrong.

nerdsniper 5 days ago | parent | prev [-]

I mean, it’s more like 0.1% of the time but I’ve definitely had to do this in embedded programming on ARM Cortex M0-M3. Sometimes things just didn't compile the way I expected. My favorite was when I smashed the stack and I overflowed ADC readings into the PC and SP, leading to the MCU jumping completely randomly all over the codebase. Other times it was more subtle things, like optimizing away some operation that I needed to not be optimized away.

maltalex 5 days ago | parent | prev | next [-]

> Do you therefore argue programming languages aren't abstractions?

Yes, and no. They’re abstractions in the sense of hiding the implementation details of the underlying assembly. Similarly, assembly hides the implementation details of the cpu, memory, and other hw components.

However, except with programming languages you don’t need to know the details of the underlying layers except for very rare cases. The abstraction that programming languages provide is simple, deterministic, and well documented. So, in 99.999% of cases, you can reason based on the guarantees of the language, regardless of how those guarantees are provided. With LLMs, the relation between input and output is much more loose. The output is non-deterministic, and tiny changes to the input can create enormous changes in the output seemingly without reason. It’s much shakier ground to build on.

impure-aqua 4 days ago | parent | next [-]

I do not think determinism of behaviour is the only thing that matters for evaluating the value of an abstraction - exposure to the output is also a consideration.

The behaviour of the = operator in Python is certainly deterministic and well-documented, but depending on context it can result in either a copy (2x memory consumption) or a pointer (+64bit memory consumption). Values that were previously pointers can also suddenly become copies following later permutation. Do you think this through every time you use =? The consequences of this can be significant (e.g. operating on a large file in memory); I have seen SWEs make errors in FastAPI multipart upload pipelines that have increased memory consumption by 2x, 3x, in this manner.

Meanwhile I can ask an LLM to generate me Rust code, and it is clearly obvious what impact the generated code has on memory consumption. If it is a reassignment (b = a) it will be a move, and future attempts to access the value of a would refuse to compile and be highlighted immediately in an IDE linter. If the LLM does b = &a, it is clearly borrowing, which has the size of a pointer (+64bits). If the LLM did b = a.clone(), I would clearly be able to see that we are duplicating this data structure in memory (2x consumption).

The LLM code certainly is non-deterministic; it will be different depending on the questions I asked (unlike a compiler). However, in this particular example, the chosen output format/language (Rust) directly exposes me to the underlying behaviour in a way that is both lower-level than Python (what I might choose to write quick code myself) yet also much, much more interpretable as a human than, say, a binary that GCC produces. I think this has significant value.

5 days ago | parent | prev | next [-]
[deleted]
lock1 4 days ago | parent | prev [-]

Unrelated to the gp post, but isn't LLMs more like a deterministic chaotic system than a "non-deterministic" one? "Tiny changes to the input can change the output quite a lot" is similar to "extreme sensitivity to initial condition" property of a chaotic system.

I guess that could be a problematic behavior if you want reproducibility ala (relatively) reproducible abstraction like compilers. With LLMs, there are too many uncontrollable variables to precisely reproduce a result from the same input.

WD-42 5 days ago | parent | prev | next [-]

The vast majority of programmers could learn assembly, most of it in a day. They don’t need to, because the abstractions that generate it are deterministic.

strix_varius 5 days ago | parent | prev | next [-]

This is a tautology. At some level, nobody can work at a lower level of abstraction. A programmer who knows assembly probably could not physically build the machine it runs on. A programmer who could do that probably could not smelt the metals required to make that machine. etc.

However, the specific discussion here is about delegating the work of writing to an LLM, vs abstracting the work of writing via deterministic systems like libraries, frameworks, modules, etc. It is specifically not about abstracting the work of compiling, constructing, or smelting.

vidarh 5 days ago | parent [-]

This is meaningless. An LLM is also deterministic if configured to be so, and any library, framework, module can be non-deterministic if built to be. It's not a distinguishing factor.

strix_varius 5 days ago | parent [-]

That isn't how LLMs work.

They are probabilistic. Running them on even different hardware yields different results. And the deltas compound the longer your context and the more tokens you're using (like when writing code).

But more importantly, always selecting the most likely token traps the LLM in loops, reduces overall quality, and is infeasible at scale.

There are reasons that literally no LLM that you use runs deterministically.

vidarh a day ago | parent [-]

With temperature set to zero, they are deterministic if inference is implemented with deterministic calculations.

Only when you turn the temperature up they become probabilistic for a given input in that case. If you take shortcuts in implementing the inference, then sure, rounding errors may accumulate and prevent that, but that is not an issue with the models but with your choice of how to implement the inference.

robenkleene 5 days ago | parent | prev [-]

Fair point, I elaborated what I mean here https://news.ycombinator.com/item?id=45116976

To address your specific point in the same way: When we're talking about programmers using abstractions, we're usually not talking about the programming language their using, we're talking about the UI framework, networking libraries, etc... they're using. Those are the APIs their calling with their code, and those are all abstractions that are all implemented at (roughly) the same level of abstraction as the programmer's day-to-day work. I'd expect a programmer to be able to re-implement those if necessary.

Jensson 5 days ago | parent | prev [-]

> I wouldn't have that expectation with delegation.

Managers tend to hire sub managers to manage their people. You can see this with LLM as well, people see "Oh this prompting is a lot of work, lets make the LLM prompt the LLM".

robenkleene 5 days ago | parent [-]

Note, I'm not saying there are never situations where you'd delegate something that you can do yourself (the whole concept of apprenticeship is based on doing just that). Just that it's not an expectation, e.g., you don't expect a CEO to be able to do the CTO's job.

I guess I'm not 100% sure I agree with my original point though, should a programmer working on JavaScript for a website's frontend be able to implement a browser engine. Probably not, but the original point I was trying to make is I would expect a programmer working on a browser engine to be able to re-implement any abstractions that they're using in their day-to-day work if necessary.

AnIrishDuck 5 days ago | parent | next [-]

The advice I've seen with delegation is the exact opposite. Specifically: you can't delegate what you can't do.

Partially because of all else fails, you'll need to step in and do the thing. Partially because if you can't do it, you can't evaluate whether it's being done properly.

That's not to say you need to be _as good_ at the task as the delegee, but you need to be competent.

For example, this HBR article [1]. Pervasive in all advice about delegation is the assumption that you can do the task being delegated, but that you shouldn't.

> Just that it's not an expectation, e.g., you don't expect a CEO to be able to do the CTO's job.

I think the CEO role is actually the outlier here.

I can only speak to engineering, but my understanding has always been that VPs need to be able to manage individual teams, and engineering managers need to be somewhat competent if there's some dev work that needs to be done.

This only happens as necessary, and it obviously should be rare. But you get in trouble real quickly if you try to delegate things you cannot accomplish yourself.

1. https://hbr.org/2025/09/why-arent-i-better-at-delegating

tguedes 5 days ago | parent | prev | next [-]

I think what you're trying to reference is APIs or libraries, most of which I wouldn't consider abstractions. I would hope most senior front-end developers are capable of developing a date library for their use case, but in almost all cases it's better to use the built in Date class, moment, etc. But that's not an abstraction.

meheleventyone 5 days ago | parent | prev [-]

There's an interesting comparison in delegation where for example people that stop programming through delegation do lose their skills over time.

hosh 5 days ago | parent | prev [-]

There is a form of delegation that develops the people involved, so that people can continue to contribute and grow. Each individual can contribute what is unique to them, and grow more capable as they do so. Both people, and the community of those people remain alive, lively, and continue to grow. Some people call this paradigm “regenerative”; only living systems regenerate.

There is another form of delegation where the work needed to be done is imposed onto another, in order to exploit and extract value. We are trying to do this with LLMs now, but we also did this during the Industrial Revolution, and before that, humanity enslaved each other to get the labor to extract value out of the land. This value extraction leads to degeneration, something that happens when living systems dies.

While the Industrial Revolution afforded humanity a middle-class, and appeared to distribute the wealth that came about — resulting in better standards of living — it came along with numerous ills that as a society, we still have not really figured out.

I think that, collectively, we figure that the LLMs can do the things no one wants to do, and so _everyone_ can enjoy a better standard of living. I think doing it this way, though, leads to a life without purpose or meaning. I am not at all convinced that LLMs are going to give us back that time … not unless we figure out how to develop AIs that help grow humans instead of replacing them.

The following article is an example of what I mean by designing an AI that helps develop people instead of replacing them: https://hazelweakly.me/blog/stop-building-ai-tools-backwards...

salawat 5 days ago | parent [-]

LLM's and AI in general is just a hack to reimplement slavery with an artificial being that is denied consideration as a being. Technical chattel, if you will, and if you've been paying attention in tech circles a lot of mental energy is being funneled into keeping the egghead's attention firmly in the "we don't want something that is" direction. Investors want robots that won't/can't say no.

ModernMech 5 days ago | parent [-]

What's interesting about this proposition, is that by the time you create a machine that's as capable in the way they want to replace humans, we'll have to start talking about robot personhood, because by then they will be indistinguishable from us.

I don't think you can get the kinds of robots they want without also inventing the artificial equivalent of soul. So their whole moral sidestep to reimplement slavery won't even work. Enslaving sapient beings is evil whether they are made of meat or metal.

salawat 5 days ago | parent [-]

You are far too optimistic in terms of willingness of the moneyed to let something like a toaster having theoretical feelings get in the way of their Santa Claus machines.

ModernMech 5 days ago | parent [-]

Seeing as they call us NPCs, I'm pretty sure they think all our feelings are theoretical.

TheOtherHobbes 5 days ago | parent | prev | next [-]

Human developers by their very nature are probabilistic. Probabilistic is NOT deterministic. Which means the manager is never really sure if the developer solved the problem, or if they introduced some bugs, or if their solution is robust and ideal even when it seems to be working.

All of which is beside the point, because soon-ish LLMs are going to develop their own equivalents of experimentation, formalisation of knowledge, and collective memory, and then solutions will become standardised and replicable - likely with a paradoxical combination of a huge loss of complexity and solution spaces that are humanly incomprehensible.

The arguments here are like watching carpenters arguing that a steam engine can't possibly build a table as well as they can.

Which - is you know - true. But that wasn't how industrialisation worked out.

threatofrain 5 days ago | parent | prev | next [-]

So it's a noisy abstraction. Programmers deal with that all the time. Whenever you bring in an outside library or dependency there's an implicit contract that you don't have to look underneath the abstraction. But it's noisy so sometimes you do.

Colleagues are the same thing. You may abstract business domains and say that something is the job of your colleague, but sometimes that abstraction breaks.

Still good enough to draw boxes and arrows around.

delfinom 5 days ago | parent | next [-]

Noisy is an understatement, it's buggy, it's error filled, it's time consuming and inefficient. It's exact opposite of automation but great for job security.

soraminazuki 5 days ago | parent [-]

It's unfortunately not great for job security either. Do you know how Google massively underinvests in support? Their support is mostly automated and is only good at shooing people away. Many companies would jump at the opportunity to adopt AI and accept massive declines in quality as long as it results in cost savings. Working people and customers will get screwed hard.

soraminazuki 5 days ago | parent | prev [-]

Competent programmers use well established libraries and dependencies, not ones that are unreliable as LLMs.

Paradigma11 5 days ago | parent | prev | next [-]

"LLMs, by their very nature are probabilistic."

So are humans and yet people pay other people to write code for them.

const_cast 5 days ago | parent | next [-]

Yes but we don't call humans abstractions. A software engineer isn't an abstraction over code.

threatofrain 5 days ago | parent [-]

No, but depending on your governance structure, we have software engineers abstract over domains. And then we draw boxes and arrows around the works of your colleagues without looking inside the box.

skydhash 5 days ago | parent [-]

You wish! Bus factor risk is why you don’t do this. Having siloed knowledge is one of the first steps towards engineering, unless someone else code is proven bug free, you don’t usually rely on that. You just have someone to throw bug tickets at.

threatofrain 5 days ago | parent | next [-]

Very true, my brain is stuck in scaling out from small teams. In that world, you can't help but accept plenty of bus factor, and once you get to enough people making sure everyone understands each others' domains is a bit too much.

skydhash 5 days ago | parent | prev [-]

EDIT

*towards bad engineering, unless*

benterix 5 days ago | parent | prev | next [-]

Yeah but in spite of that if you ask me take a Jira ticket and do it properly, there is a much higher chance that I'll do it reliably and the rest of my team will be satisfied, whereas if I bring an LLM into the equation it will wreak havoc (I've witnessed a few cases and some people got fired, not really for using LLMs but for not reviewing their output properly - which I can even understand somehow as reviewing code is much less fun than creating it).

zasz 5 days ago | parent | prev [-]

Yeah and the people paying other people to write code won't understand how the code works. AI as currently deployed stands a strong chance of reducing the ranks of the next generation of talented devs.

groby_b 5 days ago | parent | prev | next [-]

> An abstraction is a deterministic, pure function

That must be why we talk about leaky abstractions so much.

They're neither pure functions, nor are they always deterministic. We as a profession have been spoilt by mostly deterministic code (and even then, we had a chunk of probabilistic algorithms, depending on where you worked).

Heck, I've worked with compilers that used simulated annealing for optimization, 2 decades ago.

Yes, it's a sea change for CRUD/SaaS land. But there are plenty of folks outside of that who actually took the "engineering" part of software engineering seriously, and understand just fine how to deal with probabilistic processes and risk management.

pmarreck 5 days ago | parent | prev | next [-]

> LLMs, by their very nature are probabilistic

I believe that if you can tweak the temperature input (OpenAI recently turned it off in their API, I noticed), an input of 0 should hypothetically result in the same output, given the same input.

bdhcuidbebe 5 days ago | parent | next [-]

That only works if you decide to stick to that exact model for the rest of your life, obviously.

oceanplexian 5 days ago | parent [-]

The point is he said "by its nature". A transformer based LLM when called with the same inputs/seed/etc is literally the textbook definition of a deterministic system.

sarchertech 5 days ago | parent | prev [-]

No one uses temperature 0 because the results are terrible.

5 days ago | parent | prev | next [-]
[deleted]
oceanplexian 5 days ago | parent | prev | next [-]

> LLMs, by their very nature are probabilistic.

This couldn't be any more wrong. LLMs are 100% deterministic. You just don't observe that feature because you're renting it from some cloud service. Run it on your own hardware with a consistent seed, and it will return the same answer to the same prompt every time.

maltalex 5 days ago | parent | next [-]

That’s like arguing that random number generators are not random if you give them a fixed seed. You’re splitting hairs.

LLMs, as used in practice in 99.9% of cases, are probabilistic.

kbelder 5 days ago | parent | prev [-]

I think 'chaotic' is a better descriptor than 'probabilistic'. It certainly follows deterministic rules, unless randomness is deliberately injected. But the interaction of the rules and the context the operate in is so convoluted that you can't trace an exact causal relationship between the input and output.

ModernMech 5 days ago | parent [-]

It's chaotic in general. The randomness makes it chaotic and nondeterministic. Chaotic systems aren't that bad to work with as long as they are deterministic. Chaotic + nondeterministic is like building on quicksand.

CuriouslyC 5 days ago | parent | prev | next [-]

Ok, let's call it a stochastic transformation over abstraction spaces. It's basically sampling from the set of deterministic transformations given the priors established by the prompt.

soraminazuki 5 days ago | parent [-]

You're bending over backwards to imply that it's deterministic without saying it is. It's not. LLMs, by its very nature, don't have a well-defined relationship between its input and output. It makes tons of mistakes that's utterly incomprehensible because of that.

chermi 5 days ago | parent | prev | next [-]

Just want to commend you for the perfect way of describing this re. not being an abstraction

upcoming-sesame 5 days ago | parent | prev | next [-]

agree but does this distinction really make a difference ? I think the OP point is still valid

glitchc 5 days ago | parent | prev | next [-]

> LLMs, by their very nature are probabilistic. Probabilistic is NOT deterministic.

Although I'm on the side of getting my hands dirty, I'm not sure if the difference is that different. A modern compiler embeds a considerable degree of probabilistic behaviour.

ashton314 5 days ago | parent | next [-]

Compilers use heuristics which may result in dramatically different results between compiler passes. Different timing effects during compilation may constrain certain optimization passes (e.g. "run algorithm x over the nodes and optimize for y seconds") but in the end the result should still not modify defined observable behavior, modulo runtime. I consider that to be dramatically different than the probabilistic behavior we get from an LLM.

davidrupp 5 days ago | parent | prev [-]

> A modern compiler embeds a considerable degree of probabilistic behaviour.

Can you give some examples?

hn_acc1 5 days ago | parent | next [-]

There are pragmas you can give to a compiler to tell it to "expect that this code path is (almost) never followed". I.e. if you have an assert on nullptr, for example. You want it to assume the assert rarely gets triggered, and highly optimize instruction scheduling / memory access for the "not nullptr" case, but still assert (even if it's really, REALLY slow, relatively speaking) to handle the nullptr case.

glitchc 4 days ago | parent | prev | next [-]

Any time the language specification is undefined, the compiler behaviour will be probabilistic at best. Here's an example for C:

https://wordsandbuttons.online/so_you_think_you_know_c.html

WD-42 5 days ago | parent | prev | next [-]

I keep hearing this but it’s a head scratcher. They might be thinking of branch prediction, but that’s a function of the cpu, not the compiler.

ModernMech 5 days ago | parent | prev [-]

It’s not that they embed probabilistic behavior per se. But more like they are chaotic systems, in that a slight change of input can drastically change the output. But ideally, good compiler design is idempotent — given the same input, the output should always be the same. If that were not generally true, programming would be much harder than it is.

glitchc 4 days ago | parent [-]

No, it can also vary on the input. The -ffast-math flag in gcc is a good example.

eikenberry 5 days ago | parent | prev | next [-]

Local models can be deterministic and that is one of the reasons why they will win out over service based models once the hardware becomes available.

bckr 5 days ago | parent | prev | next [-]

The LLM is not part of the application.

The LLM expands the text of your design into a full application.

The commenter you’re responding to is clear that they are checking the outputs.

RAdrien 5 days ago | parent | prev | next [-]

This is an excellent reply

rajap 5 days ago | parent | prev | next [-]

with proper testing you can make suer that given A the returned value is B

charcircuit 5 days ago | parent | prev | next [-]

>LLMs, by their very nature are probabilistic.

So are compilers, but people still successfully use them. Compilers and LLMs can both be made deterministic but for performance reasons it's convenient to give up that guarantee.

hn_acc1 5 days ago | parent | next [-]

AIUI, if you made an LLM deterministic, every mostly-similar prompt would return the same result (i.e. access the same training data set) and if that's wrong, the LLM is just plain broken for that example. Hacked-in "temperature" (randomness) is the only way to hopefully get a correct result - eventually.

WD-42 5 days ago | parent | prev [-]

What are these non deterministic compilers I keep hearing about, honestly curious.

charcircuit 5 days ago | parent | next [-]

For example looping over the files in a directory can happen in a different order depending on the order the files were created in. If you are linking a bunch of objects the order typically matters. If the compiler is implemented correctly the resulting binary should functionally be the same but the binary itself may not be exactly the same. Or even when implemented correctly you will see cases where different objects can be the one to define a duplicate symbol depending on their relative order.

ModernMech 5 days ago | parent [-]

That's not nondeterminism though, you've changed the input (the order of the files). Nondeterminism would be if the binary changes despite the files being in the same order. If the binary is the same holding fixed the order of the files, then the output is deterministic.

PhunkyPhil 5 days ago | parent | prev [-]

GCC can use randomized branch prediction.

daveguy 5 days ago | parent | prev [-]

> An abstraction is a deterministic, pure function, than when given A always returns B.

That is just not correct. There is no rule that says an abstraction is strictly functional or deterministic.

In fact, the original abstraction was likely language, which is clearly neither.

The cleanest and easiest abstractions to deal with have those properties, but they are not required.

robenkleene 5 days ago | parent | next [-]

This is such a funny example because language is the main way that we communicate with LLMs. Which means you can make tie both of your points together in the same example: If you take a scene and describe it in words, then have an LLM reconstruct the scene from the description, you'd likely get a scene that looks very different then the original source. This simultaneous makes both your point and the person you're responding to's point:

1. Language is an abstraction and it's not deterministic (it's really lossy)

2. LLMs behave differently than the abstractions involved in building software, where normally if you gave the same input, you'd expect the same output.

daveguy 5 days ago | parent [-]

Yes, most abstractions are not as clean as leak free functional abstractions. Most abstractions in the world are leaky and lossy. Abstraction was around long before computers were invented.

beepbooptheory 5 days ago | parent | prev [-]

What is the thing that language itself abstracts?

fkyoureadthedoc 5 days ago | parent [-]

Your thought's I'd say, but it's more of a two way street than what I think of as abstraction.

daveguy 5 days ago | parent [-]

Okay, language was the original vehicle for abstraction if everyone wants to get pedantic about it. And yes, abstraction of thought. Only in computerland (programming, mathematics and physics) do you even have the opportunity to have leak-free functional abstractions. That is not the norm. LLM-like leaky abstractions are the norm.

beepbooptheory 5 days ago | parent [-]

This is clearly not true. For example, the Pythagorean theorem is an old, completely leak free, abstraction with no computer required.

Sorry for being pedantic, I was just curious what you mean at all. Language as abstraction of thought implies that thought is always somehow more "general" than language, right? But if that was the case, how could I read a novel that brings me to tears? Is not my thought in this case more the "lossy abstraction" of the language than the other way around?

Or, what is the abstraction of the "STOP" on the stop sign at the intersection?

daveguy 4 days ago | parent [-]

Psst. Mathematics didn't come before language.

blibble 5 days ago | parent | prev | next [-]

I can count the amount of times in my 20 year career that I've had to look at compiler generated assembly on one finger

and I've never looked at the machine code produced by an assembler (other than when I wrote my own as a toy project)

is the same true of LLM usage? absolutely not

and it never will be, because it's not an abstraction

KoolKat23 5 days ago | parent | next [-]

It's still early stages, that is why.

It is not yet good enough or there is not yet sufficient trust. Also there are still resources allocated to checking the code.

I saw a post yesterday showing Brave browser's new tab using 70mb of RAM in the background. I'm very sure there's code there that can be optimized, but who gives a shit. It's splitting hairs and our computers are powerful enough now that it doesn't matter.

Immateriality has abstracted that particular few line codes away.

LandR 5 days ago | parent | next [-]

>> I saw a post yesterday showing Brave browser's new tab using 70mb of RAM in the background. I'm very sure there's code there that can be optimized, but who gives a shit.

I do. This sort of attitude is how we have machines more powerful than ever yet everything still seems to run like shit.

const_cast 5 days ago | parent [-]

This is barely related but I bet that the extra 70 mb of ram isn't even waste - it's probably an optimization. Its possible they're spinning up a JS VM preemptively so when you do navigate you have a hot interpreter for the inevitable script. Maybe they allocate memory for the DOM too.

KoolKat23 5 days ago | parent [-]

Probably the case, I felt bad using this as an example as I don't know the specifics, but thought it is an easy way to convey my point (sorry if so Brave developers).

ncruces 5 days ago | parent | prev | next [-]

> It's still early stages, that is why.

Were we advised to check compiler output every single time "in the early days"?

No, that's not the difference.

A compiler from whatever high/low level language is expected to translate a formal specification of an algorithm faithfully. If it fails to do so, the compiler is buggy, period.

A LLM is expected to understand fuzzy language and spit out something that makes sense.

It's a fundamentally different task, and I trust a human more with this. Certainly, humans are judged by their capability to do this, apply common sense, ask for necessary clarification, also question what they're being asked to do.

rafterydj 5 days ago | parent | prev | next [-]

I feel like I'm taking crazy pills or misunderstanding you. Shouldn't it matter that they are using 70mb of RAM more or less totally wastefully? Maybe not a deal breaker for Brave, sure, but waste is waste.

I understand the world is about compromises, but all the gains of essentially every computer program ever could be summed up by accumulation of small optimizations. Likewise, the accumulation of small wastes kills legacy projects more than anything else.

Mtinie 5 days ago | parent | next [-]

It could matter but what isn't clear to me is if 70MB is wasteful in this specific context. Maybe? Maybe not?

Flagging something as potentially problematic is useful but without additional information related to the tradeoffs being made this may be an optimized way to do whatever Brave is doing which requires the 70MB of RAM. Perhaps the non-optimal way it was previously doing it required 250MB of RAM and this is a significant improvement.

5 days ago | parent [-]
[deleted]
KoolKat23 5 days ago | parent | prev [-]

Yes it can be construed as wasteful. But it's exactly that, a compromise. Could the programmer spend their time better elsewhere generating better value, not doing so is also wasteful.

Supply and demand will decide what compromise is acceptable and what that compromise looks like.

ToucanLoucan 5 days ago | parent | prev | next [-]

> It's still early stages, that is why.

I have been hearing (reading?) this for a solid two years now, and LLMs were not invented two years ago: they are ostensibly the same tech as they were back in 2017, with larger training pools and some optimizations along the way. How many more hundreds of billions of dollars is reasonable to throw at a technology that has never once exceeded the lofty heights of "fine"?

At this point this genuinely feels like silicon valley's fever dream. Just lighting dumptrucks full of money on fire in the hope that it does something better than it did the previous like 7 or 8 times you did it.

And normally I wouldn't give a shit, money is made up and even then it ain't MY money, burn it on whatever you want. But we're also offsetting any gains towards green energy standing up these stupid datacenters everywhere to power this shit, not to mention the water requirements.

SamPatt 5 days ago | parent | next [-]

The difference between using Cursor when it launched and using Cursor today is dramatically different.

It was basically a novelty before. "Wow, AI can sort of write code!"

Now I find it very capable.

player1234 3 days ago | parent [-]

Trillions different?

KoolKat23 5 days ago | parent | prev [-]

I know from my own use case, it went from Gemini 1.5 being unusable to Gemini 2.0 being useable. So 2 years makes a big difference. It's out there right now being used in business making money. This is tangible.

I suspect there's a lot more use out there generating money than you realize, there's no moat in using it, so I'm pretty sure it's kept on the downlow for fear of competitors catching up (which is quick and cheap to do).

How far can one extrapolate? I defer to the experts actually making these things and to those putting money on the line.

vrighter 4 days ago | parent | prev | next [-]

I hate this "early stages" argument. It either works, or it doesn't. If it works sometimes that's called "alpha software" and should not be released and hyped as a finished product. The early stages of the GUI paradigm at release started with a fully working GUI. Windows didn't sometimes refuse to open. The OS didn't sometimes open the wrong program. The system didn't sometimes hallucinate a 2nd cursor. The system worked and then it was shipped.

The "early stages" argument means "not fit for production purposes" in any other case. It should also mean the same here. It's early stages because the product isn't finished (and can't be, at least with current knowledge)

throwaway1777 5 days ago | parent | prev | next [-]

[dead]

5 days ago | parent | prev [-]
[deleted]
elAhmo 5 days ago | parent | prev | next [-]

It is an abstraction.

Just because you end up looking at what the prompt looks like “under the hood” in whichever language it produced the output, doesn’t mean every user does.

Similar as with assembly, you might have not taken a look at it, but there are people that do and could argue the same thing as you.

The lines will be very blurry in the near future.

card_zero 5 days ago | parent | next [-]

I can fart in the general direction of the code and that's a kind of abstraction too. It distills my intent down to a simple raspberry noise which could then be interpreted by sufficiently intelligent software.

joenot443 5 days ago | parent | next [-]

Sort of like when people argue about "what is art?", some folks find it clever to come up with the most bizarre of examples to point to, as if the entire concept rests on the existence of its members at the fringe.

Personally, I think if your farts are an abstraction that you can derive useful meaning from the mapping, who are we to tell you no?

card_zero 5 days ago | parent [-]

So, can derive useful meaning from is the point of contention.

(Also: bizarre examples = informative edge cases. Sometimes.)

Phemist 5 days ago | parent | prev | next [-]

The final result of course depending on how many r's there are in the raspberry.

chaps 5 days ago | parent | prev [-]

Could you please expand on this thought? I'm curious where this abstraction's inflection points are.

rsynnott 5 days ago | parent | prev [-]

> Just because you end up looking at what the prompt looks like “under the hood” in whichever language it produced the output, doesn’t mean every user does.

> Similar as with assembly, you might have not taken a look at it, but there are people that do and could argue the same thing as you.

... No. The assembler is deterministic. Barring bugs, you can basically trust that it does exactly what it was told to. You absolutely cannot say the same of our beloved robot overlords.

CuriouslyC 5 days ago | parent | prev | next [-]

I like to think of it as a duck-typed abstraction. I have formal specs which guarantee certain things about my software, and the agent has to satisfy those (including performance, etc). Given that, the code the agent generates is essentially fungible in the manner of machine code.

sarchertech 5 days ago | parent [-]

Only if you can write specs precisely enough. For those of us who remember the way software used to be built, we learned that this is basically impossible and that English is a terrible language to even attempt it in.

If you do make your specs precise enough, such that 2 different dev shops will produce functionally equivalent software, your specs are equivalent to code.

CuriouslyC 5 days ago | parent [-]

This is doable, I have a multi-stage process that makes it pretty reliable. Stage 1 is ideation, this can be with a LLM or humans, w/e, you just need a log. Stage 2 is conversion of that ideation log to a simple spec format that LLMs can write easily called SRF, which is fenced inside a nice markdown document humans can read and understand. You can edit that SRF if desired, have a conversation with the agent about it to get them to massage it, or just have your agent feed it into a tool I wrote which takes a SRF and converts it to a CUE with full formal validation and lots of other nice features.

The value of this is that FOR FREE you can get comprehensive test defintions (unit+e2e), kube/terraform infra setup, documentation stubs, openai specs, etc. It's seriously magical.

sarchertech 5 days ago | parent [-]

Imagine that when you deploy you have an LLM that regenerates code based on your specs, since code is fungible as long as it fits the spec.

Keeping in mind that I have seen hundreds to thousands of production errors in applications with very high coverage test suites?

How many production errors would you expect to see over 5 years of LLM deployments.

CuriouslyC 5 days ago | parent [-]

Maybe more, but agents can also respond to errors much more quickly, and agents have the ability to manage small staged rollouts with monitoring to catch an issue before it goes global, so your actual downtime will be much better at the same time that you're producing code way faster.

sarchertech 4 days ago | parent [-]

My magic potion will make you much faster. It will also make you crap your pants all the time. But don’t worry I have a magic charm that I can sell that will change colors to alert you that you’ve shat yourself, and since you’re faster you can probably change your pants before anyone important notices.

joenot443 5 days ago | parent | prev | next [-]

"SwiftUI red circle with a white outline 100px"

``` Circle() .fill(Color.red) .overlay( Circle().stroke(Color.white, lineWidth: 4) ).frame(width: 100, height: 100) ```

Is the mapping 1:1 and completely lossless? Of course not, I'd say the former is most definitely a sort of abstraction of the latter, and one would be being disingenuous to pretend it's not.

theptip 5 days ago | parent | prev [-]

> and it never will be

The only thing I’m certain of is that you’re highly overconfident.

I’m sure plenty of assembly gurus said the same of the first compilers.

> because it's not an abstraction

This just seems like a category error. A human is not an abstraction, yet they write code and produce value.

An IDE is a tool not an abstraction, yet they make humans more productive.

When I talk about moving up the levels of abstraction I mean: taking on more abstract/less-concrete tasks.

Instead of “please wire up login for our new prototype” it might be “please make the prototype fully production-ready, figure out what is needed” or even “please ship a new product to meet customer X’s need”.

sarchertech 5 days ago | parent [-]

>“please ship a new product to meet customer X’s need”

The customer would just ask the AI directly to meet their needs. They wouldn’t purchase the product from you.

chii 5 days ago | parent | prev | next [-]

> my only job is to identify places where the current spec and the intended functionality differ and create a new spec to mitigate.

and to be able to do this efficiently or even "correctly", you'd need to have had mountains of experience evaluating an implementation, and be able to imagine the consequences of that implementation against the desired outcome.

Doing this requires experience that would get eroded by the use of an LLM. It's very similar to higher level maths (stuff like calculus) being much more difficult if you had poor arithmetic/algebra skills.

CuriouslyC 5 days ago | parent [-]

Would that experience get eroded though? LLMs let me perform experiments (including architecture/system level) quickly, and build stress test/benchmark/etc harnesses quickly to evaluate those experiments, so in the time you can build human intuition with one experiment I've done 10. I build less intuition from each experiment, but I'm building broader intuition, and if I choose a bad experiment it's a small cost, but choosing a bad experiment and performing it manually is brutal.

jplusequalt 5 days ago | parent [-]

>Would that experience get eroded though?

Yes. If you stop doing something, you get worse at it. There is literally no exception to this that I'm aware of. In the future where everyone is dependent on ever larger amounts of code, the possibility that nobody will be equipped to write/debug that code should scare you.

CuriouslyC 5 days ago | parent [-]

The amount of weightlifting a strength athlete needs to do to stay near their peak (but outside medal range) is ~15% of a full training workload. People can play instruments once a month and still be exceptional once the pathways are set down. Are you getting slightly worse at direct code jockeying? Sure, but not a lot, and you're getting superpowers in exchange.

jplusequalt 5 days ago | parent | next [-]

>and you're getting superpowers in exchange

The superpower you speak of is to become a product manager, and lose out on the fun of problem solving. If that's the future of tech, I want nothing to do with it.

jplusequalt 5 days ago | parent | prev [-]

Both of these examples have much more to do with muscle memory than critical thinking.

notTooFarGone 5 days ago | parent | prev | next [-]

If you had google maps and you knew the directions it gives are 80% gonna be correct, would you still need navigation skills?

You could also tweak it by going like "Lead me to the US" -> "Lead me to the state of New York" -> "Lead me to New York City" -> "Lead me to Manhattan" -> "Lead me to the museum of new arts" and it would give you 86% accurate directions, would you still need to be able to navigate?

How about when you go over roads that are very frequently used you push to 92% accuracy, would you still need to be able to navigate?

Yes of course because in 1/10 trips you'd get fucking lost.

My point is: unless you get to that 99% mark, you still need the underlying skill and the abstraction is only a helper and always has to be checked by someone who has that underlying skill.

I don't see LLMs as that 99% solution in the next years to come.

soraminazuki 4 days ago | parent | prev | next [-]

Why is every discussion about AI like this? We get study after study and example after example showing that AI is unreliable [1], hurts productivity [2], and causes cognitive decline [3]. Yet, time and time again, a group of highly motivated individuals show up and dismiss these findings, not with counter-evidence, but through sheer sophistry. Heck, this is a thread meant to discuss evidence about LLM reliance contributing to cognitive decline. Instead, the conversation quickly derailed into an absurd debate about whether AI coding tools resemble compilers. It's exhausting.

[1]: https://arxiv.org/abs/2401.11817

[2]: https://metr.org/blog/2025-07-10-early-2025-ai-experienced-o...

[3]: https://publichealthpolicyjournal.com/mit-study-finds-artifi...

lr4444lr 5 days ago | parent | prev | next [-]

I'd be very cautious about calling LLM output "an abstraction layer" in software.

matthewdgreen 5 days ago | parent | prev | next [-]

It is possible to use LLMs this way. If you're careful. But at every place where you can use LLMs to outsource mechanical tasks, there will also be a temptation to outsource the full stack of conceptual tasks that allow you to be part of what's going on. This will create gaps where you're not sitting at any level of the abstraction hierarchy, you're just skipping parts of the system. That temptation will be greater for less experienced people, and for folks still learning the field. That's what I'm scared about.

aprilthird2021 5 days ago | parent | prev | next [-]

> We're just moving up the abstraction ladder, like we did with compilers.

We're not because you have to still check every outputted code. You didn't have to check every compilation step of a compiler. It was testable actual code, not non-deterministic output from English language input

elAhmo 5 days ago | parent | next [-]

I would bet a significant amount of money that many LLM users don’t check the output. And as tools improve, this will only increase.

The number of users actually checking the output of a compiler is nonexistent. You just trust it.

LLMs are moving that direction, whether we like it or not

Jensson 5 days ago | parent | next [-]

> The number of users actually checking the output of a compiler is nonexistent. You just trust it.

Quite a few who work on low level systems do this. I have done this a few times to debug build issues: this one time a single file suddenly made compile times go up by orders of magnitude, the compiler inlined a big sort procedure in an unrolled loop, so it added the sorting code hundreds of times over in a single function and created a gigantic binary that took ages to compile since it tried to optimize that giant function.

That is slow both in runtime and compile time, so I added a tag to not inline the sort there, and all the issues disappeared. The sort didn't have a tag to inline it, so the compiler just made an error here, it shouldn't have inlined such a large function in an unrolled loop.

aprilthird2021 5 days ago | parent | prev | next [-]

Of course they don't. That's why things like the NX breach happen. That's also why they don't learn anything when they use these tools and their brains stagnate.

__loam 5 days ago | parent | prev [-]

Well they're not improving that much anymore. That's why Sam Altman is out there saying it's a bubble.

CuriouslyC 5 days ago | parent [-]

This is incorrect, they are improving, you just don't understand how to measure and evaluate it.

The Chinese models are getting hyper efficient and really good at agentic tasks. They're going to overtake Claude as the agentic workhorses soon for sure, Anthropic is slow rolling their research and the Chinese labs are smoking. Speed/agentic ability don't show big headlines, but they really matter.

GPT5 might not impress you with its responses to pedestrian prompts, but it is a science/algorithm beast. I understand what Sam Altman was saying about how unnerving its responses can be, it can synthesize advanced experiments and pull in research from diverse areas to improve algorithms/optimize in a way that's far beyond the other LLMs. It's like having a myopic autistic savant postdoc to help me design experiments, I have to keep it on target/focused but the depth of its suggestions are pretty jaw dropping.

player1234 3 days ago | parent [-]

[flagged]

pessimizer 5 days ago | parent | prev [-]

> We're not because you have to still check every outputted code.

To me, that's what makes it an abstraction layer, rather than just a servant or an employee. You have to break your entire architecture into units small enough that you know you can coax the machine to output good code for. The AI can't be trusted as far as you can throw it, but the distance from you to how far you can throw is the abstraction layer.

An employee you can just tell to make it work, they'll kill themselves trying to do it, or be replaced if they don't; eventually something will work, and you'll take all the credit for it. AI is not experimenting, learning and growing, it stays stupid. The longer it thinks, the wronger it thinks. You deserve the credit (and the ridicule) for everything it does that you put your name on.

-----

edit: and this thread seems to think that you don't have to check what your high level abstraction is doing. That's probably why most programs run like crap. You can't expect something you do in e.g. python to do the most algorithmically sensible thing, even if you wrote the algorithm just like the textbook said. It may make weird choices (maybe optimal for the general case, but horrifically bad for yours) that mean that it's not really running your cute algorithm at all, or maybe your cute algorithm is being starved by another thread that you have no idea why it would be dependent on. It may have made correct choices when you started writing, then decided to make wrong choices after a minor patch version change.

To pretend perfection is a necessary condition for abstraction is not even somebody would say directly. Never. All we talk about is leaky abstractions.

Remember when GTA loading times, which (a counterfactual because we'll never know) probably decimated sales, playtime, and at least the marketing of the game, turned out to be because they were scanning some large, unnecessary json array (iirc) hundreds of times a second? That's probably a billion dollar mistake. Just because some function that was being blindly called was not ever reexamined, and because nobody profiled properly (i.e. checked the output.)

bdhcuidbebe 5 days ago | parent | prev | next [-]

> We're just moving up the abstraction ladder, like we did with compilers.

Got any studies about reasoning decline from using compilers to go with your claim?

__loam 5 days ago | parent | prev | next [-]

Leakiest abstraction of all time.

soraminazuki 5 days ago | parent | prev | next [-]

That's untrue, as many others have pointed out. Furthermore, compilers don't cause the kind of cognitive decline that's shown in the study.

bgwalter 5 days ago | parent | prev | next [-]

Compilers are sound abstractions. CompCert is literally a proven compiler.

LLMs make up whatever they feel like and are pretty bad at architecture as well.

MobiusHorizons 5 days ago | parent | prev | next [-]

At some point details _will_ matter. Usually when you don't want them to like during an outage, or at a very late stage blocker on an already delayed project. What you don't understand, you can't plan for.

rkagerer 4 days ago | parent | prev [-]

Good luck once you find out how impossible it is to maintain all that AI generated slop, over the long term.

defgeneric 5 days ago | parent | prev | next [-]

A lot of the boosterism seems to come from those who never had the ability in the first place, and never really will, but can now hack a demo together a little faster than before. But I'm mostly concerned about those going through school who don't even realize they're undermining themselves by reaching for AI so quickly.

NoGravitas 5 days ago | parent [-]

Perhaps more importantly, those boosters may never have had the ability to really model a problem in the first place, and didn't miss it, because muddling through worked well enough for them. Many such cases.

mooreds 5 days ago | parent | prev | next [-]

I've posted this Asimov short story before, but this comment inspires me to post it again.

http://employees.oneonta.edu/blechmjb/JBpages/m360/Professio...

"Somewhere there must be men and women with capacity for original thought."

He wrote that in 1957. 1957!

Terr_ 5 days ago | parent | next [-]

The first sentence made me expect Asimov's "The Feeling of Power", which--avoiding spoilers--regards the (over-)use of calculators by a society.

However, since I brought up calculators, I'd like to pre-emphasize something: They aren't analogous to today's LLMs. Most people don't offload their "what and why" executive decision-making to a calculator, calculators are orders of magnitude more trustworthy, and they don't emit plausible lies to cover their errors... Though that last does sound like another short-story premise.

zem 5 days ago | parent | prev | next [-]

perhaps my favourite of his short stories. there's also the more satirical "the feeling of power", which touches on the same theme https://ia800806.us.archive.org/20/items/TheFeelingOfPower/T...

ducttapecrown 5 days ago | parent | prev [-]

It turns out incremental thought is much better than original thought. I guess.

el_benhameen 5 days ago | parent | prev | next [-]

What about people who use the machines to augment their learning process? I find that being able to ask questions, particularly “dumb” questions that I don’t want to bother someone else with and niche questions that might not be answered well in the corpus, helps me better understand new concepts. If you just take the answers and move on, then sure, you’re going to have a bad time. But if you critically interrogate the answers and synthesize the information, I don’t see how this isn’t a _better_ era for people who want to develop a deep understanding of something.

aprilthird2021 5 days ago | parent | next [-]

> I don’t see how this isn’t a _better_ era for people who want to develop a deep understanding of something.

Same way a phone in your pocket gives you the world's compiled information available in a moment. But that's generally led to loneliness, isolation, social upheaval, polarization, and huge spread of wrong information.

If you can handle the negatives is a big if. Even the smartest of our professional class are addicted to doomscrolling these days. You think they will get the positives of AI use only and avoid the negatives?

prewett 5 days ago | parent [-]

You conflated two things. Availability to the world's information did not produce loneliness, etc., that was availability of social networks designed for engagement^Waddiction on that same device that did. You don't need to install FB et all on your phone.

aprilthird2021 5 days ago | parent [-]

Again, most people have FB on their phone. The vast majority of people will not be like snowflake HN anecdotes who claim to only get the positives and not the negatives of technology

Peritract 5 days ago | parent | prev | next [-]

There's a difference between learning and the perception/appearance of learning; teachers need to manage this in classrooms, but how do you manage it on your own?

el_benhameen 5 days ago | parent [-]

I don’t think this is a critique of llms so much as a general observation that actual deep learning is difficult.

I’ve read plenty of books (thanks, Dickens) where I looked at every word on every page but can recall very little of what they meant. You can look at the results from an llm and say “huh cool, I know that now) and do nothing to assimilate that knowledge, or you can think deeply about it and try to fit it in with everything else you know about the subject. The advantage here is that you can ask follow-up questions if something doesn’t click.

Peritract 5 days ago | parent [-]

It's not a critique of LLMs, but it is a reason to be wary of the claim that it really helps you learn.

We have the idea of 'tutorial hell' for programming (particularly gamedev), where people go through the motions of learning without actually progressing.

Until you go apply the skills and check, it's hard to evaluate the effectiveness of a learning method.

benterix 5 days ago | parent | prev [-]

I fully agree. Using LLMs for learning concepts is great if you combine it with actively using/testing your knowledge. But outsourcing your tasks to an LLM makes your inner muscles weaker.

keepamovin 4 days ago | parent | prev | next [-]

That reminds me of back when 12,500 years ago I could really shape a flint into a spear head in no time. Took me seasons to learn that skill from the Masters. Then Sky Gods came and taught people metal-fire. Nobody knows how to really chip and carve a point any more. They just cast them in moulds. We are seeing a literal split of skills in front of our eyes. People who know how to shape rocks deeply. And people who just know how to buy a metal tool with berries. I like berries as much as the next person, but give it a couple of years, they will be begging for flint tips back. I guarantee it. Those metal users will have no idea how to survive without a collective industry.

intended 4 days ago | parent [-]

Ah you are an old one. I was born later, and missed this phase of our history.

This reminds me of back 11,500 years ago, when people used to worship the sharper or bigger pieces of obsidian. They felt the biggest piece would win them the biggest hunt.

They forgot that the size of the tool mattered less than mastery of the hunt. Why the best hunter could take down a moving mattress with just the right words, string and a cliff.

kamaal 4 days ago | parent [-]

On a more serious note, here in India most millennials/boomers remember taking a Engineering Drawing class in second semester Engineering courses. It would involve using a real drafter, real calculations and making real drawings. Isometric projects and all.

I remember it took me like 4 nights of standing to make Isometric projections of a landing gear strut. I wondered if pursuing an Engineering degree was even worth it. Some of my classmates did quit, as years went by.

These days they just let you use CAD software to make things work, and based on what I hear kids just Copy paste files and are done with the assignments.

I mean we all have these Kids these days talk, but somethings do matter. Making all these tasks easy has allowed lots of people who would have other wise failed in the previous generations pass.

There is now an unemployment and low pay crisis all over India due to so many Engineers passing. Sometimes when I hear the newer generations complain about how hard it is to buy a home, or get a good job. Im inclined to think, perhaps hard things should have been kept hard for a reason.

intended 4 days ago | parent | next [-]

CAD vs Hand drawing isometrics spotlights the labor and effort, but then ends up overshadowing the role of effort in developing mental models.

The issue is that its a homework exercise. It's goal is to help you practice thinking about the problem. The Indian system is clear proof that passing an exam is easier, than actually mastering the subject being tested.

However, this is not the cause of the jobs crisis. That is simply because there are not enough jobs which can provide income and social mobility. That is why we needed growth.

Some of those ladders have been removed because automation has removed low-skill labor roles. Now we are going to remove entry level roles.

To put it in a crude manner - humanity's "job" today, seems to be "growing" a generation of humans over a 20 year time span, to prepare them for the world that we face.

This means building systems that deliver timely nutrition, education, stimulation, healthcare, and support.

We could do this better.

4 days ago | parent | prev [-]
[deleted]
rewgs 4 days ago | parent | prev | next [-]

100%. I'm _very_ hesitant to use LLMs _at all_ when programming, as the speed/learning trade-off so far hasn't proved itself to be worth it (especially given that it often _isn't_ faster on balance).

However, one place where LLMs have proved to be incredibly helpful is with build tools, dependency hell, etc. Lately I've been trying to update a decade-old Node/Electron project to modern packages and best-practices, and holy hell I simply was not making any meaningful progress until I turned to Claude.

The JS world simply moves too fast (especially back when this project was written) to make updating a project like that even remotely possible in any reasonable amount of time. I was tearing my hair out for days, but yesterday I was finally able to achieve what I was wanting in a few hours with Claude. I still had to work slowly and methodically, and Claude made more than a few stupid errors along the way, but dealing with the delicate version balancing that coincided with API and import/export style changes, all the changes in the bundler world, etc simply could not have been done without it. It's the first time that I was 100% glad I relied on an LLM and felt that it was precisely the right tool for the job at hand.

Eawrig05 4 days ago | parent | prev | next [-]

I think this is a fun problem: Say LLMs really do allow people to be 2X or 3X more productive. Then those people that understand concepts and rely on LLMs should be more successful and productive. But if those people slowly decline in ability they will become less successful in the long term. But how much societal damage is done in the meantime? Such as creating insecure software or laying off/not hiring junior developers.

stocksinsmocks 5 days ago | parent | prev | next [-]

(3) people who never had that capability.

Remember we aren’t all above average. You shouldn’t worry. Now that we have widespread literacy, nobody needs to and few even could recite Norse Sagas or the Illiad from memory. Basically nobody has useful skills for nomadic survival.

We’re about to move on to more interesting problems, and our collective abilities and motivation will still be stratified as it always has been and must be.

rf15 5 days ago | parent | next [-]

I don't think it's down to ability, I think it's down to the decision not to learn itself. And that scares me.

stocksinsmocks 5 days ago | parent [-]

Let them.

-Your Friend Mel (probably)

jplusequalt 5 days ago | parent | prev [-]

>We’re about to move on to more interesting problems, and our collective abilities and motivation will still be stratified as it always has been and must be

Who is "we"? There are more people out there in the world doing hard physical labor, or data entry, than there are software engineers.

skissane 5 days ago | parent | prev | next [-]

The way I’ve been coding recently: I often ask the AI to write the function for me, because lazy. And then I don’t like the code it wrote, so I rewrite it. But still it is less mental effort to rewrite “mostly correct but slightly ugly code” than write the whole thing from scratch

Also I even though I have Copilot extension in VSCode I rarely use it… because I find it interrupts my flow with constant useless or incorrect or unwanted suggestions. Instead, when I want AI help, I type out my request by hand into a Gemini gem which contains a prompt describing my preferred coding style - but even with extra guidance as to how I want it to write code, I still often don’t like what it does and end up rewriting it

senectus1 3 days ago | parent | prev | next [-]

I think there is a third split as well, those that use the tool to learn. No vibe coding, asking it questions to explain things to you. Then switching to manual tasks, cutting back to help decipher error messages etc.

Its like having a your own personal on tap tutor (for free in most cases!).

squigz 5 days ago | parent | prev | next [-]

The loss of expertise does not mean the loss of a need for expertise. We'll still need experts. We'll also still need people who are... not experts. To that point...

> For now the difference between these two populations is not that pronounced yet but give it a couple of years.

There are lots and lots of programmers and other IT people who make a living that I wouldn't say fall into your first bucket.

mrits 5 days ago | parent | prev | next [-]

I suppose the question is if we need to understand the concepts deeply. I'm not sure many of us did to begin with and we have shipped a lot of code.

MobiusHorizons 5 days ago | parent | next [-]

I see a lot of junior engineers, or more senior engineers who are outside their areas of expertise try to prioritize making progress without taking the time to understand. They will copy examples very closely, following best practices blindly, or get someone else to make the critical design decisions. This can get you surprisingly far, but it’s also dangerous because the further past your understanding you are operating, the more you might have to learn all at once in order to fix something when it breaks. Debugging challenges all your assumptions, and if you don’t have models of what the pieces are and how they interact, it’s incredibly hard to start building them when something is already broken. Even then, some engineers don’t learn the models when debugging and resort to defensive and superstitious behaviors based on whatever solution they stumbled on last time. This is a pretty normal part of the learning process, but some engineers don’t seem to get past this stage. Some don’t even want to.

tmcb 5 days ago | parent | prev [-]

Well, cargo cult programming is definitely a thing, and has been for a long time. It may “deliver value”, but it is not guaranteed. I believe entrepreneurs have an easier time having AI do the work for them because their value assessment framework is decoupled from code generation proper.

InfamousRece 5 days ago | parent | prev | next [-]

> slowly, slowly lose that capability.

Well, not so slowly it seems.

pengaru 5 days ago | parent | prev | next [-]

> and (2) people who outsource it to a machine and slowly, slowly lose that capability.

What I'm seeing is most of this group never really had the capability in the first place. These are the formerly unproductive slackers who now churn out GenAI slop with their name on it at an alarming rate.

noboostforyou 5 days ago | parent | prev | next [-]

And it's almost the same exact trend in skill atrophy we saw between millennial and gen z/alpha where most kids these days cannot do basic computer troubleshooting even if they've owned a computer/smartphone practically their entire lives.

segmondy 5 days ago | parent | prev | next [-]

And 3, people who are about to use AI to build a mental model quickly and understand the concept deeper

chaps 5 days ago | parent | prev | next [-]

  > (1) people who are able to understand the concepts deeply, build a mental model of it and implement them in code at any level, and (2) people who outsource it to a machine and slowly, slowly loose that capability.
...is it really only going to be these two? No middle ground, gradient, or possibly even a trichotomous variation of your split?

  > loose that capability
You mean "lose". ;)
benterix 5 days ago | parent [-]

Well, in real life you always have a gradient (or, more usually, a normal distribution) - actually it would be interesting to understand what the actual distribution is and how it changes with time.

chaps 5 days ago | parent [-]

It would! I'd be very interested in seeing the shape and outliers. Like, are there some folk who actually see improvements? Or who don't see any brain reprogramming at all? Do different methods of interacting with these systems have the same reprogramming effect? etc etc

andy99 5 days ago | parent | prev [-]

I think the bigger issue is outsourcing all or most thought to a LLM (data labeler really). Using tools you don't understand from first principles has always been commonplace and not really an issue. But not thinking anymore is new for most of us.

theptip 5 days ago | parent | prev | next [-]

Just beware the “real programmers hand-write assembly” fallacy. It was said that compilers would produce a generation of programmers unable to understand the workings of their programs. In some sense, this is true! But, almost nobody thinks it really matters for the actual project of building things.

If you stop thinking, then of course you will learn less.

If instead you think about the next level of abstraction up, then perhaps the details don’t always matter.

The whole problem with college is that there is no “next level up”, it’s a hand-curated sequence of ideas that have been demonstrated to induce some knowledge transfer. It’s not the same as starting a company and trying to build something, where freeing up your time will let you tackle bigger problems.

And of course this might not work for all PhDs; maybe learning the details is what matters in some fields - though with how specialized we’ve become, I could easily see this being a net win.

PhantomHour 5 days ago | parent | next [-]

> Just beware the “real programmers hand-write assembly” fallacy. It was said that compilers would produce a generation of programmers unable to understand the workings of their programs. In some sense, this is true! But, almost nobody thinks it really matters for the actual project of building things.

One of the other replies alludes to it, but I want to say it explicitly:

The key difference is that you can generally drill down to assembly, there is infinitely precise control to be had.

It'd be a giant pain in the ass, and not particularly fast, but if you want to invoke some assembly code in your Java, you can just do that. You want to see the JIT compiler's assembly? You can just do that. JIT Compiler acting up? Disable it entirely if you wish for more predictable & understandable execution of the code.

And while people used to higher level languages don't know the finer details of assembly or even C's memory management, they can incrementally learn. Assembly programming is hard, but it is still programming and the foundations you learn from other programming do help you there.

Yet AI is corrosive to those foundations.

theptip 5 days ago | parent | next [-]

I don't follow; you can read the code that your LLM produces as well.

It's way easier to drill down in this way than the bytecode/assembly vs. high-level language divide.

rstuart4133 5 days ago | parent | next [-]

> I don't follow; you can read the code that your LLM produces as well.

You can. You can also read the code a compiler produces perfectly well. In fact https://godbolt.org/ is a web site dedicated to programmers do just that. But ... how many programmers do you know who look at the assembler their compiler produces? In fact how many programmers do you know who understand the assembler?

Now lets extrapolate a bit. I've seen people say they've vibe coded a some program, yet they can't program. Did they read the code the LLM produced? Of course not. Did it matter? Apparently not for the program they produced.

Does the fact that they can vide program but not read code alter the types of programs they can produce? Of course it does. There limited to the sort of programs an LLM has seen before. Does that matter? Possibly not if the only programs they write are minor variations of what has been posted onto the internet already.

Now take two people, one who can only vide code, and another who knows how to program and understands computers at a very deep level. Ask yourself, who is going to be paid more? Is it the one who can only write programs that have been seen many times before by an LLM, or is it the one who can produce something truly new and novel?

yesbut 5 days ago | parent [-]

salary aside, the vibe coders are exposing themselves to increased cognitive decline which should be a strong enough incentive to avoid AI to begin with. maybe they already had a cognitive impairment before reading this MIT study and can't understand the risk.

PhantomHour 5 days ago | parent | prev [-]

The distinction is that you cannot make the LLM do the drilling. And the way these tools are designed is to train the user to use the LLM rather than their own brain, so they'll never learn it themselves.

A big problem with the "Just read the code" approach is that reading the code at the level deep enough to truly understand it is at minimum equally time-consuming than writing the code in the first place. (And in practice tends to be significantly worse) Anyone who claims they're reading the LLM's code output properly is on some level lying to them.

Human brains are simply bad at consistently monitoring output like that, especially if the output is consistently "good", especially especially when the errors appear to be "good" output on the surface level. This is universal across all fields and tools.

Cthulhu_ 3 days ago | parent | prev [-]

The other one is that code to assembly is exact and repeatable. Code will (well, should, lmao) behave the same way, every time. A prompt to generate code won't.

Some prompts / AI agents will write all the validations and security concerns when prompted to write an API endpoint (or whatever). Others may not, because you didn't specify it.

But if someone who doesn't actually know about security just trusts that the AI will just do it for you - like how a developer using framework might - you'll run into issues fast.

Jensson 5 days ago | parent | prev | next [-]

> Just beware the “real programmers hand-write assembly” fallacy

All previous programming abstractions kept correctness, a python program produce no less reliable results than a C program running the same algorithm, it just took more time.

LLM doesn't keep correctness, I can write a correct prompt and get incorrect results. Then you are no longer programming, you are a manager over a senior programmer suffering from extreme dementia so they forget what they were doing a few minutes ago and you try to convince him to write what you want before he forgets about that as well and restart the argument.

invalidptr 5 days ago | parent [-]

>All previous programming abstractions kept correctness

That's not strictly speaking true, since most (all?) high level languages have undefined behaviors, and their behavior varies between compilers/architectures in unexpected ways. We did lose a level of fidelity. It's still smaller than the loss of fidelity from LLMs but it is there.

pnt12 5 days ago | parent | next [-]

That's a bit pedantic: lots of python programs will work the same way in major OSs. If they don't, someone will likely try to debug the specific error and fix it. But LLMs frequently hallucinate in non deterministic ways.

Also, it seems like there's little chance for knowledge transfer. If I work with dictionaries in python all the timrle, eventually I'm better prepared to go under the hood and understand their implementation. If I'm prompting a LLM, what's the bridge from prompt engineering to software engineering? Not such direct connection, surely!

theptip 5 days ago | parent [-]

> That's a bit pedantic

It's a pedantic reply to a pedantic point :)

> If I'm prompting a LLM, what's the bridge from prompt engineering to software engineering?

A sibling also made this point, but I don't follow. You can still read the code.

If you don't know the syntax, you can ask the LLM to explain it to you. LLMs are great for knowledge transfer, if you're actually trying to learn something - and they are strongest in domains where you have an oracle to test your understanding, like code.

ashton314 5 days ago | parent | prev | next [-]

Undefined behavior does not violate correctness. Undefined behavior is just wiggle room for compiler engineers to not have to worry so much about certain edge cases.

"Correctness" must always be considered with respect to something else. If we take e.g. the C specification, then yes, there are plenty of compilers that are in almost all ways people will encounter correct according to that spec, UB and all. Yes, there are bugs but they are bugs and they can be fixed. The LLVM project has a very neat tool called Alive2 [1] that can verify optimization passes for correctness.

I think there's a very big gap between the kind of reliability we can expect from a deterministic, verified compiler and the approximating behavior of a probabilistic LLM.

[1]: https://github.com/AliveToolkit/alive2

ndsipa_pomu 5 days ago | parent | prev | next [-]

However, the undefined behaviours are specified and known about (or at least some people know about them). With LLMs, there's no way to know ahead of time that a particular prompt will lead to hallucinations.

sieabahlpark 5 days ago | parent | prev [-]

[dead]

nitwit005 5 days ago | parent | prev | next [-]

I'd caution that the people not familiar with working at the low level are often missing a bunch of associated knowledge which is useful in the day to day.

You run into Python/Javascript/etc programers who have no concept of what operations might execute quickly or slowly. There isn't a mental model of what the interpreter is doing.

We're often insulated from the problem because the older generation often used fairly low level languages on very limited computers, and remember lessons from that era. That's not true of younger developers.

Cthulhu_ 3 days ago | parent [-]

Depends on the operation tbh, and whether the one or the other is a micro-optimization or actually significant. It's better to focus on high-level optimizations, core architecture decisions and the right algorithms than on an operation level. Unless those operations are executed billions of times and the difference becomes statistically significant, of course.

nitwit005 3 days ago | parent [-]

You're kind of side stepping the issue. The problem is, when it does matter, they won't know how to make things performant.

daemin 5 days ago | parent | prev | next [-]

I would agree with the statement that you don't need to know or write in assembly to build programs, but what you end up with is usually slow and inefficient.

Having curiosity to examine the platform that your software is running on and taking a look into what the compilers generate is a skill worth having. Even if you never write raw assembly yourself, being able to see what the compiler generated and how data is laid out does matter. This then helps you make better decisions about what patterns of code to use in your higher level language.

Cthulhu_ 3 days ago | parent | prev | next [-]

I think the real fear is that AI will generate code that is subtly broken, but people will lose the skills to understand why it's broken; a fear that it's too much abstraction. And the other difference is that code to assembly is a 'hard' conversion, extensively tested, verified, predictable, etc, while prompt-to-code is a 'loose' conversion, where repeating the same prompt in the same agent will cause different outcomes every time.

MobiusHorizons 5 days ago | parent | prev [-]

I have never needed to write assembly in a professional context because of the changes you describe, but this does not mean I don't have a need to understand what is going on at that level of abstraction. I _have_ had occasion to look at disassembly in the process of debugging before, and it was important that I was not completely lost when I had to do this. You don't have to do something all the time for the capacity to do something to be useful. At the end of the day engineering is about choosing the correct tradeoffs given constraints, and in a professional environment, cost is almost always one of the constraints.

hintymad 5 days ago | parent | prev | next [-]

This is in a way like doing math. I can read a math book all day and even appreciate the ideas in the book, but I'd practically learn little if I don't actually attempt to work out examples for the definitions, the theorems, and some exercises in the book.

TheNewsIsHere 5 days ago | parent [-]

I fall into this trap more than I’d care to admit.

I love learning by reading, to the point that I’ll read the available documentation for something before I decide to use it. This consumes a lot of time, and there’s a tradeoff.

Eventually if I do use the thing, I’m well suited to learning it quickly because I know where to go when I get stuck.

But by the same token I read a lot of documentation I never again need to use. Sometimes it’s useful for learning about how others have done things.

Cthulhu_ 3 days ago | parent [-]

I'm the same, but thing is, 99% of the things I read about (on e.g. HN) are just... not important. I don't use them in my daily life.

But I do have a very large knowledge base of small tidbits of information, so if I do need to ever go in-depth, I know where/how to find it.

...not that I do of course, I struggle with my long term attention span, I can't read documentation front to back and for twenty odd years now have just googled for the tidbit I needed and skipped the rest.

bdelmas 5 days ago | parent | prev | next [-]

Yes in data science there is say: “there is no free lunch”. With ChatGPT and others becoming so prevalent even at PhD level people that will work hard and avoid to use these tools will be more and more seen as magicians. I already see this in coding where people can’t code medium to hard things and their intuitions like you said is wacky. It’s not the imposter syndrome anymore it’s people not being able to get their job done without some AI involved.

What I do personally is for every subject that matters to me I take the time to first think about it. To explore ideas, concepts, etc… and answer questions that would ask to ChatGPT. Only once I get a good idea I start to ask chapgpt about it.

geye1234 5 days ago | parent | prev | next [-]

Interesting, thanks. Do you mean he would write the code out by hand on pen and paper? That has often struck me as a very good way of understanding things (granted, I don't code for my job).

Similar thing in the historian's profession (which I also don't do for my job but have some knowledge of). Historians who spend all day immersed in physical archives tend, over time, to be great at synthesizing ideas and building up an intuition about their subject. But those who just Google for quotes and documents on whatever they want to write about tend to have more a static and crude view of their topic; they are less likely to consider things from different angles, or see how one things affects another, or see the same phenomenon arising in different ways; they are more likely to become monomaniacal (exaggerated word but it gets the point across) about their own thesis.

martingalex2 5 days ago | parent [-]

Assuming this observation applies generally, give one point to the embodiment crowd.

zingababba 5 days ago | parent | prev | next [-]

I just decided to take a break from LLMs for coding assistance a couple days ago. Feels really good. It's funny how fast I am when I just understand the code myself instead of not understanding it and proooompting.

marcofloriano 5 days ago | parent [-]

Same here, i just finished my subscription at ChatGPT, i feel free again.

WalterBright 5 days ago | parent | prev | next [-]

I learned this in college long before AI. If I didn't do the work to solve the homework problems, I didn't learn the material, no matter how much I imagined I understood it.

scarface_74 5 days ago | parent | prev | next [-]

I work in cloud consulting specializing in application development. But most of the time when an assignment is to produce code instead of leading a project or doing strategy assessments, it’s to turn around a quick proof of concept that requires a broad set of skills - infrastructure, “DevOps”, backend development and ETL type jobs where the goal is to teach the client or to get them to sign off on a larger project where we will need to bring in a team.

For my last two projects, I didn’t write a single line of code by hand. But I refuse to use agents and I build up an implementation piece by piece via prompting to make sure I have the abstractions I want and reusable libraries.

I take no joy in coding anymore and I’ve been doing it for fourty years. I like building systems and solving business problems.

I’m not however disagreeing with you that LLMs will make your development skill atrophy, I’m seeing it in real time at 51. But between my customer facing work and supporting sales and cat herding, I don’t have time to sit around and write for loops and I’m damn sure not going to do side projects outside of work. Besides, companies aren’t willing to pay my company’s bill rates for me as a staff consultant to spend a lot of time coding.

I hopefully can take solace in the fact that studies also show that learning a second language strengthens the brain and I’m learning Spanish and my wife and I plan to spend a couple of months in the winter every year in a Central American Spanish speaking country.

We have already done the digital nomad thing across the US for a year until late 2023 so we are experienced with it and spent a month in Mexico.

r_singh 3 days ago | parent | prev | next [-]

I doubt anyone who cannot get their hands dirty with code can gain any value from prompt engineering or using LLMs...

Code with LLMs gets large pretty quickly and would have anyone who isn't practiced spinning their head pretty soon, don't you think?

thisisit 5 days ago | parent | prev | next [-]

This seems like the age old discussion of how does new technology changes our lives and makes us "lazy" or "lack of learning".

Before the advent of smartphones people needed to remember phone numbers of their loved ones and maybe do some small calculations on the fly. Now people sometimes don't even remember their own numbers and have it saved on their phones.

Now some might want to debate how smartphones are different from LLMs and it is not the same. But we have to remember for better or worse LLM adoption has been fast and it has become consumer technology. That is the area being discussed in the article. People using it to write essays. And those who might be using the label of "prompt bros" might be missing the full picture. There are people, however small, being helped by LLMs as there were people helped by smartphones.

This is by no means a defense for using LLMs for learning tasks. If you write code by yourself, you learn coding. If you write your essays yourself, you learn how to make a solid points.

marcofloriano 5 days ago | parent [-]

It's not the same with LLMs. What the study finds out is actually much more serious. When you use a phone or a calculator, you don't lose cognitive faculties. But when you delegate the thinking process to an LLM, your Brain gets phisically changed, witch leads to a cognitive damage. It's a completely different league.

fragmede 5 days ago | parent [-]

> When you use a phone or a calculator, you don't lose cognitive faculties.

Of course you do. I used to be able to multiply two two-digit numbers in my head. Now, my brain freezes and I reach for a calculator.

crinkly 5 days ago | parent | prev | next [-]

Good to hear. I will add that not everyone who writes a paper expects anyone to read a paper with that level of diligence and it can lead to some interesting outcomes for the paper authors over time.

Keep up the good work is all I can say!

giancarlostoro 5 days ago | parent | prev | next [-]

> These days, I'm fairly senior and don't touch code much anymore but I find it really really instructive to get my hands dirty and struggle through new code and ideas. I think the "just tweak the prompts bro" people are missing out on learning.

If you just use prompts and don't actually read the output, and figure out why it worked, and why it works, you will never get better. But if you take the time to understand why it works, you will be better for it, and might not even bother asking next time.

I've said it before, but when I first started using Firefox w/ autocorrect in like 2005, I made it a point to learn to spell from it, so that over time I would make less typos. English is my second language, so its always been an uphill battle for me despite having a native American English accent. Autocorrect on Firefox helped me tremendously.

I can use LLMs to plunge into things I'm afraid of trying out due to impostor syndrome and get more done sooner and learn on the way there. I think the key thing is to use tools correctly.

AI is like the limitless drug to a degree, you have an insane fountain of knowledge at your fingertips, you just need to use it wisely and learn from it.

amlib 5 days ago | parent | next [-]

If that held true, than reading lots of source code from random FOSS projects would make you into an amazing coder. But clearly that's not enough to internalize and learn all that knowledge, you need to experiment with it, see it running, debug it, write some, extend it, fix bugs and so on. Just reading it with very little context for the rest of the project is a recipe for mediocrity.

marcofloriano 5 days ago | parent | prev [-]

It's different to read and understand a prompt and actually produce the code. It's a different level of cognition.

vonneumannstan 5 days ago | parent | prev [-]

>I think the "just tweak the prompts bro" people are missing out on learning.

Alternatively they're just learning/building intuition for something else. The level of abstraction is moving upwards. I don't know why people don't seem to grok that the level of the current models is the floor, not the ceiling. Despite the naysayers like Gary Marcus, there is in fact no sign of scaling or progress slowing down at all on AI capabilities. So it might be that if there is any value in human labor left in the future it will be in being able to get AI models to do what you want correctly.

Brian_K_White 5 days ago | parent | next [-]

Wishful, self-serving, and beside the point. The primary argument here is not about the capability of the ai.

I think the same effect has been around forever in the form of every boss/manager/ceo/rando-divorcee-or-child-with-money using employees to do their thinking as a current information-handling worker or student using an ai to do their thinking.

vonneumannstan 5 days ago | parent [-]

>Wishful, self-serving, and beside the point. The primary argument here is not about the capability of the ai.

"Alternatively they're just learning/building intuition for something else."

Reading comprehension is hard.

benterix 5 days ago | parent | prev | next [-]

That would be true if several conditions were fulfilled, starting with LLMs being actually to do their tasks properly, which they still very much struggle with which basically defeats the premise of moving up an abstraction layer if you have to constantly check and correct the lower layer.

vonneumannstan 5 days ago | parent [-]

[flagged]

lazide 5 days ago | parent | prev | next [-]

I remember this exact discussion (and exact situation) with WYSIWYG UI design tools.

They were still useful, and did solve a significant portion of user problems.

They also created even more problems, and no one really went out of work long term because of them.

asveikau 5 days ago | parent | prev | next [-]

This reads to me as extremely defensive.

vonneumannstan 5 days ago | parent [-]

It's not but ok. Just responding to another version of "This generation is screwed" that has been happening literally since Socrates.

jplusequalt 5 days ago | parent | next [-]

There has been a growing amount of evidence for years that modern technology is not without it's side effects (mental health issues due to social media use, destruction of attention spans among the youth due to cell phone use, erosion of societal discourse and straight up political manipulation, and now we're seeing impacts to cognitive ability from LLMs).

thegrim33 5 days ago | parent | prev [-]

So .. people in the past were supposedly wrong about the next generation being "screwed", and therefore we all know that makes it completely impossible for any new generation at any point in history to ever be in any way worse or more screwed than previous generations. Because some people in the past were supposedly incorrect with similar assertions.

jimkri 5 days ago | parent | prev | next [-]

I don't think Gary Marcus is necessarily a naysayer; I take it that he is trying to get people to be mindful of the current AI tooling and its capabilities, and that there is more to do before we say it is what it is being marketed as. Like, GPT5 seems to be an additional feature layer of game theory examples. Check LinkedIn for how people think it behaves, and you can see patterns. But they market it as much more.

vonneumannstan 5 days ago | parent [-]

>I don't think Gary Marcus is necessarily a naysayer

Oh come on. He is by far the most well known AI poo-poo'er and it's not even close. He built his entire brand on it once he realized his own research was totally irrelevant.

KoolKat23 5 days ago | parent | prev | next [-]

Agree with this.

I mean the guy assembling a thingymajig in the factory, after a few years, can put it together with his hands 10x faster than the actual thingymajig designer. He'll tell you apply some more glue here and less glue there (it's probably slightly better, but immaterial really). However, he probably couldn't tell you what the fault tolerance of the item is, the designer can do that. We still outsource manufacturing to the guy in the factory regardless.

We just have to get better at identifying risks with using the LLMs doing the grunt work and get better in mitigating them. As you say, abstracted.

codyb 5 days ago | parent | prev | next [-]

Really? No signs of slowing down?

A year or two ago when LLMs popped on the scene my coworkers would say "Look at how great this is, I can generate test cases".

Now my coworkers are saying "I can still generate test cases! And if I'm _really pacificcccc_, I can get it to generate small functions too!".

It seems to have slowed down considerably, but maybe that's just me.

lazide 5 days ago | parent | next [-]

At the beginning, it’s easy to extrapolate ‘magic’ to ‘can do everything’.

Eventually, it stops being magic and the thinking changes - and we start to see the pros and cons, and see the gaps.

A lot of people are still in the ‘magic’ phase.

vonneumannstan 5 days ago | parent | prev | next [-]

Yeah NGL if you can't get a model that is top 1% in Competitive Coding and Gold level medal IMO tier to do anything useful thats just an indictment on your skill level with them.

tuesdaynight 5 days ago | parent | prev [-]

Sorry for the bluntness, but you sound like you have a lot of opinions about LLM performance for someone who says that doesn't use them. It's okay if you are against them, but if have used them 3 years ago, you have no idea if there were improvements or not.

Jensson 5 days ago | parent | next [-]

You can see what people built with LLM 3 years ago and what they build with LLM today and compare the two.

That is a very natural and efficient way to do it, and also more reliable than using your own experience since you are just a single data point with feelings.

You don't have to drive a car to see where cars were 20 years ago, see where cars are today, and say: "it doesn't look like cars will start flying anytime soon".

tuesdaynight 4 days ago | parent [-]

Fair, but what about saying that cars didn't improve in 20 years (the last time you drove one) because they are still not flying?

Peritract 5 days ago | parent | prev | next [-]

> you sound like you have a lot of opinions about LLM performance for someone who says that doesn't use them

It's not reasonable to treat only opinions that you agree with as valid.

Some people don't use LLMs because they are familiar with them.

tuesdaynight 4 days ago | parent [-]

My point is that this person IS NOT familiar with them, while feeling confident enough to say that these tools didn't improve with time. I'm not saying that their opinions are invalid, just highlighting the lacking of experience with the current state of these AI coding agents.

vonneumannstan 5 days ago | parent | prev [-]

"It can't do 9.9-9.11 or count the number of r's in strawberry!"

lol

Nevermark 5 days ago | parent [-]

Since models are given tokens, not letters, to process, the famous issues with counting letters is not indicative of incompetence. They are just sub-sensory for the model.

None of us can reliably count the e’s as someone talks to us, either.

hatefulmoron 5 days ago | parent [-]

It does say something that the models simultaneously:

a) "know" that they're not able to do it for the reason you've outlined (as in, you can ask about the limitations of LLMs for counting letters in words)

b) still blindly engage with the query and get the wrong answer, with no disclaimer or commentary.

If you asked me how many atoms there are in a chair, I wouldn't just give you a large natural number with no commentary.

Nevermark 4 days ago | parent [-]

That is interesting.

A factor might be that they are trained to behave like people who can see letters.

During training they have no ability to not comply, and during inference they have no ability to choose to operate differently than during training.

A pre-prompt or co-prompt that requested they only answer questions about sub-token information if they believed they actually had reason to know the answer, would be a better test.

hatefulmoron 3 days ago | parent [-]

Your prompting suggestion would certainly make them much better at this task, I would think.

I think it just points to the fact that LLMs have no "sense of self". They have no real knowledge or understanding of what they know or what they don't know. LLMs will not even reliably play the character of a machine assistant: run them long enough and they will play the character of a human being with a physical body[0]. All this points to the fact that "Claude the LLM" is just the mask that it will produce tokens using at first.

The "count the number of 'r's in strawberry" test seems to just be the easiest/fastest way to watch the mask slip. Just like that, they're mindlessly acting like a human.

[0]: https://www.anthropic.com/research/project-vend-1

fatata123 5 days ago | parent | prev | next [-]

LLMs are plateauing, and you’re in denial.

vonneumannstan 5 days ago | parent [-]

Show me one metric they are plateauing on.

pigpag 5 days ago | parent | prev [-]

[dead]