Why Slate

From SlateWiki

So, why did we bother to make a new programming language, when there are so many out there? (Note: To the authors' knowledge, the specific Slate features were not asked for by anyone of note...)

It's kind of an iterative story:

  • We liked Self, but it seemed too simplified as a language. For example, code blocks and object literals are conflated, which makes code blocks weaker and object literals become too predominant in thinking.
  • The Self environment itself was a bit hap-hazard in terms of the design and bloated in run-time requirements. It just didn't seem like the authors or funders had the time to consider a real system that someone would enjoy "living in".
  • Common Lisp and Dylan are great, and powerful, but the syntax ideas focus on structure and not readability per se, or to be more clear, with the natural flow of the thought process. Too much code has elements with haphazard names or expression shapes. Languages like Goo improve on these, but still didn't read well.
  • Squeak Smalltalk is great for experimentation, but suffers from some dubious licensing issues and a project / social structure which are limiting or at least just breed chaos. The code also has its own pervasive chaos.

Some issues are broad:

  • Experimental, cool systems like Self, Strongtalk, Dylan, and others started out with funding and great promises, and wound up being dropped or with their engineers slurped into larger, less-focussed projects. It seemed to behoove us to start with something tiny that we controlled and build up slowly, so that anyone's expectations would always be exceeded!
  • Every language and environment has a community attached to it with their own interests. We love these communities, but when "burning the disk packs" as Alan Kay puts it, it only takes a couple of people to distill the lessons of hundreds, and more people will only confuse the issue.