Lively.next: A personal programming kit
lively-next.org
lively-next.org
Apart from the UI (inspired by Self's Morphic [1]), lively.next implements a meta system on top of normal JavaScript that makes such things possible as to hold on and inspect system state (variables defined inside a module, mechanisms for redefining things etc).
Also, lively.next runs on any JS system and it's various packages can be embedded, e.g. to create a programming environment for node.js and other such things.
The Lively project evolved over time and lively.next is the newest version:
- https://www.lively-kernel.org is from the Sun Labs / HPI days (check out the ancient http://sunlabs-kernel.lively-web.org, fully SVG based rendering)
- Lively Web: https://lively-web.org A live, programmable wiki (2012-2015)
- lively.next since 2016 https://lively-next.org.
a) How to user graphical constructions (we call them parts) outside of the main framework? We currently work on ways to "snapshot" them in a way that they include all their dependencies. So not just the object (graph) state but really all code dependencies. es6 modules are a big help here since they allow to trace dependencies statically. This is work in progress and we will post updates about this.
The state right now is that you can the HTML view of morphs into web pages, e.g. see [2]
b) Several parts of the system can be used standalone, e.g. you can enable support for Lively tooling in node.js processes or arbitrary webpages. See https://lively-next.org/worlds/lively-2-webpage for a bookmarklet that loads the lively.vm [1] and lively-system-interface on a arbitrary web page: https://imgur.com/a/2foGR. This allows you to then use the workspaces, system browser, inspectors, etc. on remote targets.
I'm still hoping for http://witheve.com/ to take off :)
Lively reminds me of TouchDesigner (node based programming with a focus on visuals) http://derivative.ca/events/2017/AlienCovenant/
All that stuff makes the environment much more convenient to use for general content creation, not just programming.
Inner platform/walled garden: Almost all Smalltalk systems basically implement their own operating system complete with their own integrated graphics system/window manager, process scheduler, and so on. It's an amazing environment for creating applications but it doesn't play well with the outside world and there isn't a straightforward way to 'shake' an image down to just your application. Deployment usually comes with the overhead of the entire Smalltalk system and interop with native can be somewhat limited. Imagine if Java applications only ran within Eclipse.
Zipf's law: The popular languages are so popular that their communities generate their own gravity (i.e. lots of effort tends to attract more effort). Despite Smalltalk's many appealing qualities (ergonomics, simplicity, maturity, robustness..) it stands in the shadow of giants; many people don't even know it's there or can't invest the effort to give it a shot so it never achieves critical mass.
We first wanted lively.web but then came the .web tld disaster .
.next was chosen b/c there were / are several versions of Lively over the years with version numbers LivelyKernel 2 [1], Lively4 [2], etc. lively.next should simply signal that this is the ongoing and evolving project in the Lively family.
[1] https://lively-web.org [2] https://github.com/LivelyKernel/lively4-core
We are currently evaluating options for getting this stuff funded and Python would be a another target language / platform.
On The other hand, zope/zodb did manage to get pretty far wrt "magically persistent" object graphs for python.
Someone care to tl;dr what this is?