4 ms·
I don't understand how OP thinks that being oblivious how anything work underneath is a good thing. There is a threshold of abstraction to which you must know h
by metaltyphoon 9mo ago
I don't understand how OP thinks that being oblivious how anything work underneath is a good thing. There is a threshold of abstraction to which you must know how it works to effectively fix it when it breaks.
- jedberg 9mo agoYou can be a super productive Python coder without any clue how assembly works. Vibe coding is just one more level of abstraction. Just like how we still need assembly and C programmers for the most critical use cases, we'll still need Python and Golang programmers for things that need to be more efficient than what was vibe coded. But do you really need your $whatever to be super efficient, or is it good enough if it just works?
- kshri24 9mo agoOne is deterministic the other is not. I leave it to you to determine which is which in this scenario.
- afro88 9mo agoHumans writing code are also non deterministic. When you vibe code you're basically a product owner / manager. Vibe coding isn't a higher level programming language, it's an abstraction over a software engineer / engineering team.
- kshri24 9mo ago> Humans writing code are also non deterministic That's not what determinism means though. A human coding something, irrespective of whether the code is right or wrong, is deterministic. We have a well defined cause and effect pathway. If I write bad code, I will have a bug - deterministic. If I write good code, my code compiles - still deterministic. If the coder is sick, he can't write code - deterministic again. You can determine the cause from the effect. Every behavior in the physical World has a cause and effect chain. On the other hand, you cannot determine why a LLM hallucinated. There is no way to retrace the path taken from input parameters to generated output. At least as of now. Maybe it will change in the future where we have tools that can retrace the path taken.
- afro88 9mo agoYou misunderstand. A coder will write different code for the same problem each time unless they have the solution 100% memorised. And even then a huge number of factors can influence them not being able to remember 100% of the memorised code, or opt for different variations. People are inherently nondeterministic. The code they (and AI) writes, once written, executes deterministically.
- bdangubic 9mo ago> The code they (and AI) writes, once written, executes deterministically. very rarely :)
- kshri24 9mo ago> A coder will write... or opt for different variations. Agreed. > People are inherently nondeterministic. We are getting into the realm of philosophy here. I, for one, believe in the idea of living organisms having no free will (or limited will to be more precise. but can also go so far as to say "dependent will"). So one can philosophically explain that people are deterministic, via concepts of Karma and rebirth. Of course none of this can be proven. So your argument can be true too. > The code they (and AI) writes, once written, executes deterministically. Yes. Execution is deterministic. I am however talking only about determinism in terms of being able to know the entire path: input to output. Not just the outputs characteristic (which is always going to be deterministic). It is the path from input to output that is not deterministic due to presence of a black box - the model.
- imiric 9mo agoI mostly agree with you, but I see what afro88 is saying as well. If you consider a human programmer as a "black box", in the sense that you feed it a set of inputs—the problem that needs to be solved, vague requirements, etc.—and expect a functioning program as output that solves the problem, then that process is similarly nondeterministic as an LLM. Ensuring that the process is reliable in both scenarios boils down to creating detailed specifications, removing ambiguity, and iterating on the product until the acceptance tests pass. Where I think there is a disconnect is that humans are far more capable at producing reliable software given a fuzzy set of inputs. First of all, they have an understanding of human psychology, and can actually reason about semantics in ways that a pattern matching and token generation tool cannot. And in the best case scenario of experienced programmers, they have an intuitive grasp of the problem domain, and know how to resolve ambiguities in meatspace. LLMs at their current stage can at best approximate these capabilities by integrating with other systems and data sources, so their nondeterminism is a much bigger problem. We can hope that the technology will continue to improve, as it clearly has in the past few years, but that progress is not guaranteed.
- jfreds 9mo agoThis is true. What are the implications of that?
- pqtyw 9mo agoPerhaps there is no need to actually understand assembly, but if you don't understand certain basic concepts actually deploying any software you wrote to production would be a lottery with some rather poor prizes. Regardless of how "productive" you were.
- ben_w 9mo agoSomebody needs to understand, to the standard of "well enough". The investors who paid for the CEO who hired your project manager to hire you to figure that out, didn't. I think in this analogy, vibe coders are project managers, who may indeed still benefit from understanding computers, but when they don't the odds aren't anywhere near as poor as a lottery. Ignorance still blows up in people's faces. I'd say the analogy here with humans would be a stereotypical PHB who can't tell what support the dev needs to do their job and then puts them on a PIP the moment any unclear requirement blows up in anyone's face.
- hdgvhicv 9mo agoI’m vaguely aware that transistors are like electronic switches and if I serve my memory I could build and and/or/not gate I have no idea how an i386 works, let alone a modern cpu. Sure there are registers and different levels of cache before you get to memory. My lack of knowledge of all this doesn’t prevent me from creating useful programs using higher abstraction layers like c.