
PyLucid – A Lucid Interpreter Written in Python - herodotus
https://billwadge.wordpress.com/2019/12/04/pylucid-a-lucid-interpreter-written-in-python/
======
klik99
Fascinating - after several years of designing and a year of implementation,
I'm running a closed beta of an LLVM-compiled language (general purpose but
made for audio and dsp) that was strongly influenced by Lucid. For performance
reasons it's not strictly "push" dataflow like Lucid, rather it pulls the
output. It's a mix of dataflow from Lucid and type system from Haskell, aimed
towards being performant and practical.
[https://www.elasticaudio.com/](https://www.elasticaudio.com/)

Outside of monitoring systems and hardware specifications, dataflow has been
sorely overlooked, and Lucid is truly mind-bending. I could see dataflow
becoming more relevant as Moore's law and performance/cost benefits start
scaling horizontally, while functional languages are seeing more practical
use. Potential uses include Audio, obviously, but UI, graphics, and anything
that involves pipelines calling to outside environments.

 _EDIT_ I see PyLucid implements what Wadge calls "demand-driven dataflow"
which I think is equivalent to "pull dataflow", though the ideal Lucid
implements "eager dataflow" (I believe equivalent to my term "push dataflow")

------
mindcrime
Looks like this may be the corresponding Github repo?

[https://github.com/billwadge/pyLucid](https://github.com/billwadge/pyLucid)

------
gnufx
I don't remember how Lucid compares, but the SISAL heritage probably needs
reviving too. (Dataflow work is happening again at Manchester -- one of the
dataflow hardware and SISAL sites -- via OpenStream for parallel programming.)

Concerning POP, I think it lives to some extent in Poplog, though I don't know
how alive that currently is.

Correction: I realize the article refers to POP-2, and POP-11 is in Poplog. I
actually rescued an ancient POP-2 manual from the bin recently, but I don't
know how POP-11 compares.

------
alexchamberlain
There are at least 2 other projects with the name PyLucid: \-
[https://github.com/jedie/PyLucid](https://github.com/jedie/PyLucid) \-
[https://github.com/yelantingfeng/pyLucid](https://github.com/yelantingfeng/pyLucid)

You might want to consider other names

~~~
FisDugthop
What would you call a reference interpreter for the Lucid programming
language? I understand your point, but nomenclature is not somehow first-come-
first-serve; there are such things as better and worse uses for names.

