Using LLMs does not obviate the need for the human user to understand what the code is doing. I’ve also found that, as with any tool, it takes time to actually learn to use LLMs effectively.
In particular, I find it’s really important to understand the problem being solved, and then come up with the solution yourself. One approach I’ve found to be effective is to stub out the functions myself, and have the agent fill in the blanks for me. This helps focus the LLM and prevent it from going off into the weeds.
Another trick I find handy is to ask the agent to first write a plan for the solution. Then I can review the plan and tell the agent to adjust it as needed before implementing. Agents are also pretty good at writing tests, and tests are much easier to evaluate for correctness because good tests are just independent functions that do one thing and don’t have a deep call stack. My current approach is to get the LLM to write the plan, add tests, and then focus on making sure I understand the tests and that they pass. At that point I have a fairly high degree of confidence that the code is indeed doing what’s needed. The tests act as a contract for the agent to fill and as a specification for the defined functionality.
I suspect that programming languages might start shifting in the direction of contracts in general. I can see stuff like this becoming the norm, where you specify the signature for the function, and you could also specify parameters like computational complexity and memory usage. The agent could then try to figure out how to fill the contract you’ve defined. It would be akin to genetic algorithm approach where the agent could converge on a solution over time. If that’s the direction things will be moving in, then current skills could be akin to being able to write assembly by hand. Useful in some niche situations, but not necessary vast majority of the time.
Finally, it’s very helpful to structure things using small components components that can be tested independently and composed together to build bigger things. As long as the component functions in the intended way, I don’t necessarily care about the quality of the code internally. I can treat them as black boxes as long as they’re doing what’s expected at the surface level. This is already the approach we take with libraries as we don’t audit every line of code in a library we include in a project. We just look at its surface level API provided.
Incidentally, I’m noticing that functional style seems to work really well here. Having an assembly line of pure functions naturally breaks up a problem into small building blocks that you can reason about in isolation. It’s kind of like putting Lego blocks together. The advantage over stuff like microservies here is that you don’t have to deal with the complexity of orchestration and communication between the services.
I mean is that even controversial in any way?
I started running my own NextCloud instance on a VPS years ago and it’s been really nice. I use it for my calendar, contacts, file storage/sync, and music streaming. It replaced pretty much everything I used google services for.
I see the fash instance is leaking again
China should just bring this up at the UN and demand a formal apology from the US. Then China should simply stop all trade with the US on the basis that the US is a hostile state stating open intent to destroy China.
I’m pretty sure people who buy those watches can afford to eat the tariff.
For sure, best way to secure data is not to connect it to the internet. Also very much agree that developing domestic software or at least using open source is a basic requirement for maintaining sovereignty. Hopefully China will accelerate their push to excise western proprietary software from their ecosystem.
The only thing that’s noteworthy here is that China was still using US based software in critical places.
no idea unfortunately, looks like a fun talk
It’s as if Russia has had a consistent position for the past three years that the west has been ignoring, and now they’re acting surprised that Russian position hasn’t changed in light of the latest tantrum from Burgerland.
A lasting and stable peace that Russia will dictate because it defeated the west while the west refuses to face reality and negotiate.
Still working great for everyone outside western shithole countries.
That’s how the two arms of the oligarch party work together. The republicans pass things that are unpalatable, and dems make sure these things become institutionalized.
Dems have been running concentration camps since at least Obama time. https://www.aclu.org/news/smart-justice/president-obama-wants-continue-imprisoning-immigrant-families
I’m also amazed at the amount of patience Chinese leadership has. It’s exactly as you say, they ignore the constant provocations because they’re thinking about the long game. It’s really admirable discipline.