monarchwadia
Joined 9 years ago
Joined 9 years ago
What's more interesting to me is, how do we prove that the business intent is accurately encoded in the code? This is a different problem. Not "is the logic internally coherent," but "is the logic going to give us what we want?"
And how do we make sure that the logic keeps giving us what we want, iteration after iteration?
I've open source a tool, Drift, for this purpose. So far, biased and anecdotally as its builder, this has been the missing layer. It works because the spec is treated as a duplicate of the code, written and committed in the repo and kept in sync with hashes. The LLM then checks for diffs manually. There are ways to use perplexity here as well. Here is an article about how to get started. https://monarchwadia.medium.com/how-to-make-your-agent-more-...
Doubtless, many more automations will come. We live in very exciting times. It has been a while since a new technology affected every corner of software engineering with such depth of change. This might be unprecedented.
Is consciousness a complex form of information processing?
Is consciousness relating to the space in which qualia occurs?
Is consciousness the state of being awake, as opposed to asleep or dead?
Is consciousness some combination of the above?
Some of these are better understood than others. So, some people will show up with more confidence than others, which further confuses the issue.
Unfortunately, the above is not well understood, even among intelligent and informed audiences.
I ran this script to count all packages in package-lock.json:
node -e '
const lock = require("./package-lock.json");
const entries = Object.entries(lock.packages || {}).filter(([k]) => k); // skip root ""
const c = { prod: 0, dev: 0, optional: 0, peer: 0, total: 0 };
for (const [, p] of entries) {
c.total++;
if (p.peer) c.peer++;
else if (p.optional) c.optional++;
else if (p.dev) c.dev++;
else c.prod++;
}
console.log(c);
'
Output: { prod: 2, dev: 955, optional: 113, peer: 8, total: 1078 }
So, 1078 total dependencies.I'm actively moving away from Node.js and JavaScript in general. This has been triggered by recent spike in supply chain attacks.
Backend: I'm choosing to use Golang, since it has one of the most complete standard libraries. This means I don't have to install 3rd party libraries for common tasks. It is also quite performant, and has great support for DIY cross platform tooling, which I anticipate will become more and more important as LLMs evolve and require stricter guardrails and more complex orchestration.
Frontend: I have no real choice except JavaScript, of course. So I'm choosing ESBuild, which has 0 dependencies, for the build system instead of Vite. I don't mind the lack of HMR now, thanks to how quickly LLMs work. React happily also has 0 dependencies, so I don't need to switch away from there, and can roll my own state management using React Contexts.
Sort of sad, but we can't really say nobody saw this coming. I wish NPM paid more attention to supply chain issues and mitigated them early, for example with a better standard library, instead of just trusting 3rd party developers for basic needs.