log in
2012-03-13 01:05:22


A while ago, I had an idea for a program that I called Haspina (a Lilitic word, meaning 'magic spells'.) The goal was to take the simple principle of living text, and push it as far as it could go: automatic hyperlinks, spelling correction, math, code execution, geographical annotation, filename and command name completion, generation of real-time graphs, reformatting and indentation, set completion, internal document linking, embedded files, music interpretation, figure-drawing from a very simple command language, thesaurus, et cetera. Everything in Hypercard, Emacs, Wolfram Alpha, Google's calculator features, and as many of Bret Victor's ideas about how to improve Javascript editing as possible. At the time I was thinking I would try to implement a Haskell interpreter inside of it as the native language, since Haskell maps well to conventional mathematical forms and isn't as parenthetically hungry as Lisp.

Unfortunately, at the time, I was really only comfortable in two languages: PHP and Visual Basic. Anyone who's anyone can tell you that this is a terrible situation to be in, if you expect to have a future as a programmer.

In the year since, I have done an eye-melting amount of work in Javascript, perl, and C++. Octavia's maturation has made it clear to me that I actually can implement a decent, respectable language interpreter from within a curly-bracket language as long as I have decent tree-list support underneath everything. So, most likely, if I start out to write it, Haspina will either take the form of an OpenGL application of one sort or another (perhaps SDL), or I will do the smart thing and try to find a way to make it run under AJAX, with a completely custom server application. I am not rightly sure how to pull off local file system interaction in the latter case.

One of my major goals with Sappho was to give the concept of Emacs a facelift; this is something that a browser's rendering engine is inherently good at. Even if I go with a non-networked approach, I might still consider a browser engine to do most of the heavy lifting on the display side.
Samantics comment   8452.209 tgc / 2012.196 ce