6 ms·
The whole concept of "good code" is built around maintainability for humans. If you remove that requirement, it opens up a whole new definition of what it means
by ldjkfkdsjnv 2y ago
The whole concept of "good code" is built around maintainability for humans. If you remove that requirement, it opens up a whole new definition of what it means to build good software
- datadrivenangel 2y agoUsing LLMs as compilers is unwise. Ultimately software must be configured or written by humans, even if there are layers and layers of software in between us and 'the code', and that act of configuration/writing is programming.
- ldjkfkdsjnv 2y agoI think alot of the fastest moving and innovative companies right now are generating most code with ai. the ones who ignore this will be left behind
- whattheheckheck 2y agoWhich ones stick out the most to you?
- pjmlp 2y agoThat was the same argument folks used against high level languages when Assembly was king. It will come, even if we are a couple of years away.
- userbinator 2y agoAt least compilers are deterministic and their operation can be easily inspected.
- pjmlp 2y agoSaid someone that never researched miscompilation issues or UB. They are mostly deterministic. LLMs can also provide the equivalent of an -S switch.
- Yoric 2y agoYou are correct, of course, but the general consensus is that (in languages other than C++) compilers are largely close enough to deterministic that the difference doesn't matter. LLMs, by design, don't even attempt to go in this direction. Not entirely sure what I'd do with an LLM -S switch. Debug the output/intermediate representation of the LLM, knowing that the next time I press "enter", it's probably going to give me an entirely different output?
- bee_rider 2y agoThe first is a bug in the compiler, the second is a bug in your code.
- pjmlp 2y agoNot everyone agrees, see Linus.
- Yoric 2y agoI don't think LLMs themselves (at least what we currently call LLMs, with the Transformer-based architecture) will provide that. They're too prone to hallucinations. However, I do think that they will pave the way towards another technology that will work better. Possibly some hybrid neurosymbolic approach. There are many researchers working on this, and the current hype around LLM will help fund them. Sadly, it will also add considerable amounts of noise that might hinder their ability to demonstrate the usefulness of their solutions, so no clue when that future happens, if it does.
- klooney 2y agoLLMs are even more limited than humans though- tiny context windows, can't really learn new things- which really raises the bar on writing APIs that are footgun free.
- sumedh 2y ago> LLMs are even more limited than humans though- tiny context windows, For now.
- Werewolf255 2y agoGiven the power and cooling requirements, and the underlying techniques used for LLMs right now, I think 'for now' is going to be quite a few years. Maybe a decade plus. Plenty of time to train a new cohort of human developers who do more than just code 24/7.
- danielbln 2y agoContext windows have grown significantly, the biggest one at are at 2 million tokens right now. That plenty enough, as even in his t codebase you don't need to feed the fill codebase in, you just need to provide the LLM a map of e.g. functions and where to find them, and the LLM can pull the relevant files itself as it plans the implementation path. And for that the current context window is plenty.
- sublinear 2y agoNot true at all. Good code is concise and does what it's supposed to do without any weird side effects or artifacts. That has nothing to do with "maintainability for humans".
- 9dev 2y agoWhy would you want to avoid side effects, other than making it less hard for the next developer working on the code to understand how it works? Nature uses side effects all the time, and is widely considered to work pretty well.
- deleted 2y ago[deleted]
- jimbokun 2y agoAt that point “building software” goes away as a distinct activity. Everything is a conversation with an AI, that builds software to answer questions or perform tasks you request as needed.
- techpineapple 2y agoMaybe the whole concept of "clean code" is built around maintainability for humans, but I think there's a version of organization of "good code" that makes it much easier to avoid like nested loop foot guns.
- lurking_swe 2y agoyou forgot the pesky “security” aspect of system :)