Hacker News new | ask | show | jobs
by masak 2130 days ago
There are a few more hobbyist implementations out there, at various stages of completion:

    - https://github.com/ajlopez/beljs
    - https://github.com/erdos/carillon
    - https://github.com/luksamuk/believe
I also have an implementation: https://github.com/masak/bel -- you can see the stage of completion in the SVG diagram in the README.

Due to how Bel is specified, all the mentioned implementations have "speed issues". I believe I can fix most of these, and the path forward is fairly clear (faster internal data representations, compiling to efficient bytecode). But I want to hold off announcing/releasing the project until most of the egregious performance problems are fixed. I'm biting my tongue so I don't make any promises/deadlines... but it's coming along. Help appreciated.

The good news is that it seems to be possible to make Bel run fast. I just need to put in the work to get there. Really looking forward to having a fast Bel at my fingertips.

Along the way, I've also discovered a few (minor) bugs in the Bel specification, as well as some things that are underspecified and don't really have answers. I'm also actively thinking about how to build a static type system around Bel's runtime typechecking, analogously to how TypeScript extends JavaScript with static types.