rxi / fe

A tiny, embeddable language implemented in ANSI C
MIT License
1.3k stars 81 forks source link

Motivation, minimalism, live AST #3

Open dumblob opened 4 years ago

dumblob commented 4 years ago

Looking at your repositories I feel like someone still understands the meaning of minimalism, KISS and overall the art of programming. Kudos!

I'd like to ask few things as I'm overly curious about your motivation, background etc.

  1. Do you use fe in real projects or do you know about other projects using fe?

  2. What was the motivation to create fe if you already made aria?

  3. (somewhat related to (2)) Have you considered implementing a different programming paradigm than Lisp-like? For embedded languages I personally like the "live AST" paradigm (any computation is a manipulation of AST - i.e. homomorphism like in Lisp, but a bit less cluttered :wink:) used e.g. in TCL/Rebol/Red/Spry languages (Spry being my favorite).

rxi commented 4 years ago

Thanks for the kind words!

  1. I've used fe in a few hobby projects — I think aq (a small framework for making audio toys) is the only public one, otherwise I've used it for config files in a few other things. No one else has used it for anything to my knowledge
  2. The same motivations I had writing aria: for the fun of programming it; trying to make something terse but still practical. Every line of code has a weight to it with consideration that would be unreasonable outside this kind of project: a project that exists just to exist. Each time you write something it becomes — or at least should become — more clear and more concise than the previous time, and if you repeat this, the original version is by comparison an over-engineered bloated mess. fe is a sequel to aria, and as such ended up smaller, simpler and faster
  3. I'd in the past considered writing something closer to TCL than lisp, it might be something I try in the future, though I have no immediate plans to
dumblob commented 4 years ago

That's good, that fe found its way to real software!

in the past considered writing something closer to TCL than lisp, it might be something I try in the future, though I have no immediate plans to

Then you might take a look at TCL in 500 lines of C (there's a lot of functionality squeezed in those as the goal wasn't to make a toy but a real full-featured TCL interpreter with decent speed - it's from the author of Redis back when he was writing big books about TCL and generally the art of programming :wink:).

For Spry though noone tried to accept the challenge yet to make such a gem...

jaredkrinke commented 3 years ago

For a "real" project, it looks like rxi embedded fe in a grid-based game framework:

https://rxi.itch.io/cel7

cel7 is a 60kb framework for making grid-based games limited to 4-bit color ASCII output. The framework is based around the fe programming language.

avih commented 1 year ago

I also quite appreciate the style, approach, minimalism, and code at the various projects by @rxi , so thanks for those.

https://rxi.itch.io/cel7

I wonder whether you could open source cel7? It's quite striking IMHO in the "bang for the buck" department, and I hope to be wrong, but I doubt it has greater value for you as closed source? ;)

(Yes, I am aware of https://github.com/kiedtl/cel7ce )