I did not set out to create yet another programming language, nor did I have any specific aims going into this project. Instead a collection of separate scripting tools, hacked up for one task or another, grew slowly together into a whole during several years use on Linux boxes. After the third rewrite of the core, the result is a scripting language I've called Raven.

Oh, and no special reason for the name. I like birds. It has absolutely nothing to do with picking the best features from the corpses of previous languages in a nefarious fashion.

So I'll describe my ideal everyday langauge, in terms of what I've ripped off from existing languages. You have my sincerest condolences if you are unfortunate enough to have different tastes :)

What I ripped from Python

What I ripped from Forth

What I ripped from Perl

What else it needed to do.


There are some programming task examples listed for Raven at rosettacode.org.

Local Snippets



Tagged Releases

Current version of Raven is released under the GPL.

Tested on Linux only. Specifically Ubuntu Fiesty and Fedora Core 6. Each release passes some basic unit testing and must run satisfactorily on my own server for some time before being tagged. That said, this is still beta software.

You will need the mysqlclient, pcre, readline, ssl and sqlite libs.

Download Source (.tgz) (tagged 2007-11-27)

Download Package (.deb) (tagged 2007-11-27, compiled on Ubuntu Fiesty)

Ubuntu Fiesty

Build from source:

apt-get install libmysqlclient15-dev libpcre3-dev libreadline5-dev libssl-dev libsqlite0-dev
tar zxpf raven20071127.tgz; cd raven20071127/;
./configure --with-all && make && make install

Install from package:

apt-get install libmysqlclient15off libpcre3 libreadline5 libssl0.9.8 libsqlite0
dpkg -i raven_20071127_i386.deb


In progress, and as yet, no particular order.

Core Words

In the interest if keeping things clean, functions only get added to the core when they are needed, and not because [insert-other-language] implements them. This has two results:

That doesn't mean it is difficult to get functionality added; just ask, and assuming a case can be made, new functions are welcome.

Word list.

Mailing List

Michel Martens has kindly offered to host a mailing list for Raven: http://lists.soveran.com/listinfo.cgi/raven-talk-soveran.com.