> TECHNOLOGY TEMPLATE PROJECT OHS Framework > https://www.dougengelbart.org/content/view/110/460/ > > I suggest that you also look at Doug Engelbart's work. Nice! Seems that lots of ideas in it can be incorporated naturally into my model.
> I will say something what may not look possible, I rather think it is > possible. It would be good if each of those nodes would have its > unique ID, as then it becomes possible to have someting similar as > OPML able to reference those parts of text even if the node change its > position. Maybe is not feasible. In a live system, every object automatically get a unique identity, which is their intrinsic object identity (on many implementations it’s the pointer address). It’s already used for cursors and markers in my current experimental system and I wrote editing command carefully to preserve identity as much as possible (so the cursor and markers can moves “along” with edited code). So to some sense, I already have it. Now I read the OHS framework, it makes some sense to me that sometimes we want human interpretable ID. Currently I’m imagine giving some tags to some node, and hope the tags from the root to a given node uniquely determine a node. It doesn’t have the property that you can always determine a unique node though… > Question is the speed. > > Will that system have extension language and which one? Will it be > Emacs Lisp or different? Sure, my current experiment is written in Common Lisp, and Common Lisp automatically become its extension language. It’s an “extended” Common Lisp though (aka with some macros), because I need to support buffer/node-local environment and advices. For a serious long-term projects, I’m not sure if CL is the right way to go. It’s too adhoc and unnecessarily complex to my taste, and it also lack some important features (the-environment and call/cc). My ideal language, to this day, seems to be GNU/MIT Scheme. (I don’t like Guile better than CL. It doesn’t have full first-class environment support and strictly speaking not even full call/cc, because it has to corporate with C runtime).
