7 ms·
Apparently it's not obvious to everyone, but if you can't write code, you can't review it. I do know people, and companies, that says: "So what, we ask Claude t
by mrweasel 3mo ago
Apparently it's not obvious to everyone, but if you can't write code, you can't review it. I do know people, and companies, that says: "So what, we ask Claude to write the code, Codex will then do the review". The thing that then strikes me as odd is that they still ask for the code in Python, Java, or some other high level language.... Why? Just ask Claude to dump out assembly, or a compiled binary, but no, they don't trust the LLM that much. They still want to be able to read the code. So they need developers that can read, debug and reason about the code, yet they don't want to give them the training that's required to do this?
- ryandvm 3mo agoThey don't have Claude write assembly because there is no training corpus on people making CRUD apps in assembly. I'm as hateful of LLMs hollowing out the job market as the next guy, but the reality is the frontier LLMs are really good at writing anything that's been done and documented on the Internet a million times and unfortunately most of what software devs have been doing the last couple decades is shitting out cookie cutter CRUD apps. I have my doubts about whether the state of the industry is going to advance as long as we're having LLMs do all the creation, but that's another diatribe.
- deadbabe 3mo agoWhat's there to advance to? Without a revolutionary new platform to build apps on that no one has ever developed for before, there is basically no reason to believe there is any software left that has some business or economic value that hasn't already been written.
- devin 3mo agoIf you think we're "done", you have no imagination.
- deadbabe 3mo agoWhat are you gonna make? Yet another CRUD app? An API subscription? A game? A mobile app? We’ve created software for virtually every place we can put software. There’s nothing new. It’s like bridges. We’ve seen all the ways bridges can be built by now. There’s nothing new left to discover.
- whattheheckheck 3mo agoWhy did we even need bridges in the first place
- LPisGood 3mo agoWhen Gutenberg invented the printing press, he could not have predicted the teleprompter. Now that code is easy to generate, it’s plausible that we will use much, much more of it than before. It’s also a bit ironic to imagine that we’re at the end of new software ideas on a site owned(?) by YC.
- deadbabe 3mo agoit's also plausible that with an ability to generate as much code as we want with little effort, we will quickly discover how much code we actually need, and then plateau at that point. Personally, I think we've already reached that point. Even at YC, I have not really seen any startup doing anything interesting where their main value prop is enabled by new proprietary code that does stuff no one else can already do.
- walt_grata 3mo agoWe have more code than we need. Proof for me is every "smart" device that worked better before we put a computer in it.
- deadbabe 3mo agoExactly, this is the true problem with the world today: too much code.
- nektro 3mo agothat you don't see this as inevitable worries me dearly
- ryandvm 3mo agoThis gives "let's close the patent office"
- aleph_minus_one 3mo ago> This gives "let's close the patent office" This is a really good idea for completely different reasons. :-)
- asdff 3mo agoThis is probably true in the consumer facing software space. But in business, industry, and academia, often there are novel data generated by some new or refined process. And this needs new software that correctly handles both the nature of these new data and meet the goals the data is collected to advance. This sort of software is also usually poorly represented in training sets, if represented at all.
- bryanrasmussen 3mo agothis implies that the only thing that can change what needs doing are technology platforms, which about 6000 years of human civilization would indicate is not the case.
- lp4v4n 3mo ago>They don't have Claude write assembly because there is no training corpus on people making CRUD apps in assembly. I'm disputing this. You can have a training corpus in assembly as big as any other language: just feed the compiled result(in assembly) of the CRUD apps to the LLMs.
- cactusplant7374 3mo agoIt's still possible to make CRUD apps in assembly with an AI agent but it would be a research project.
- Zambyte 3mo agoBy "research project" you you mean by people who understand assembly? Because then we're back to where we started.
- cactusplant7374 3mo agoI mean for the agent. They are good enough to conduct research now.
- dehrmann 3mo ago> They don't have Claude write assembly because there is no training corpus on people making CRUD apps in assembly. I suspect that despite its translation abilities, this is true, but I'd like to see it do things in languages that are more or less appropriate for tasks to see how much the training corpus matters vs. its ability to translate. Assembly is a bit of an extreme example because you're either writing it as close to C as possible (C is essentially portable assembly) or you're writing complex, unreviewable code that happens to work. And who know if it's been trained on register allocation, or resorts to doing everything on the stack because it works.
- LtWorf 3mo ago> C is essentially portable assembly Not really, assembly shows you what the machine instructions actually are. In C you have loops, functions structs. All things that make no sense in assembly.
- deleted 3mo ago[deleted]
- gnabgib 3mo agoLoops (conditional JMPS - JE/JNE/JZ/JNZ/JB/JNB.. and a dozen others) and functions (CALL, RET) exist in assembly. Goto is there too (all JMPs). C makes assembly sense.
- fragmede 3mo agoOh that's an interesting thought. Goto's are considered harmful, because holy hell as a human trying to understand and reason about code, the spaghettifcation if someone else used gotos all over the place and I have to reconstruct their thought process just doesn't sound like fun. But if we're no longer writing code by hand (which, I gotta be honest, I'm using AI to write a lot of code for me these days), then does that still matter? If a human isn't going to have to understand the code, can we get more performance out of existing systems by considering goto's useful?
- ekidd 3mo agoClaude is perfectly capable of writing assembly. Here's a working (basic) Prolog interpreter that Claude Fable 5 wrote in WebAssembly in 61 minutes for $16.75 in token costs: https://github.com/emk/fable-wasm-prolog/blob/main/prolog.wat https://github.com/emk/fable-wasm-prolog/blob/main/prolog.wa... WebAssembly is slightly easier than real assembly, but here Fable used WASM GC extensions, which are poorly documented and not yet super common. Fable didn't even need to debug it; I believe essentially all the assembly worked correctly on the first try. I have feelings about this, but I'm not pretending it isn't real.
- dude250711 3mo agoThe guys with unlimited Fable/Mythos access are for some reason incapable of producing a flawless Claude Code app built entirely in native assemblies.
- bflesch 3mo agoThey're so busy winning that they don't care about improving their own web apps ;)
- byzantinegene 3mo agothey use React to render their TUI :)
- cpursley 3mo agoYou’re getting down voted, but it would really be nice if they rebuilt the thing in Rust or something like that. I’m just tired of these enormous JavaScript bundles pretending to be desktop apps. Especially when we need to squeeze as much juice as possible out of our machines.
- viccis 3mo agoYeah I had it remake my favorite TI-89 graphing calculator game in Python and it one shotted it perfectly.
- avador 3mo agoThere’s a very real dichotomy at play here. Position 0: humans depend upon AI. Position 1: AIs depend upon humans. At first blush, it seems achingly obvious that position 1 is true, whilst position 0 is a false play by con artists. Well, at first blush I agree! But first blushes are notorious for being famous last words (blushes). You see, we always knew that the tool shapes the hand. That is, as we use computational (discrete) devices, we ourselves become more computational, discrete. But what we did not anticipate is that the tool would fool others as the ACTUAL HAND. I am so fooled. Daily. My friends. Does technique encompass being? Answer me this!
- Salgat 3mo agoLLMs are perfectly capable of translating between programming languages at this point. The main bottleneck for them is logic, not language.
- galaxyLogic 3mo agoAnd the amount of logic needed to understand code, including how to fix it or modify it further depends on how complicated the code-structure is. I wonder about this: Does LLM write better code in a better language? Humans often have more difficulty fixing existing code than reqriting it from scratch, and un-structured un-constrained code would be a big reason for that. But maybe it doesn't apply to an LLM if it always rewrites all code from scratch?
- t43562 3mo ago> I wonder about this: Does LLM write better code in a better language? The whole point is to rewrite everything in a language you don't understand and then ignore whether it's better because you can't tell. That language, of course, must be Rust.
- coderatlarge 3mo agocouldn’t the frontier labs simply compile their existing source code training data and have an assembly corpus to train on?
- wqaatwt 3mo agoLLMs are designed to imitate humans not compilers. Hardly anyone is capable of writing modern optimized Assembly code by hand outside of a few snippets here and there (not in a reasonable amount of time at least)
- dana321 3mo agoI have a few personal projects, i let codex do all the code - i do the thinking and testing. One time, something didn't work as expected - its the first time it happened with this project. I read through the section of code and it was perfectly readable and well-written. Turned out a plugin wasn't effecting the audio, so i just got it to pad some blank audio onto the beginning before processing it, then remove it at the end of the process. That fixed the issue, there was nothing wrong with the code but my ability to think laterally is what made it work. We're getting to the stage where you can just ask them to write code and they will do what you want, and it writes good code. Its up to you to test everything beyond the internal tests it writes.
- softwaredoug 3mo agoI’m finding it all boils down to cognitive differences. Some people find code easier to read than the English description. It’s more precise and many experienced devs can scan it and know what’s happening Many other people can’t read code. Or they find English easier to read than code. Thats not a knock on anyone. Maybe the latter will rule the world because the former focuses too much on irrelevant details. Or maybe me there are just different types of problems that need differing levels of attention to detail.
- rawling 3mo agoSure, read the English description. How can you be sure that's what the code the LLM wrote actually does?
- deleted 3mo ago[deleted]
- dgroshev 3mo agoSome heart surgeons might only be able to explain to the nurses their ideas on how to carry out the surgery, but are they still heart surgeons?
- pythonplayer123 3mo agoI wonder how LLMs could be compared to compilers. I personally think the nondeterministic behavior of LLMs are the biggest distinguisher.
- t43562 3mo agoThe code tells you HOW, the English should be telling you WHY. Both are usually needed IMO. Even a tiny bit of "why" can be extremely helpful to understanding in my experience. I don't want generated AI garbage that merely describes the code - I want the reason the whole thing exists and what was wanted by the person who wrote it.
- embedding-shape 3mo ago
- BerislavLopac 3mo ago> but no, they don't trust the LLM that much Yet...
- mochapwns 3mo agoPretty sure Casey Muratori and Demetri Spanos cover why in one of their videos online. Less about “trusting” the llm and more about how complex it is to work with binaries due to machine code being different per machine and hard to interpret the context of the code as well as offsets. In that sense because high level languages come with the ability to add context to what code does. It’s like the understanding a human has when given decompiled C code ghidra gives you vs C source code a developer wrote. Also the compiler helps the llm write “compiled / working code”, if it just spat out machine code it most likely not even run at all. But yea generally if you can’t write code at all, reviewing it is even harder.
- notnullorvoid 3mo agoNo defense for not writing or reading code if want to call yourself a software engineer or programmer. However I do think there is reason to use Java or Python (as much as I loathe both) they have GC, and it'd be a lot easier for AI to fuck up memory safety in something like assembly or C.
- hirvi74 3mo agoI concur. One has to program computers to be a computer programmer. If one just prompts LLMs, they are a software prompter. I think both can fit under the title of a software developer or perhaps even software engineer.
- whattheheckheck 3mo agoAsk the ai what the game theory is for training employees... the Nash equilibrium is under training and self funded certification/training for devs in low trust environments.
- lelanthran 3mo ago> Apparently it's not obvious to everyone, but if you can't write code, you can't review it. There's more to it than that: writing is thinking. If you stop writing code, you aren't thinking anymore. Many argue that they're now thinking at a higher level (maybe they weren't before?), but, guess what, that high-level design can be done better by the LLM than by you anyway. It's only temporary.
- enraged_camel 3mo ago>> There's more to it than that: writing is thinking. If you stop writing code, you aren't thinking anymore. Humans have been thinking long before writing was invented. Why is code special?
- lelanthran 3mo ago> Humans have been thinking long before writing was invented. And look how poorly they did it until they invented writing. > Why is code special? You don't get better at thinking without doing. With code the "doing" part is writing. In your view, it is reasonable to expect HS students to thoroughly read a book on trigonometry and then ace the exam? We know, from experience, that only by doing problems does the student actually learn. We also know that when you stop doing problems the facility atrophys. Why is code different?
- fuzztester 3mo ago>>Humans have been thinking long before writing was invented. >And look how poorly they did it until they invented writing. Yeah, look how poorly they did it until they invented writing. [peers into the dim ancient past] Sorry, my time-machine spectacles are on leave or on strike today. And congrats on being a multi-millen(ium)arian, and a mind reader, who could both 1) exist so far back in the past, and 2) be able to know the thoughts of people who didn't write them down, because they didn't know writing. /s
- cindyllm 3mo ago
- dzonga 3mo agojust to add to your excellent observation by writing code by hand - you're the author & editor at the same time. if you're skilled enough - you quickly get to the desired state vs the llm which while might produce a lot of code - but it likely won't give the end state you desire. an analogy - Jason Fried gave - producing software by llm's is like bragging you're a photographer by pressing the shutter button on an automatic camera. while the art of photography - is about producing the single perfect photo - that communicates the photographers intent (what they want the world to see & experience). likewise in software - what we make should be deliberate.
- chewz 3mo agoJust so you know, most people nowadays can create decent pictures or even movies with smartphone. Not automatic camera, not polaroid, not Polaroid camera, not analog Canon FD, not cardbox camera. Where will you put a line between photography and pressing button? My point being - tools change with time.
- nojito 3mo ago>if you can't write code, you can't review it. I don't write code anymore and I doubt I ever will ever again. On the flipside I review exponentially more code than ever before. >Just ask Claude to dump out assembly, or a compiled binary, but no, they don't trust the LLM that much It's not "not trusting" the llm its that the llm has been undergoing reinforcement learning is on coding. Plus generating assembly is extremely token inefficient.
- Salgat 3mo agoThe difference is that you already learned how to write code. New devs that go straight to genai are missing that.
- brabel 3mo agoPerhaps new devs should write all their code by hand until they feel comfortable doing that. Then, they can start using LLMs gradually, just a little bit at first, all the way to fully AI generated code. However, that would just make the difference in productivity between junior and senior developers even more pronounced! It’s really difficult to see how things will play out in the future without junior developers disappearing, causing a slow death of the profession. LLMs will probably never be good enough to do everything a developer needs to do: understand and improve or clean up requirements, consider future needs, test outside the box, evaluate performance and decide where and when to improve it…
- Salgat 3mo agoYeah it's a real catch-22. I think you're right though, LLM tech will keep up just enough to replace that lost workforce, till some day development as we know it will no longer exist, perhaps when the code becomes too abstract and complex for normal humans to ever hope to maintain without automation, similar to what happened to most assembly developers when the compiler came along.
- fuzztester 3mo agodump out assembly? aargh! haalp! Which rock are you living under these days. Nowadays everything is IR or MLIR ... or AIR ... whoops, i may have skipped a few generations. hard to keep up with the dynamic pace these days. got a job to save. sorry suh. mumble javascript mumble framework of the half-week ... walks off muttering
- t43562 3mo agoNo need for IRs if LLMs are all powerful. Just tell them to generate x86 and ARM and let them get on with it.
- fuzztester 3mo agoNiiice ... I'll byte the bullet. Hang on a bit while I register that in my memory. >generate x86 and ARM So that hardly anyone can review the machine language output, I guess. HN users' minds be like: 87.654321 %: JS? yeah. mainhipsterstream. gotta be a part. heart. smaller %: Rust? wannabe. donno how, u c. much smaller %: C? oh no ... numeric underflow. Congrats on moving over to the light side.
- t43562 3mo agoIf nobody can review it that's fine since we'll be generating at least 50k LOC per day and nobody could review that anyhow. We can just get every other LLM model to review the output. What can go wrong?
- fuzztester 3mo agotoken cost, for one. bobby tables, for another. https://imgs.xkcd.com/comics/exploits_of_a_mom.png https://imgs.xkcd.com/comics/exploits_of_a_mom.png
- satvikpendem 3mo ago> Just ask Claude to dump out assembly, or a compiled binary, but no, they don't trust the LLM that much No, people do advocate for this. It may simply not be as portable however as something that is high level able to be compiled to assembly for many machines.
- t43562 3mo agoIt's the logical outcome of believing that human skills aren't important and that you can "think at a higher level". You can't spend all your time thinking at a higher level if you cannot fully trust the output and the assembler argument is just taking the thing to an extreme to make that point.
- zx8080 3mo ago> Apparently it's not obvious to everyone, but if you can't write code, you can't review it. Why review it at all? The trend is to vibe code everything with agent harnesses and tokenmaxxxing.
- byzantinegene 3mo agochurning out assembly code would cost far more in tokens, wouldn't make financial sense for the improved performance which doens't matter that much for most use cases.
- lazyasciiart 3mo agoThis isn’t obvious at all. Editors can evaluate and improve the work of writers even without being bestselling novelists themselves. Richard Williams coached his girls to world championships without winning one himself. Roger Ebert never even made a movie.
- asdff 3mo agoNo one gets hurt or dies when roger ebert whiffs on a movie review. Now imagine I tell you I've built a bridge. I have no idea how to perform the necessary calculations. I have no idea how to verify the necessary calculations. But, I've built you a bridge. It kind of looks like a bridge. Will you drive across it? Not all software is mission critical. But some software is.
- streetfighter64 3mo agoFirst of all, obviously there's more training data on high level languages than assembly / compiled binaries. Secondly, Python, Java or even C is portable to another device. You know, one of the main points of high level languages: that you don't have to rewrite your app from scratch each time you want to change the machine it runs on. Thirdly, compilers also do type checking and other static analysis and dynamic checks (array length etc). So it's not only got more guardrails against "mistakes" by the LLM, but it's also most likely "easier" for the LLM to "reason" about (in the sense that LLMs can reason). There's no intrinsic value to having humans read the code, so as soon as LLMs are good enough to work on their own, companies will no longer need to keep developers who can read code as a backup solution.