|
|
|
|
|
by jcupitt
1411 days ago
|
|
Yes, nip2 workspaces are DAGs, like node graph interfaces. The spreadsheet comparison was originally there to help introduce the interface to a less technical audience. nip2 was written in the 1990s when this stuff was less widespread. I don't like plug-and-socket style graphical node graph interfaces personally -- I think they are hard to reason about, and things like composition and rewriting feel unnatural (to me). I came out of the functional programming community and I wanted things like referential transparency. nip2 is supposed to be a graphical interface that's an expression of a set of relations. It has a three part model: 1. You enter scraps of code (or pick menu items) to build an object in nip2's programming language. 2. nip2 looks at the constructed object and draws the GUI. 3. Changes to the GUI trigger "edit" functions on the constructed object to update it. 4. ... if you go back and edit the code that originally constructed the object, the GUI resets. So your code and the GUI independently update the constructed object, with code taking priority. You get a stateful GUI with a purely functional programming language and you get to keep equational reasoning. |
|