Bootstrapping a Forth in 40 lines of Lua code
Published in 2024, this chronicle by @anothername12 details the mechanics of building a profitable, self-funded business without venture backing.
Core Principles for Independent Builders:
Charging customers from day one acts as the ultimate filter for building software that solves genuine, high-urgency problems.
Keeping fixed overhead low and leveraging lean infrastructure allows founders to stay alive until market tailwinds kick in.
Small, repetitive improvements in customer retention and conversion rates yield massive returns over multi-year horizons.
Community Debate Themes:
The community focused on B2B customer acquisition channels, cold email vs SEO distribution, and balancing full-time employment with side-project development.
CATEGORY Bootstrapping & MRR →
HISTORICAL ERA Post-ZIRP & AI (2023–2026)
COMMUNITY SCORE 122 points
TOTAL DISCUSSIONS 43 comments
Is there any Forth, that properly handles unicode strings, by which I mean, that it has sensible string length, substring and such functions or some standard library that has them? Basically all the usual stuff one needs. I tried to use GForth a while ago, but how to use strings properly was a mystery. I don't want to have to code all string functionality myself. Well, neither do I know how, nor do I want to. I guess I would have to study other languages' implementations and some standard documents or so for that, when actually I am doing another project. A gigantic rabbithole that would be. Afaik there is more planned in the 1.0 release of GForth.
Reading line after line from a file was also difficult. I could not figure out, how to clear the storage used for the previous line properly. When I read a shorter line after a longer line, the storage would still contain the longer part of the longer line after the content of the shorter line. Perhaps there is a Forth that makes this easy?
But it also needs to support that library, FFL, so that I have useful data types, and don't need to roll my own arrays or something ...
Maybe my design philosophy is fundamentally different from what is needed for Forth?
I 'learned' Forth decades ago (on a Sinclair ZX81, so essentially a quite horrible experience), and tripped over it again recently.. ending up ploughing through the books "Thinking Forth" and (currently) "Starting Forth" both of which are extremely interesting and so very very different to what we use these days. It very much fits into that saying "A language that doesn't change how your think about programming, isn't worth knowing". I realise now just how shallow an understanding of Forth I had as a teen, back in the day ;)
But I think the win here - these days - for Forth is in things like "running on small embedded devices".. I'm looking with interest at some of the activity around say Arduinos and am thinking that Forth is a rather nice fit for that sort of system. Have bought a kit, and am looking forwards to some non-work quality time to play further :)
(The Books I meantion can be found online very easily, but you'll forgive them for being written back in a time when systems were _simpler_ to grok ;) )
Trying to get an overview of which languages allow for tiny implementations of their core features. Like, max. ~10KB binary size (but preferably a few KB's). This is assuming basic IO is trivial, like reading/writing to some memory location to get/print a character on text console.
Forth is an obvious one. Basic another. There's some tiny Lisps out there. And Tcl.
Any other languages that go that small?
It'd be interesting to see how compact the binary form is, and what external dependencies it has.
Forth's selling points are mostly how compact a minimal environment can be, and how easy it is to extend that environment to do more useful things. The 'shell' is the compiler.
While a great exercise and kudos to the author, I think languages like Forth and Lisp are much cooler to bootstrap from Assembly.
Anyway, thanks for sharing.