4 ms·
I recomend you take a shot and try. Originally, I built Jaithon pre chatgpt (2022-2023) and in doing so I read a couple of books my dad owned about language aut
by AbhiramaVS 2mo ago
I recomend you take a shot and try. Originally, I built Jaithon pre chatgpt (2022-2023) and in doing so I read a couple of books my dad owned about language automta and architecture. I stopped working on jaithon not because I couldnt code or anything, but more so because it took so long to actually push something that I would rather just work on a different project. idk maybe im just ADHD but thats just how it went for me.
Anyways, back to your question, the architecture of jaithon is probably the most complex thing, and AI (atleast now) cant do this reliably. Syntax as well is something that is very abstract that AI isnt good at choosing. there is a lot more behind the scenes than simply oneshoting a prompt with opus and expecting it to work (spoiler it wont work well at all.)
Would love to see you try to do this with pure AI
- threethirtytwo 2mo agoof course it's not a one shot prompt. But most people can do this with pure AI imo.
- sureglymop 2mo agoI'd say "most people" is wrong. "Most people on HN", yes, probably. Even though people that don't work in tech can now build a lot of stuff I think most wouldn't even know where to begin with stuff like this. Heck, I work in a web development/design agency with people who code in JS/TS all day and they still couldn't tell you the difference between interpreted and compiled code. Why? Because it's simply not relevant to their daily work.
- threethirtytwo 2mo agoThis is how they begin: "Make me a full implementation of a unique programming language." Then they QA, prompt, and continue the loop until they have something. Understanding the code is NOT needed.
- ModernMech 2mo ago> Understanding the code is NOT needed. Programming languages are designed, not generated. What you're describing can get you an implementation for a thing, but getting to an implemented thing has never been the core issue in programming languages; indeed since the beginning of the field, implementations were nice things to have but the language itself was a different artifact. What was important were the properties of the language, which came from a careful consideration and balance of tradeoffs, and that's not something you get with "implementation of a unique programming language" because that can get you anything. Languages are only interesting to people if the language has particular guarantees which are important for particular use cases important to the people. And we know this because before LLMs we also had a situation where anyone could write a programming language (and they did), so even before LLMS we had 1000s of low-effort implemented languages no one knew about or used. LLMs have accelerated this but it hasn't changed any of the fundamentals about how PLs are valued: the implementation does not matter, it's the language design, community, and ecosystem.
- threethirtytwo 2mo agoPrompt: "Generate a language that meets the requirements ModernMech is talking about." Then I iterate on this in a QA loop. I don't need to understand. I just need to test the high level details. The input and outputs and make sure everything works. The implementation details I don't need to understand at all. I can tell the LLM to focus on whatever use case I want adjust the language to fit whatever preference I need. Even if the inception of the idea is blurry the LLM can crystallize a starting point and the "design" of the language can arrive piecemeal in the test and iterate loop.
- ModernMech 2mo agoThat won't actually work though, it'll just go off and do nonsense, I've tried that. > I don't need to understand. I just need to test the high level details. The input and outputs and make sure everything works/ If you want it to be something maintainable, no you can't do that. If you try, you'll get parallel interfaces, half baked APIs, a bunch of special cases that are incompatible and brittle, and eventually it'll have to be refactored and good luck with that -- the agents have a special failure mode there that is quite fun (building a artifact verification cathedral and then spending all its time verifying that instead of working on code). > Even if the inception of the idea is blurry the LLM can crystallize a starting point and the "design" of the language can arrive piecemeal in the test and iterate loop. This is why languages are designed. This process won't produce anything but mush. > I can tell the LLM Okay but have you though? Have you actually tried building a language this way? How long did you maintain it for? Can we see it? Anyway, even if what you're saying is 100% true, all that means is the bar is higher. Language implementation would mean nothing in that world, design would be everything. Which, that seems... fine? But it's not the current world IME.
- thw_9a83c 2mo agoDefinitely not "most people". I've checked the sources of this project and it is quite clear that author is now quite knowledgeable in a theory of computer programming languages. He definitely knows a lot about lexing/parsing, AST generation, type checking, bytecode etc. Most people have no idea and interest in such topics.
- threethirtytwo 2mo agoNot claiming the author doesn't. My claim is that this can be done by most people, and they can do it WITHOUT understanding any of the topics you mentioned.