Our great sponsors
-
In the design of Starlark (https://github.com/bazelbuild/starlark), I often had to push back against new feature requests to keep the language simple. I explicitly listed simplicity as a design goal.i
Of course, the scope of the language is not the same as general purpose languages, but there's always pressure from the users to add more things. I also think many people underestimate the cost of adding new features: it's not just about adding the code in every compiler/interpreter, specifying every edge-case in a spec, updating all the tooling for the language and writing tutorials; it's also a cost on everyone who will have to read any of the code.
-
dogma
Dogma: A modernized metalanguage with better expressiveness and binary grammar support (by kstenerud)
I'm facing this dilemma now with the Dogma metalanguage [1]. On the one hand, I want it to be small so that it can be picked up quickly and mastered easily (very important since its primary use case is documentation). On the other hand, it needs enough power to actually be useful in the real world.
In the end I opted to avoid most conveniences since they can easily be built using a few common macros such as `u16(v) = ordered(uint(16,v))` and the like, except for cases where it would be just silly not to (like strings and regex-style repetition chars ? * +).
But even then the spec is over 2000 lines long (admittedly the examples take up a fair bit of room, though).
[1] https://github.com/kstenerud/dogma/blob/master/v1/dogma_v1.m...
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Related posts
- Interval Parsing Grammars for File Format Parsing (2023) [pdf]
- Show HN: Dogma: a metalanguage for describing data formats in documentation
- Show HN: Dogma Metalanguage – Beta5
- BNF Was Here: What Have We Done About the Unnecessary Notation Diversity (2011) [pdf]
- Ask HN: How long does it take for you to release your open source project?