Introducing Chord Version 1

Happy to announce that version 1 of my new IF modeling language for parser web stories is now live in the Sharpee website and on npm.

The new website focuses on Chord, leaving Sharpee as the platform Typescript implementation (Chord compiles to Sharpee).

The website has extensive examples and a live playground to write Chord and see it run instantly.

6 Likes

This is great! This might be the first parser based platform that’s free of ancient virtual machines and their limitations.
Something to think about would be adding an index feature. That’s one of the things that makes Inform 7 so popular and accessible.
Another point: it’s not readily apparent how to change existing logic or sequence of play that the library defines, nor do we have the library in readable Chord form.

I have one set of changes to work through then back to building the IDE which is where an index will live.

The website does have a standard library doc set: Sharpee — Parser IF, composed. If you want to see the standard library in Chord form, that would be a reference set, not an implementation. The underlying Sharpee/TS platform stays the base. Chord surfaces its constructs and adds extensibility. I added an ADR to create Chord-stdlib implementation documentation so the author can see the stdlib from Chord’s perspective.

The sequence of play is based entirely on the map, player starting location, and the puzzles you integrate.

This opened up a serious rathole in Chord. Major update coming. The entire Grammar capability pushed up to Chord in parity with Sharpee, though Traits and Behaviors stay in Sharpee (that’s real programming, not modeling IF).

You caused a huge change in Sharpee and Chord with your Chord standard library comment. It uncovered some glaring gaps in the logic (some things were falling through to empty logic) and Chord now has full access to the standard library (extend/remove and ordering).

See the blog: Sharpee Blog post about Chord 2.0

Glad to be of assistance. Any chance on having a relations feature? Those also improve the story writing experience significantly.

I’m laughing. The Sharpee architecture already has relationships, but nothing consumes them. I’m writing up an exploratory ADR for this and it would be a Sharpee 5/Chord 3 addition. The standard is to implement the feature in the platform (Sharpee) and Chord at the same time and maintain 100% parity with elegance. This a requirement for all new features.

Here’s the ADR: sharpee/docs/architecture/adrs/adr-278-relations.md at main · ChicagoDave/sharpee · GitHub