I played around with Factor a bit this year. It’s a very cool, ambitious, clickable language that’s a good workout for the mind if you’ve never tried concatenative programming (with more modern affordances like local variables instead of having to do everything on the Stack). Performance is great/competitive in the dynamically-typed, interpreted language space (like Chez Scheme). There’s been a lot of improvements recently too like GTK4 + hiDPI to deal with my initial first bad impressions starting up the listener. The biggest missing feature is aarch64 support (so you get limited on what you can actually release on), tho I hear the progress is happening.
As an aside, if you have a functional interest, this talk, From Ivory to Metal, by Jon Purdy did a wonderful job connecting ideas from FP to concatenatitve programming while providing insight on how by almost accident, the concept of the stack can model affine, linear, ordered linear types too 🤯
Performance is great/competitive in the dynamically-typed, interpreted language space
You may already know this, but for others reading, Factor isn’t interpreted. It compiles down to machine code. You can dissasemble the generated code with built in libraries.
The biggest missing feature is aarch64 support
I believe the latest git builds and runs on Mac OS M series machines so it’s getting there.
Well you can run it in an interpreted mode as you don’t have to compile. I’m loading/interpretting a script at runtime for one of the things I played with building earlier this year.
I played around with Factor a bit this year. It’s a very cool, ambitious, clickable language that’s a good workout for the mind if you’ve never tried concatenative programming (with more modern affordances like local variables instead of having to do everything on the Stack). Performance is great/competitive in the dynamically-typed, interpreted language space (like Chez Scheme). There’s been a lot of improvements recently too like GTK4 + hiDPI to deal with my initial first bad impressions starting up the listener. The biggest missing feature is aarch64 support (so you get limited on what you can actually release on), tho I hear the progress is happening.
As an aside, if you have a functional interest, this talk, From Ivory to Metal, by Jon Purdy did a wonderful job connecting ideas from FP to concatenatitve programming while providing insight on how by almost accident, the concept of the stack can model affine, linear, ordered linear types too 🤯
score 1 · canonical
You may already know this, but for others reading, Factor isn’t interpreted. It compiles down to machine code. You can dissasemble the generated code with built in libraries.
I believe the latest git builds and runs on Mac OS M series machines so it’s getting there.
score 1 · canonical
Well you can run it in an interpreted mode as you don’t have to compile. I’m loading/interpretting a script at runtime for one of the things I played with building earlier this year.
So long as it also gets to Linux…
score 1 · canonical
The latest git builds also run on linux-arm and windows-arm. We are getting close to a Factor 0.102 release.
score 2 · canonical
That mode also compiles it. Loading a script at runtime compiles it and runs it, like many Common Lisp systems do. There are two compilers - a non optimizing compiler that handles dynamically generated code written in C++ as part of the VM, and an optimized compiler written in Factor which does most of the compilation work of user code.
score 1 · canonical
Well, then my understand stands corrected :P
score 1 · canonical