|
|
|
|
|
by ret2pop
778 days ago
|
|
ding! I think the bootstrapping code might've bitten us. Of course there's no
practical reason why we _needed_ to not have the delim flag flipped and a couple
of delimiters defined, but there's a conceptual symmetry in it being the way
it is. Still, I agree in large part with your point. It seems as though you've read the entire article and understood a decent
portion of it. I'm impressed because I think I explained this suboptimally. |
|
E.g. "here's a cool thing thing we can do <demonstrate the outcome of significantly changing a readable syntax>" to hook people, "here's how <show how you change syntax with higher level helpers>", "and if you really want to know how to bootstrap this from basics <here comes the linenoise>".
Maybe compare how e.g. Forth is often introduced, with how people describe bootstrapping of a simplistic Forth like Jonesforth or Sectorforth [2]. Showing people how they can define their own words and it fundamentally changes how they work with the language afterwards is cool to a lot of people who have no interest in details like how you an implement even numbers with a minimal set of primitives (e.g. Sectorforth relies on that - it doesn't have builtin numbers[3]).
Both are interesting to me, but I'm weird, and I think for most people it'd be easier to maintain their interest if those two aspects are either separate articles or at least if the bootstrapping is relegated to a standalone section they're clearly told they can skip.
[1] https://news.ycombinator.com/item?id=31368212
[2] https://github.com/cesarblum/sectorforth
[3] The Sectorforth Hello world defines every numeric constant it needs like this:
Which is fun if you're a language geek. Not so convincing if you want to know if Forth is fort you [EDIT: That mistake was wholly unintentional, but I'll leave it].