Ask HN: Have you used LLMs to reinvigorate you niche programming community?
I've seen a few discussions over the years about how niche languages like Lisp, Forth, Prolog, etc. would be great to use, but even for personal projects the lack of available packages makes them hard to use. However, with an LLM you can have it replicate whatever package you'd like from a more popular language. You can even port software to your favorite niche architecture. If you really want to run your homelab off a PA-RISC machine you just give an agent SSH access and tell it to make the software work.
For myself, I have only done very little of this. I did add POWER vectorization to POV-Ray so that I can get a little more speed out of a machine that has more power than it needs for other things. Instead of letting it use something like Python or Go for small scripts I'll tell the LLM that the more logical choice is Prolog. But mostly I have been using mainstream languages because the code is being generated and, therefore, I'm not playing with it, so I'm interested in hearing if others have had good luck with generating away the grunt work and allowing them to enjoy using tools that were not practical enough before.
In the distant past (2002-2003) I used two niche languages for the same programs across PowerPC, x86, SPARC, and PA-RISC:
- Dylan
- Scheme
It helped immensely that both Gwydion Dylan and Chicken Scheme compile their respective niche languages to portable C code.
Now emitting LLVM IR is an even slightly better technique. Except for PA-RISC. So GCC 15 (or HEAD) and C generation it is ... it's not bad using modern headers with portability defines such as `uint32_t`, ability to return at least a pair of values in registers, or tail calls using all argument registers if you convert to CPS (as e.g. Chicken does)
No, I've found that LLMs are only effective on popular stacks. On niche stacks or legacy stacks, you get back code that doesn't even run - syntax pulled from other languages, object models and APIs from stacks that are not the one you are running, etc.
That's disappointing, but I had wondered about that. I haven't had that issue for single scripts and I was hoping it would scale.