I think Hindley Milner (for decidability) + Linear Types (for resource management) + Refinement Types (for lightly asserting invariants) + Delimited Continuation based Effects (for tracking effectful code) + Unison style Content Addressability (for corralling code changes, documentation, and tests) would make a really nice language for an LLM.
That's in large parts Scala. It doesn't have Hindley-Milner type inference, but it has very strong type inference. We will get linearity soon thanks to and as part of the Capybara[1] effort. Refinement types are already long a reality. The whole new effect tracking thing is based on delimited continuations. The Unison style content addressability comes up now and then, maybe it will become a reality at some point. It…
Vera: a programming language designed for machines to write
101–105 of 105 posts
Re: Vera: a programming language designed for machines to write
#102Earlier quoted context omitted.
Yeah it seems based on 2023 research which is ancient, back when we didn't have coding agents at all, and on some 1980s sci fi concepts of "how machines think" (beedeeboop) rather than the all too human coding agents we have. If I had to design one of these, I'd go for: 1. Token minimization (which may be circular, I'm sure tokens are selected for these models at least in part based on syntax of popular languages) 2.…
> all too human coding agents There is no actual thought occurring. Arguably, we can say the same about a lot of humans at any given moment, but with machines there never is. It's all statistics.
Re: Vera: a programming language designed for machines to write
#103Earlier quoted context omitted.
Yeah it seems based on 2023 research which is ancient, back when we didn't have coding agents at all, and on some 1980s sci fi concepts of "how machines think" (beedeeboop) rather than the all too human coding agents we have. If I had to design one of these, I'd go for: 1. Token minimization (which may be circular, I'm sure tokens are selected for these models at least in part based on syntax of popular languages) 2.…
Features written in one file, rather than "cohesive" modules with a single "responsibility" in one file? So, orthogonal to the accepted, common code organization idiom (no matter how infrequently adhered to)? Fascinating! Just the other day I decomposed a massive Demeter violation into stepwise proxying "message passing." I was concerned that implementing this entire feature—well, at least a solid chunk of it— as a s…
One idea for isolating features was "cross cutting" and "aspect oriented programming" that never caught on but I've always thought it was under-explored.
My day job is collecting a type of analytics for a major global company. Every new point of data involves changing about 1 line in about 10 different applications that talk to each other, sometimes adjusting schemas and report formats as well. Takes weeks to coordinate the rollout. It's super tedious. But, perhaps there's a prompt that tells the models how to do this whole process without human intervention. And that would be saved as a skill file, that provides the needed cross-cut across many files/applications/schemas/repos, letting the code live in conventional organization.
Hard to say. We're still in early times, I think.
Re: Vera: a programming language designed for machines to write
#104Earlier quoted context omitted.
My Spidey sense was tingling when I saw that, too. An additional issue is how humans are supposed to read the code at all so that they can provide help to the LLM if it’s off track. If the code is only usable by models, the models need to be good enough to deal with binary feedback (“Code doesn’t work.”). The human won’t be able to read the code and steer the model. Given the levels of steering required today, that m…
Even if the target author is an LLM, the accountability still lands on humans eventually
Re: Vera: a programming language designed for machines to write
#105Nanolang: A tiny experimental language designed to be targeted by coding LLMs
https://news.ycombinator.com/item?id=46684958
https://github.com/jordanhubbard/nanolang
SudoLang: A Powerful Pseudocode Programming Language for LLMs:
https://medium.com/javascript-scene/sudolang-a-powerful-pseu...
Programming Without People: Designing a Language for LLMs:
(ALaS (AI Language Specification)):
https://dshills.medium.com/programming-without-people-design...
LMQL ("LMQL is a programming language for LLMs."):
Which language is best for AI code generation? The answer might surprise you:
https://revelry.co/insights/artificial-intelligence/which-la...