Slate Living Tutorial

to those about to rock...

Introduction

Slate is a new kind of high-productivity object-oriented programming language and development environment.

Slate is prototype-based: classes and objects/instances have been unified into one single concept.

Unlike many other languages, in Slate methods don't belong to objects, but instead pattern-match on their argument types, thus allowing for better code-reuse, extensibility, and modularization.

By default, objects are garbage-collected.

Slate allows for optional type annotations and our plan is to extend this into a validation framework that goes beyond simple type checking. This should close the gap between statically and dynamically typed languages.

Objects live in an image that behaves like an object database. In future releases the IDE will replace the current antiquated file-based source approach with an interactive object+source inspector that will also allow for easy source refactorings.

For the future, we plan to add different language modes. For instance, in PrimitiveMode you can write highly-optimized static code, whereas in default mode you write slower, but dynamic and much more effective code. Since you can reuse the same syntax for all modes you don't have to switch between programming languages for different domains, anymore.

The syntax forms nice sentences which makes Slate code very easy to read. The IDE will also abstract over source layout (indentation conventions, etc.) and further simplify many syntax aspects, so you can concentrate on more important things.

In the end, Slate will be able to replace and unify many kinds of programming languages (scripting, static+dynamic, statically+dynamically typed, fast+effective) into one coherent concept. Unlike Smalltalk, Slate will be nicely integrated with the OS, thus removing the artificial barrier that Squeak imposes on you.

Comments

VM-less, eh?