Fur Alternatives
Similar projects and alternatives to fur
-
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.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
pratt-parser-blog-code
The code to illustrate the pratt parser blog post for the desmos engineering blog.
fur reviews and mentions
-
Pratt Parsers: Expression Parsing Made Easy
I found this Rust tutorial[1] on Pratt parsers to be really easy to follow as well. I'm not a Rustacean but I didn't find not knowing Rust to be a barrier. I used that as a guide to write the parser for my experimental programming language Fur[2].
However, I'll caution anyone writing their own programming languages to read some wisdom from someone who has written a production-quality programming language[3]. Most programming language developers get bogged down in writing the parser and never even get into solving the real hard problems of language development, which are things like bytecode generation and garbage collection. The fact is, a naive recursive descent parser with some low lookahead number to handle left recursion will be performant and can be written in an afternoon for 99% of parsable languages. I'm not sure what it is about parsers that makes them susceptible to yak shaving, but it seems to be a trap a lot of people fall into (including myself!).
[1] https://matklad.github.io/2020/04/13/simple-but-powerful-pra...
[2] https://github.com/kerkeslager/fur/blob/main/parser.c
[3] https://craftinginterpreters.com/compiling-expressions.html#...
-
Strong typing, a hill I'm willing to die on
One might say that the embracing of reflection in Java and C# pretty much solidifies the case against static typing for complicated projects.
I'd tend to think the important feature here is strong typing, not static typing, and indeed TypeScript, which is hampered by the anemic type system of its parent JavaScript, it not the best example of strong typing.
Ultimately, strong typing is a hill I'm willing to die on, too. But a lot of people making arguments on this topic are conflating it with static typing, which just isn't the same thing. In general, that gives me the impression you haven't done enough work in enough different languages to really have an informed opinion.
Though uncommon, strong dynamic type systems do exist. This is the approach I'm taking with Fur[1]. Python is... stronger than many other popular languages (i.e. JavaScript), but still does a lot of coercion (particularly around truth-y/false-y values).
But perhaps more critically, weak static type systems also exist, such as C, which is the source of many of the world's most serious bugs. It's highly unwise to assume that static typing is strong typing.
[1] https://github.com/kerkeslager/fur
Stats
kerkeslager/fur is an open source project licensed under GNU General Public License v3.0 only which is an OSI approved license.
The primary programming language of fur is C.
Popular Comparisons
Sponsored