dataflow, a paradigm so closely related to FRP it might actually be indistinguishable.
much of this section is plagiarised from This Stackoverflow Answer:
- VHDL , Verilog and other hardware description languages are essentially dataflow
- Chuck
- Cunieform
- Lustre , used in defence, aerospace and power plant industries
- Ptolemy II
- Nyquist
- Spreadsheets are essentially dataflow
- Unix pipes
- Futures and promises are dataflow or dataflow-like constructs found in many modern languages
- The messaging in the actor model is dataflow
- Some languages have dataflow features:
- Oz has dataflow variables
- Groovy has GPars
- Clojure has clojure.contrib.dataflow , Reagi and Javelin
- LabVIEW ( screenshot [ source ])
- Max/MSP ( screenshot [ source ])
- Pure Data ( screenshot [ source ])
- Reaktor ( screenshot [ source ])
- SCADE ( screenshot [ source ]), the graphical programming environment for Lustre
- SynthMaker ( screenshot [ source ]) and FlowStone
- vvvv ( screenshot [ source ])
- Expecco ( screenshot [ source ])
- Shake ( screenshot [ source ])
- [BLOK] ( screenshot [ source ])
- Quartz Composer ( screenshot [ source ])
- AudioMulch ( screenshot [ source ])
- https://github.com/wbkd/react-flow
- Blender
- Voreen ( screenshot )
- Unreal Engine’s Kismet ( screenshot )
- ANKHOR FlowSheet ( screenshot )
- Dynamo for Autodesk Revit ( screenshot )
- Liveblox (website missing)
- Godot, and Unity, probably.
- SunVox music tracker has a patch/filter system
Redux Prior Art (2015) (references from this link)
- flux (state, action) => state
- elm “model view update” architecture (action, state) => state
- Immutable https://facebook.github.io/immutable-js
- reselect
- Baobab
- RxJS
- “Turning the database inside out with Apache Samza” by Martin Kleppmann - YouTube
- Turning the database inside-out with Apache Samza - Confluent (text) explains the “Event Sourcing” architectural pattern which resembles the functional reactive style, as applied to databases.
https://en.m.wikipedia.org/wiki/Sample_and_hold
In electronics , a sample and hold (also known as sample and follow) circuit is an analog device that samples (captures, takes) the voltage of a continuously varying analog signal and holds (locks, freezes) its value at a constant level for a specified minimum period of time.
Since FRP is somewhat about simulating the way modular synthesizers work, one simple way of implementing a kind of memory is emulating this electronic circuit pattern.
LTN12 is based off of a Source, Filter, Sink paradigm borred from electronic circuits and used often in FRP. While this was created for handling network streams, the pattern can be used for handling other kinds of streaming data.
- lua-users wiki: Filters Sources And Sinks
- lua-users wiki: Filters And Pipes Reloaded
- http://www.lua.org/pil/9.2.html
- LuaSocket: LTN12 module
- GitHub - vsergeev/luaradio: A lightweight, embeddable software-defined radio framework built on LuaJIT
- Conal Eliot’s explanation of FRP on stackoverflow (2009)
- Fran Tutorial - Composing Reactive Animations (1998)
- Functional Reactive Animation (fran) (1997)
- FRP - Haskell Wiki (created by Conal 2008, last edited 2020)
- Denotational design with type class morphisms
- Push-pull functional reactive programming
- Denotational Semantics Haskell wikibooks page
https://ractive.js.org references
- Not anythign revolutionary, just my particular favourite javascript reactive thing.
RPD — Introduction
This system looks awesome! html/svg patch language.
here's what it's inspired by:
- Quartz Composer
- vvvv - a multipurpose toolkit | vvvv
- NodeBox | NodeBox
- Synths : Reaktor 6 | Komplete
- PureData
- Blender Material Editor
- powered by GitHub - kefirjs/kefir: A Reactive Programming library for JavaScript
- RxMarbles: Interactive diagrams of Rx Observables
- cyclejs/devtool at master · cyclejs/cyclejs · GitHub
- RxFiddle
- RxViz - Animated playground for Rx Observables
- Visualizing Reactive Streams
- Rx Diagrams
- Debugging for reactive programming | Proceedings of the 38th International Conference on Software Engineering
- FRP flavors
- Conal flavor (Like Fran, but hasn’t quite worked out all the details, only did toy examples)
- Cycles.js style (observables, signals),
- Elm style, like event sourcing
- React.js (not true FRP, re-renders are manually triggered)
- CONVERSATION: What’s the core differences between the observables/signals approach of Cycle.js and Elm vs React’s pseudo FRP manually-triggered branch re-rendering approach? : javascript
- André Staltz - Unidirectional User Interface Architectures
- GitHub - gelisam/frp-zoo: Comparing many FRP implementations by reimplementing the same toy app in each.
- https://github.com/funkia/turbine (conal like?)
- flappy bird in a stateless style
- Reflex FRP
- Purescript
- Neil Mitchell’s Haskell Blog: Turing Incomplete Languages
- turing completeness considered harmful: component programming
- (200X) argues that CORBA and COM sstyl components can achieve many useful functions withhout full turing completeness, referencing quartz composer and other systems as examples.
- FrTime: Functional Reactive Programming in PLT Scheme (2004)
- FranTk: A declarative GUI language for Haskell (Meurig Sage ) (year??)
- A Declarative API for Particle Systems | SpringerLink
- Reactive.js: Functional Reactive Programming in Javascript - Engineering Blog - Wealthfront (don’t know anything about this one.
- tangle, a javascript library for reactive documents by Bret Victor combine spreadsheets with documents to create reactive documents
- ReactiveCocoa Philosphy
- Keep Working, Worker Bee!: Quartz Composer: the world’s most widely-used functional-reactive programming language (2006) initial reaction to quartz composer, realising that apple had essentially included a really slickified visual programming version of fran as a standard developer tool.
- Quartz Composer Blog | A Quartz Composer Blog
- Quartz Composer Experiments — Joëlle