We really need to give kudos to these guys. They have been persistent for years in developing a high quality Scheme, and then taking it to the next level. PLT Scheme is practical in its library design, flexible in its reader, meticulous in its documentation and fast as an execution engine.
Making a language fast and well-documented is a thankless task. It's nothing short of a herculean accomplishment for these guys to come out of left field with such a fantastic offering.
so so so true. Whats doubly impressive is that many of the core active members are full time academics who are able to frame their research so that they can both spend their time improving their PLT/Racket, and framing their work as also being genuinely top notch research!
Totally agree with both. They've taken great initiative and the criticisms that come with it. On top of all this, they create Moby which compiles to Javascript. If this were a concert, I'd give them a standing ovation.
All it needs now is 'try Racket in your browser' and a video of some dude making a blog in 15 minutes using Racket. Then it will be the new hotness.
You're using it now. Arc was built on top of PLT and news.arc ships with it. So,you are using the killer app / example that you are looking for right now.
I love seeing framework or language homepages with good copy and design like this one. The best ones make you want to stop what you're doing in your favorite language and go code something with the new hotness right now.
Unfortunately, it doesn't explain to the newcomer why this language is worth learning. I was expecting some kind of feature comparison or "Why another language?" article.
(That's a first impression. Then I read the comments here, and discovered it's based on PLT Scheme, which at least tell s me a little about what to expect.)
It'll be interesting to see where they go with this; there seems to be a conscious effort to downplay the words "Scheme" and "Lisp" on the landing pages. I'm more of a Common Lisper myself (at least for my personal development), but I've been impressed with the PLT Scheme environment and languages. And anything that increases the use of the lisp family of languages is, imo, a good thing.
Others will obviously disagree with that sentiment. :)
"Racket's interactive mode encourages experimentation, and quick scripts easily compose into larger systems. Small scripts and large systems both benefit from native-code JIT compilation. When a system gets too big to keep in your head, you can add static types."
Frigging worthless university programming courses didn't bother teaching scheme.
Learning scheme's libraries on my own along with the lisp paradigm proved too daunting before (or maybe I just never found the right toy project to stick with, not really sure). Having java libraries there to back me up (I was doing stuff with hadoop too, so that made sense) gave me the little leg up I needed to get over the hump.
What I don't like about Racket (former PLT Scheme) is that it's a closed environment. You can't use common Scheme libraries (for instance: SLIB), debugging facilities are hidden into Racket's editor therefore you can't access them from Emacs or other tools, etc.
Homo sapiens is pretty cool too, but I wonder how many walking talking apes we really need... Random mutation + diversity + natural selection isnt yielding working, practical results only for biological organisms.
You sound like we should simply take the first best anything we run into and than stick with it unconditionally for the sole purpose of not having to spend time looking over the wall.
Do you at least remember the day back then when you lost your adventuresomeness?
Human evolution is more like looking at revisions of a single programming language. The basic elements remained consistent, but changed subtly over millions of years in an iterative fashion... if you pick life as a whole though I agree with your analogy, but this is very much a small cautious, iterative improvement and it offers me nothing I can't already get.
I enjoy the rational argument you give here, but I think you went too far by attacking my personality and misconstruing my words. The opposite of many is few, not one, and that was the impetus for my comment - right now "we" all seem to be focused on developing a tiny little area of programming instead of the whole and the effects are obvious if you have to work with it - towering technology stacks of crumbly code that are unstable through bad design and a lack of low-level mentality at the high-level - so bad they give Apple a pretty solid excuse to ban Flash on iPhone.
As for my "adventuresomeness" I'm comfortable with all the major paradigms and languages and work at every level, from encoded instruction bytes up to things like SQL/XSLT with C/Haskell/Fortran/Java/Ruby/Python/whatever inbetween and a wide variety of platforms (phones/games consoles/PDAs/calculators/PCs). I learned three languages in the last month - only two of which were through necessity at work and I am happy to make radical comments which express my opinions and not turn away from them when they clash with flavour of the month/year/decade... and thats just programming. I dunno what you call adventuresome but from your comment, I'd imagine its probably a lot less adventurous than me... but then I might be misconstruing words and attacking your personality then. :P
I don't think I would refer to a language that has its roots in the first high-level programming languages ever devised as "web-oriented." You may want to look up the words "Lisp" and "Scheme" in Wikipedia.
Your comment seems to imply that there is already a rich ecosystem of VMs in use, but there aren't really. Basically, there's the Java VM, which is bad for functional languages, and there's Mono, which is not really ideal for Scheme either, nor very popular except that it allows compatibility with .NET.
At any rate, I'm pretty sure PLT Scheme predates both Java and the CLI, so you'd be better off slagging Microsoft for their duplication.
First, the Racket VM has been under development since 1995, so it's not "another VM".
Second, the Racket VM supports lots of things that other VMs don't: the Racket module system [1], kill-safe synchronization [2], custodians and eventspaces [3], first-class continuations, and many other things besides.
The PLT VM is very very good, and their FFI is very flexible. If you want a lispy dialect on the Java VM, you have one. But otherwise, why does it matter?
Making a language fast and well-documented is a thankless task. It's nothing short of a herculean accomplishment for these guys to come out of left field with such a fantastic offering.