Experience, CGO 2012

I attended CGO 2012. The speakers were universally boring, but the conversations that you have with other attendees can be quite interesting. For example, I have been thinking that the hodge-podge babel of languages that makes up web applications should be replaced with something more lispy. William Maddox, currently at Adobe, shares the same opinion and was able to introduce me to two really interesting projects.

The first, Meta-HTML, comes from the inventor of Bash, Brian Fox. It runs server-side and implements a full language within the html tags themselves. It uses the CGI abstraction to run mostly independant of the web server. Installation is as simple as placing the interpreter in your PATH (thanks to unix #!). What’s fascinating are the language ideas: The angle brakets become what parens are to Lisp, the tag names become function names, spaces separate positional arguments, and attributes (which use the attr = "value" syntax) become keyword arguments.

The second, curl, comes from MIT in 1998 and is now hosted (and under active development) by a Japanese company, SCSK. It’s a complete document description language and includes dynamic content. Formatting directives (and many other cool stuff) is implemented via libraries and built-in functions. The calls are just like lisp but use curly braces rather than parens. Not only was this what I had originally envisioned, it goes much farther! You can type variables as dynamic in which case they will automatically update content whenever that variable is updated. (Dataflow, just like cells in a spreadsheet). You can also code up your own threads! So you can code a watching circuit that will update content, say every 5 seconds. They have an development environment (unfortunately Windows 7 only).