When I showed TimL to people they asked me if it was a joke, so it's not surprising that Tim Pope has actually put a section in the readme called "Is this a joke?"

If you mean the 6,000 lines of working code, then no, I poured hundreds upon hundreds of very serious hours into that. But if you're referring to the fact it's woefully underdocumented, adds considerable overhead to an already slow host platform, and ultimately unlikely to gain any traction, then yeah, probably.

TimL is a Lisp implementation that transpiles to VimL. If you know anything about Lisp then you might already appreciate that it's technically relatively simple to parse. However, TimL isn't just any old Lisp, it's somewhat Clojure inspired:

  • Clojure like syntax and API, including everything from rich syntax literals to destructuring.
  • Namespaces, including refer and alias.
  • The same persistent collection types and interfaces, including vectors, hash maps, hash sets, lists, and lazy sequences.

Impressive! Here's a sample from Tim's readme:

(ns my.ns
  (:refer-timl :exclude [+])
  (:use timl.repl)
  (:require [timl.file :as file]
blog comments powered by Disqus