specs-feup / PipesGraphLanguage

Domain Specific Language for connecting pipes
3 stars 0 forks source link

Any future? #2

Open dumblob opened 2 years ago

dumblob commented 2 years ago

Do you have any plans to extend, develop and maintain this language further? If so, what are the plans?

I have some crazy brainstorm ideas:

  1. create a comprehensive language for data manipulation (I'm deliberately not saying a programming language - i.e. no focus on turing-complete computations per se, but rather focus on data manipulation in time)
  2. feedback loops
  3. splitting & muxing (both with and without breaking the full ordering)
  4. merging & demuxing (both with and without breaking the full ordering)
  5. changing frequency
  6. reshaping data samples
  7. (recursive) windowing/buffering & stepped/window-delimited processing (to break full ordering into partial ordering and back)
  8. synchronous (blocking) joining/merging/demuxing
  9. asynchronous (non-blocking) joining/merging/demuxing
  10. recoding data samples
  11. runtime arbitrary creation & deletion of pipes based on inputs
  12. full AOT type safety (incl. null/none/nil safety)
  13. pipe-based-feedback-loop error handling
  14. push/pull semantics choice anywhere in the graph
  15. pipes in pipes (i.e. recursive embedding of infinite streams)
  16. ...

This has many use cases - from easy data exploration through easy writing of true apps up to having no-effort UIs (implicit insertion of | prettyprint in nushell, https://github.com/calebwin/stdg etc.). And the best of all - it inherently supports manycore parallelism (see https://binpa.sh/docs/tutorial/ )! Yeah - the first ever zero-effort fully parallel data manipulation (programming?) paradigm!

Crazy, isn't it?

joaobispo commented 2 years ago

Hello,

thank you for your suggestions. Unfortunately, this project is no longer maintained. However, it could be reopened/repurposed, for instance, as a master thesis. We will take this into consideration.

dumblob commented 2 years ago

thank you for your suggestions. Unfortunately, this project is no longer maintained. However, it could be reopened/repurposed, for instance, as a master thesis.

If that ever happens, feel free to get in touch (e.g. by mentioning my nick in this discussion). I'd be more than happy to provide some expert input and/or mentoring.