4 ms·
Slightly off-topic, but I think having a time-traveling debugger integrated with an LLM would be transformative.
by bravura 4y ago
Slightly off-topic, but I think having a time-traveling debugger integrated with an LLM would be transformative.
- nonethewiser 4y ago… time traveling debugger? Your comment made me think about an IDE built around AI code gen. Basically would have tools to generate and debug, test, and overall validate the code. I guess I’m not sure what features that would constitute - maybe it wouldn’t even need a nee IDE. Just thinking about a playground designed for codegen from the ground up.
- jacobr1 4y agoOne approach I've been thinking about is focusing on enhancing the Behaviour-Driven Development (BDD) workflows. I was was really into cucumber and its tooling ecosystem a decade or so ago. One of the challenges is maintaining these "user story" like specifications and then creating boilerplate mapping/translation between the concepts in the specification and unit tests and sometimes also the implementation. Keeping that updated as a project grows in complexity (and bringing on team members that might be less dedicated to BDD purity and related practices like rigorous refactoring) becomes a burden. But if you used an ai-code-gen augment to help maintain the environment, and autogenerate both the code and tests, really all you would be doing is clarifying mistakes in intent, or insufficient specificity. So the question would be how do you build tooling to optimize for highlighting and reviewing the changes to the system (diffs - but maybe semantically enriched in some way? Maybe start with smarter comments?) Maybe generating synthetically workloads and reviewing how that changes the system (sorta like fuzz-testing but with a smart-agent that understands how the system works without you needing to specify all the details). Importantly you could also work backgrounds if you change the code directly, you could have it update the spec, and then review that (does my change do what I think it should do, at least a higher-order domain level?)