Browse files

Add a bit of explanation on the new version being written

  • Loading branch information...
1 parent 6f9baae commit 2bcaadf34ec7f65568877f1ff64d701000e76645 @txus committed Jan 7, 2012
Showing with 47 additions and 15 deletions.
  1. +47 −15
@@ -1,24 +1,54 @@
# noscript
-Noscript is an object-oriented scripting language written in pure Ruby.
+Noscript is an object-oriented, class-less programming language running on the
+[Rubinius]( Virtual Machine.
-It's basically a way for me to learn about language design in a practical way.
-In the future this language will run on the [Rubinius VM](,
-but for now I prefer to deal as much as possible with implementation detail,
-learn as much as I can, and then go for the kick-ass Rubinius VM :)
+It takes design ideas from JavaScript, CoffeeScript, Self, IO and our beloved
-Feel free to criticize and give advice, I'm happy to hear it!
+## Installing
+Noscript only runs on Rubinius, so you have to install it (if you use RVM,
+[here]( is how you do it). Assuming
+you have it installed:
-Noscript is currently under a heavy rewrite. If you want to check out what it
-was before I started messing with everything, *check out the branch named "old"*.
-The master branch is not to be considered even usable.
+ rvm use rbx
+ gem install noscript
-## Install (the old version)
+You can run your programs like this, pretty standard:
-Although for now it's in a **SUPER ALPHA** stage, you can try and run some
-example scripts doing this:
+ noscript FILE
+## Object Model
+Noscript is [prototype-based](
+ Every object is a
+clone of another object with a reference to it. An object is just a collection
+of slots that can be assigned and retrieved. These slots can contain anything:
+literals, functions and other objects.
+`Object` is the master object to clone from, available from the main scope.
+To create your first object, type this:
+greeter = Object.clone()
+greeter.salute = name ->
+ print("Hello #{name}!")
+## Installing the old interpreter (AST-walker)
+Before running on the Rubinius VM, Noscript was prototyped as a simple
+AST-walker interpreter written in pure Ruby, without any Rubinius-specific
+If you want to check out what it was before I started the rewrite, *check out
+the branch named "old"*.
+The old branch is far from usable, but it's a nice example to play with.
git clone git://
git checkout old
@@ -30,6 +60,8 @@ example scripts doing this:
./bin/noscript examples/test_case.ns
./bin/noscript examples/traits.ns
-## Copyright
+## Who's this
-Copyright (c) 2011 Josep M. Bach. See LICENSE for details.
+This was made by [Josep M. Bach (Txus)]( under the MIT
+license. I'm [@txustice]( on twitter (where you
+should probably follow me!).

0 comments on commit 2bcaadf

Please sign in to comment.