~milesrout/vine unlisted

VINE: VIVE Is Not Emacs / VIVE: VINE Isn't Vim Either
A wide variety of changes (the perfect commit)
Improve strings and allocators
Switch entirely to 64-bit hashing


browse  log 



You can also use your local clone with git send-email.

VINE: VIVE Is Not Emacs
VIVE: VINE Isn't Vim Either

VINE is that rarest of beasts: a doubly recursive acronym. It's also a text
editor. The command is 'vine', the language is 'Vine', the acronym is 'VINE'.

vine, like all good text editors, is also an operating system, a programming
language, a scripting language, a virtual machine, a window manager and a
computer use philosophy.

The goal of the VINE project is to develop a text editor that is as powerful as
Emacs but with vi's command philosophy applied throughout. Programs are modal,
and the way we interact with them should reflect that. Extensions for Emacs
that replace a lot of the default keyboard shortcuts with vi-style bindings
don't address that discrepency. They also don't take into account modern
computers, which are highly parallel and connected. Emacs with a 'vi bindings'
mode isn't a modern, modal, secure, connected, concurrent and fast text editor.
It isn't a great mail client. It isn't a great window manager. It isn't even a
very good text editor. vine aims to be all of those things.

Like Emacs, vine will be written mostly in a new programming language. This
language will be called Vine. Vine will be a safe, portable, easy-to-use
programming language. It will be just-in-time compiled to machine code. It will
be a proper programming language, with all the facilities of a normal
programming language. Vine will not take great leaps and strides in programming
language design. It will not attempt to integrate cutting edge programming
languages research, as fun and interesting as that is. It will just be a fast,
usable, safe language. Vine will be implemented in C, a language that will
continue to be relevant for decades to come.

If vine will be all that, what will it not be? It will be a virtual machine, a
just-in-time compiler, an ahead-of-time compiler, a command language, a web
browser (and thus another compiler), a mail client, a UI toolkit, an operating
system, a process supervisor, a window manager, a file system, a repl, a
debugger, a PDF viewer, and, oh, a text editor too. What won't it be? It won't
be an integrated, inescapable ecosystem. Every part of vine can be used on its
own. vine is interoperable, using standard inter-process communication