

Sleep - Perl inspired scripting language for JVM - user0
http://sleep.dashnine.org/

======
raffi
Thanks. I'm the author and started developing this in April of 2002. I like
Sleep, even now that I know more about languages and I know its warts, I still
like it. Every language has warts. They're almost like a person, they grow up,
they have experiences, and these experiences shape what they look like as an
adult.

Sleep started its practical life as an embeddable language for an IRC client.
My goal was an LGPL library that others could easily add new constructs to
make the language feel like a first-class integration with the application. If
you ever used mIRC, I was going for that type of integration and reaching that
level of developer (very novice). I was inspired by other scripting languages
I'd used, especially Perl. <http://jircii.dashnine.org/>

I continued to develop the project and took it with me when I was a
researcher. I did a lot of fun stuff after I added serializable continuations
to the language. I demonstrated some neat dependable and self-organizing
distributed systems and also developed some pretty cool simulations all built
on Sleep.

After I left my scientist life, I started work on After the Deadline and
Feedback Army. Feedback Army is just a web application. It's built-in Sleep
too. After the Deadline is the software service grammar checker used on
WordPress.com and available in other places, guess what it's built-in?
<http://open.afterthedeadline.com>

------
geocar
Very odd. Some observations:

\+ No slicing syntax. Sigils are used to type/namespace the variable, not to
indicate rank.

\+ Magic variables like $null instead of keywords. The ability to manipulate
the lexical bindings of a closure with this seems like there are
underspecified corners lurking.

\+ Automatic binding of variables in subroutines makes implicit closures
impossible. Instead PHP-inspired explicit bindings are required.

On the plus side: It has call/cc. This is useful enough to make up for most of
the other failings.

------
j_baker
I'd be interested if the website made it easy to get examples of sleep's
syntax. An ounce of example is worth a pound of feature list. :-)

For instance, the scala website has a nice big link that I can use to find
examples: <http://www.scala-lang.org/>

Why can't more websites for programming languages do the same?

~~~
raffi
The Sleep Manual is a good source of examples, every function in the language
has an example associated with it:

<http://sleep.dashnine.org/manual/>

Another good place is the Sleep Snippets blog. I haven't updated it in a long
time though:

<http://www.jroller.com/sleepsnip/>

~~~
j_baker
Those aren't good sources of examples. They're good sources of explanations
with examples.

When I'm evaluating a language, my first priority is seeing whether it's even
worth spending the time to read the explanations. First and foremost, I just
want to get a feeling for what the language actually _looks_ like. If I like
what I see, then I'll be willing to go more in depth. I'm much more likely to
look elsewhere if I have to wade through the manual or complex explanations to
get an idea of what a language looks like. It's not that I can't handle the
complex explanations. It's just that I can't handle _every_ language's complex
explanations. :-)

------
loewenskind
All I can think to say is: why? It looks so amateurish, not well thought out
(e.g. $null) and inconsistant I can't think of any reason to use it.

If you want a dynamic language, Clojure is superior in every way and created
by an extremely sharp guy. If the parens turn you off then maybe Groovy would
be a better fit. There are a wealth of languages already on the JVM. I think
the competition is too strong to warrent anyone paying a "late night effort"
like this any notice.

