Один чумовой программист, который развил функционально–реактивное программирование в реактивно–требовательное, однажды начал пилить язык программирования Awelon, а теперь параллельно с этим — wiki–движок.
Wikilon will be implemented as a Haskell warp web service using acid-state for persistence and websockets for liveness and reactivity.
Wikilon will be user-extensible, in the sense that developers can add new web services or web applications simply by defining new words in the Awelon Object dictionary. AO leverages ad-hoc naming conventions, e.g. words with prefix `test.` indicate tests that we should run. In this case, new web services might be installed by defining a word like `wikilon\foo` to process HTTP requests on the \foo path. It’s essentially an in-language variation of CGI. However, AO is much easier to secure than CGI, and also subject to partial evaluation (e.g. for a given set of query parameters).
I’d like to shift towards a more persistent, reactive testing environment, in a style akin to iPython notebook. As a developer edits definitions for words, they should be able to immediately observe the effects on whichever notes they’re viewing. A given note shall simply be another word in the dictionary, hanging around for anyone who wishes to view it.
The idea of user programmable wikis isn’t new. But I believe AO is better suited for this role, e.g. with respect to security, portability, concurrency, and composition. AO was designed with wiki-based development in mind.