Ostensibly a text editor, Emacs is a heavily extensible development environment. Extensions are written in the Emacs Lisp programming language and cover such a broad range of computing activities that Emacs is often half-jokingly referred to as an operating system. Its main contemporary implementations are GNU Emacs and XEmacs.