

The Slate Programming Language - tzar
http://www.slatelanguage.org

======
briantrice
Ohai. I'm one of the authors. Thanks for noticing this, but we did wind down
the project several years ago after failing to bootstrap it into what we
wanted it to be.

Main regrets: \- Starting with multiple delegation from Self; we migrated to
Traits a la Squeak and Perl6 but it was pretty late in the project. \- Hewing
too closely to Smalltalk syntax, instead of ditching the lexical awkwardness
for keyword syntax and more conventional but unambiguous lexical patterns. \-
Image-based bootstrapping was useful, but too monolithic. I wanted to make it
have a symbolic graph linker to stitch together images from modules. That
would have kept the project flexible enough to keep going.

As it is, I'm disillusioned with the open source and software research fields,
and working on startups to accumulate my own funds to run a project like this
without being subject to the rhetorical whims of a diseased culture. Hah!

You may as well AMA.

~~~
smosher_
> Image-based bootstrapping was useful, but too monolithic.

I feel that. I have no problem with images in theory, but history has made me
flinch at them.

> As it is, I'm disillusioned with the open source and software research
> fields

That's a shame. Open source is very diverse... I hope you have better
experiences in the future.

> You may as well AMA.

Awesome. What do you think of Io? —
[http://iolanguage.org/](http://iolanguage.org/)

I'm asking because I rarely ever hear PL people talk about Io.

I'm also curious, was there a coherent design goal or philosophy behind Slate?
Alan Kay is very clear about his values, I have a handle on what Io is about,
and so on. All I'm getting from Slate is "better than Smalltalk" but is there
something more specific to it?

~~~
briantrice
Images are like filesystems or sandboxes, by the way. They just need better
tool support.

~~~
smosher_
No argument here.

The problem I have in practice is images are so often lacking, or they start
you off with an alien universe full of preconceptions rather than just a
collection of tools. This isn't an inherent problem, but it seems to show up
half the time or more.

I want to like images, but I think what I really want is a system that has a
fully functional base state with a good image that can be (and usually is)
loaded at startup. I guess that might get in your way if you're worried about
optimal performance.

~~~
briantrice
Well, I'd like to explore a link-phase to build images. I think that'd be
really quite interesting and might break up the monolith and mix Smalltalk
ideas in with Unix as they ought to have.

------
vertex-four
Unfortunately, this seems to be no longer developed - last github commit is
from a year ago. It might've been interesting to see another language with the
image system.

I've been playing with Smalltalk recently, and it's really interesting as an
environment. It has a number of RAD tools built in - the flexible Morphic GUI
from which you can quickly create your interface and middle-click to debug any
given morph, the image system allowing you to store state without explicitly
dealing with a database, and being able to develop from the same environment
that your code runs in, allowing quick turn-around in adding and testing
features - and I'm wondering why it's not used more often for line-of-business
applications.

~~~
briantrice
I don't feel motivated to work on it (this particular artifact) any more. I
want to make something relevant to and appreciated by an audience, and
programmer culture seems to be unwilling to do that in a deep way.

If I continue, it will be with a specific story in mind about who it's for and
what message to convey. I have been attending The Strange Loop for a few years
now and growing some ideas to write about.

It's worth noting that Slate was one major project in a long stream of
development I started privately in the early 1990's and then brainstormed with
some nerds on at the TUNES project until I made Slate its own thing (a kind of
stepping stone towards the TUNES goals).

~~~
mamcx
For fun, I want to build a language. After see you can do a lisp very easy, I
stop and wonder for what my "new" language can be useful. This make me think
in how do a REPL, a debugger, what kind of task this must solve naturally,
etc, and for which kind of users!

However, pull of a successfully language is very hard. That depress me.

\--- See more at

[https://www.reddit.com/r/coding/comments/2ocw2r/how_to_creat...](https://www.reddit.com/r/coding/comments/2ocw2r/how_to_create_a_programming_language/cmy71xn)

~~~
briantrice
You'll never regret it, and although every language is ultimately worth
criticizing, it's worth having a project of your own to refine or learn from.

------
briantrice
I will say that I'm not done yet; I fully intend to build a practical system
that hands the lessons of FoNC to the everyday context. I've learned a lot
over the years and tried my best to smooth out my early rough edges.

The question is how to do it and with whom and for what audience.

------
SamReidHughes
It's a relief to find out this language is dynamically typed. That way I don't
have to think about it.

~~~
briantrice
So, there's something about that that is true, but we weren't aiming for this
per se.

We wanted to make the idea of a programming world as an OS manifest, so Slate
images and object networks are like a file system image. The most
straightforward way for us to get into that was dynamic with optional typing.

The idea at some point was to have staged meta-programming (like we did to
build the VM out of Slate) that was typed, so that the static existed within
the dynamic but in a more obvious way than "sure, my Haskell universe exists
on a nasty filesystem".

We tried.

~~~
briantrice
I guess I should say that we built a type system in Slate using objects and
multimethods; it was used for metaprogramming and self-hosting.

Obviously not ideal, but we leaned in the direction we hoped others would see.
I don't think enough people saw what we were doing beyond the front page news
blurbs. Slate has a lot of good code in it.

