This is a great overview of the language. I really appreciate their “add it to the standard library!” ethos. Its a dramatic change from “put as little as possible in std” vibe from other languages.
I would love to use Factor in a side project, but I haven’t found something new and fun to use it on.
I like the approach of put as little as possible in std… ‘but here is an official library for that thing on the side’. So if something is a really bad design in hindsight it can be deprecated without affecting the language spec.
We have two main code locations, one of them is “basis” which is the standard library where we spend time thinking about things like testing, documentation, usefulness, backwards compatibility…
The other is “extra” which is for everything else. It’s a great way for people to contribute things that “work” to solve some problem, are demos, are fun things, and then we commit to making sure they keep working and are tested by our nightly builder. The “extra” playground contains things that are sometimes promoted to “basis” over time and by demonstrated usefulness.
Contributions are appreciated!
It’s sounds like a nice approach. I guess my point was unless you force users to install it via some language specific package manager, users assume it is there by default and then it becomes a defacto standard.
You may have a hard time removing things from extra without breaking peoples code.
I also fully admit forcing users to install stuff this way kills the user experience quite a lot.