Slate is Bootstrapped
aster_ken writes "The latest Slate compiler is finally able to compile itself. To quote the website: "Slate is a prototype-based object-oriented programming language based on Self, CLOS, and Smalltalk. Slate syntax is intended to be as familiar as possible to a Smalltalker, rather than engaging in divergent experiments in that respect.' The beta release is currently being written in Common LISP." The latest version of Slate, 0.3, is now available for download. It was previously mentioned in this Slashdot article."
Is it bootstraped? I think it may be bootstraped by smalltalk or something similar (like Self), but it use Lisp...... quite different language.
You can do prototype-based coding in many other languages, actually.
For instance in Perl you can do (after some setup of course):
$obj = Object->new; # get started
$obj->{name} = 'Joe';
$obj->{shoe_size} = 12;
$obj->{age} = 21;
$obj->{is_old_enough_to_drink} = sub {
shift->{age} >= 21;
};
etc.
Add a little syntactic sugar using AUTOLOAD and they look just like static classes. Add some more scaffolding and you have inheritence, and everything else.
Actually, many perl objects already let you create new ones by "$obj->new" rather than just "ClassOfObj->new", just because of the way the language works.
And of course you can do all this and more in Ruby.
As a Ruby guy who likes Lisp and Perl as well, I always wonder about these new things like Aspect-Oriented Programming or prototypes. People actually have to move from one language to another just to get these features?? I can add AOP to Ruby with half a page of code! Just add a hook before/after every method call.