typescript-tools v0.7.0 available for testing (commandline access to TypeScript language services, basis of Vim/Emacs/Sublime plugins), supporting TypeScript v1.8.10.

typescript-tools.vim available for testing (Vim plugin for typescript-tools), supporting TypeScript v1.8.10.

[Home] [Projects] [Twitter] [Github] [Blog] [Screencasts]
(Javascript specialist, available for work in Germany, or remotely)
I develop typescript-tools, a commandline server and Vim plugin for using TypeScript Language Services (types, jump-to-definition, completion, compiler errors). Others have used this to build TypeScript plugins for Emacs and Sublime.
I help to manage js-tools, the mailing list for Javascript tool developers.
In a previous life, I used to be a Haskeller. If you are looking for my old Haskell projects, you'll find most of them via my Haskell Community page.
I also used to be an academic researcher. Many of my older publications and talks are available online.
I do have a blog, but tend to be more active in mailing lists and issue trackers, so my blog has not seen much activity recently.

I am a software toolsmith. I enjoy writing software that helps turning computers into useful tools, with a particular focus on writing tools for other software developers - from development tools all the way to programming languages. I have worked with Javascript/TypeScript (~4yrs/2yrs), Haskell (~14yrs), and more other programming languages than I can remember (past intensively used languages include C ~8yrs, Java, Perl, ...; on smaller scale, I also used languages like Prolog, Lisp, Erlang, ...), starting from way before there was a web (my first languages were Homecomputer Basic and Z80 Assembly). I have been on the web since before the internet archive started, though I've mostly seen it more as a way to distribute content than as something to play around with (so please pardon my lack of fancy design/animations/etc:-).

My recent projects tend to be Javascript projects or Vim support for Javascript and TypeScript developers or WebApp-related technology experiments. Their sources are likely to appear on my Github account.

My interests evolve around (declarative) programming languages: language design and implementation, tool development, and programming techniques. Having looked into most of the major programming paradigms, I've more or less settled on a combination of functional and concurrent programming as the main paradigms I like to see supported well, directly in the language design. Logic and object-oriented programming also come in handy as programming paradigms, but language designs built solely around these two tend to be less helpful for general programming.

On a purely technical basis, I have been tempted to stick with Haskell, helping to address its remaining shortcomings. The main reasons for considering Javascript were social in nature, in particular, what I would call momentum: Javascript had the potential to reach more developers and devices -- which has been attracting ideas, tools, experiments, programmer and tool builder activity.

Javascript is not without problems, but it is surprising what one can achieve by focussing on the good parts of the language: out of the box, it supports functional, object-oriented, and aspect-oriented programming. Its main problems are syntax, semantics and APIs that hamper extensive use of functional programming or equational reasoning (instead, it has inherited a focus on side-effects, statement blocks and built-in control structures), and an inertia (the flip side of momentum) that hampers and occasionally misdirects attempts to change the language (none of which are helpful when looking at concurrency support; even functional programming improvements sometimes encounter resistance). It remains to be seen what can be done in terms of improving the Javascript experience by scaffolding it with tool support.

If you are looking for a Javascript coder and tool developer with my background and interests, please get in touch.