Synthesis: General Overview? (Features, Capabilities, Limitations ... )

Firstly thank you @mentaloid for this seemingly game-changing contribution.

I have been dreaming of Logseq with Jupyter-like functionality and beyond.
A deeply interactive and programmable synthesis of writing and programming.
A fluid and universal canvas.
Outliners + IDEs + spreadsheets + data wiki …

I’m trying to understand - in a very general sense - what Synthesis offers and its limitations.

My dream is something that provides a JS/Python scripting interface to Logseq, that can:

  • read ALL Logseq data
  • write ALL Logseq data
    • both disposably and persistently
    • generating new forms of output (tables, charts)
  • create custom UI elements
  • read and modify formatting
  • triggers for code execution
    • on Logseq load, on page load, when other code or pages are modified …
  • provide a sane/constructive programming experience when developing Synthesis scripts (console…)

Does Synthesis do all of the above?!

My wish list is essentially what ‘Google Apps Script’ provides for Google Sheets.
I really like their overview. I would find it helpful if something similar could be created for Synthesis.

Beyond a scripting interface for Logseq, there seems a domain-specific language that more naturally integrates everyday writing. And I’m sure there are further features I’m yet to grasp!

Thanks and excited : )

  • Short answer: Yes, Synthesis has the capability to do all these things.
    • Has already proved that.
    • That doesn’t mean that it should do all that.
  • Long answer: Synthesis is like a programming language, i.e. a tool to develop things.
    • For its features, read Comparison of Synthesis to other programming languages
      • Main point: The advantages of Synthesis over other programming languages are determined by its design choices.
    • As a language of general purpose:
      • it can be used to develop pretty much everything possible in its underlying environment
        • Being a kit, the environment of Synthesis is Electron, so it can be used to develop a vast number of things.
          • Therefore, the only limitations of Synthesis are the limitations of Electron.
      • it needs libraries for specialized functionalities
        • Some reference libraries are provided in the tutorials.
        • Others are under development.
          • Development is currently paused, until either:
            • there is particular interest to fund it
            • Logseq becomes more mature
1 Like