Construct
The Grid. A digital frontier. I tried to picture clusters of information as they moved through the computer. What did they look like? Ships? Motorcycles? Were the circuits like freeways? I kept dreaming of a world I thought I'd never see. And then one day . . .
WIP
Construct is a reactive graphical symbolic environment for PicoLisp, designed as an alternative to office/productivity suites, specifically MS OneNote and Excel. PicoLisp was chosen due to its unique dynamic nature suitable for this context (think of programming in Excel).
The UI is simple and consistent: instead of a grid of cells like in MS Excel, users interact with lists of atoms. The same way cells in an MS Excel spreadsheet automatically update, cells in lists automatically update.
Construct uses Lisp as the projection which is the UI, hence everything is Lisp - data, code, UI - even the underlying database (native/first-class in PicoLisp).
It will be available on Linux, MacOS, Windows, and Android (through PilBox). The desktop integration aspect is only technically possible on Linux. iOS support has not yet been fully assessed.
The target audience consists of information/knowledge workers, students, researchers, developers/programmers and creative types.
Motivation
To ameliorate the following sentiments:
- "I'm tired of needing a new application for every different task."
- "I'm tired of needing a new data format for every different task."
- "I'm tired of not being able to connect and use my data in other applications."
- "I'm tired of not being able to share my data with others."
- "I'm tired of needing markup, native-code, JIT-Code, scripting languages, database languages, domain specific languages, etc..."
- "I want to use the full power of the computer."
- "I want the computer to meet me more than half way."
It is focused on giving gradual control and power to users allowing them to delve into the system rather than isolating them through abstractions, and Construct attempts to do that by starting with one of the simplest abstractions - the list. It is not an entirely new concept but rather a different approach based on ideas forlorn.
My friend Harry Vertelney recently reminded me of Larry Tesler's law of Conservation of Complexity. Simply put, one cannot reduce the complexity of a task. One can only shift the burden.
...
In my 1996 book, Tog on Software Design, I presented Tog's Law of Commuting: "The time of a commute is fixed. Only the distance is variable." Translation? People will strive to experience an equal or increasing level of complexity in their lives no matter what is done to reduce it. Make the roads faster, and people will invariably move further away.
Combine Tesler's Law of Conservation of Complexity with Tog's Laws of Commuting and you begin to see the 2nd order effect that we must anticipate in the future. If people will insist on maintaining equal complexity, yet we reduce the complexity people experience in a given task, people will take on a more challenging task.
...
Given that people will continue to want the same level of complexity in their lives, given that we will continue to reduce the proportion of complexity of any given function that we expose to the user, we may expect that the difficulty and complexity of our own tasks, be they at the application or OS level, will only increase over time. That has certainly been the case so far--we've gone from simple memo writers and sketchpads to document processors and PhotoShop. And we may assume that's only the beginning.
Bruce Tognazzini, "The Complexity Paradox", Ask Tog, September, 1998,
Preview
NOTE: Screenshot is at full verbosity, NIL symbols can be hidden
Installation
WIP
- https://github.com/seteeri/multimethod
- https://github.com/seteeri/easing
- https://github.com/seteeri/unit
- https://github.com/seteeri/elog
- https://github.com/seteeri/glm
- https://github.com/seteeri/os
- https://github.com/seteeri/gl
- https://github.com/seteeri/glfw
- https://github.com/seteeri/x11
- https://github.com/seteeri/xkbcommon
- https://github.com/seteeri/dlist
Manual (WIP)
License
Apache License 2.0