Hacker News new | ask | show | jobs
by digitailor 4809 days ago
As cool as an approach that Factor has, I cannot fathom why it is being developed for x86 for the life of me. (Besides claims of cross-platform native executable compilation.)

On ARM it would be interesting- or if it had a highly modular structure that would allow it to be "easily" ported to other microprocessors.

But on x86? What niche is it trying to serve? Is it a language-lover's-language? I guess what I'm asking is, why would I use a "high-level" Forth on x86? There has to be a reason, I'm just missing it.

2 comments

Factor used to run on ARM [1]. Back then Windows Mobile only had 64MB of ram and it wasn't quite enough to do anything useful in Factor.

I used to run a video sharing website written in Factor [2], sadly the server crashed a few weeks ago and I haven't recovered the data from the disk yet.

Factor feels more like a Scheme than a Forth to me when programming.

[1] http://web.archive.org/web/20111117015025/http://www.bluishc... [2] http://web.archive.org/web/20130118204336/http://tinyvid.tv/

Woah thanks for that link, there could be some assembly worth salvaging there.

Currently working on an ARM forth-idea with some scheme-ideas. There's this nagging intuition I have that there's a symbiosis between Lisp atom/Forth word and S-expression/Forth dictionary.

I have to get something going pretty quickly so I can't get too pure about the idea, as I don't want to get bogged down in the necessary GC yet.

Thanks for your reply, it already made me more interested in Factor from an implementation standpoint, even if I wouldn't use it on x86.

Isn't Factor (at some level of abstraction) basically Lisp/Scheme with more minimal syntax? It replaces prefix notation and parentheses with postfix notation and a stack. All the benefits Lisps get from minimal syntax, Factor gets too.
That's exactly what I'm thinking, but I haven't had time to stress-test the idea or find any precedent. And remember i'm talking about a ~36kilobtye forth, not this large-sized and resource-intensive kind of x86 forth that I don't understand the reason for.

Theoretically you would have the HLL incredibleness of a lisp with the low level genius of Forth. I asked some old timers if the idea made sense and they were silent in specifics but not discouraging. Which would indicate to me they think it is a huge learning opportunity for me one way or the other. Have you done any deeper analysis?

They are working on reimplementing ARM support in the next release. It is in an incomplete state ATM.