Raven Scripting Language - the setting

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

  • Whitespace indentation to define code blocks.
  • Some common function names.

What I ripped from Forth

  • Postfix Notation and the Data Stack.
  • Dictionary of short atomic functions.

What I ripped from Perl

  • Lists and Hash tables.
  • Regular Expressions.

What else it needed to do.

  • Use clear and consise syntax.
  • Be fast to write and fast to run.
  • Use closures as a simple object model.
  • Have minimal restrictions on variable and function names.
  • Rely on best practices guidelines rather than imposing rules for everything.
  • Interface to MySQL and SQLite.
  • Support multithreading.
Get Firefox!