On 09/30/2011 02:07 PM, John Clements wrote:
Racket is an experimental language (cf. Shriram's "hothouse"). We are
*constantly* experimenting with the language, and on another level,
we have a language that's designed to enable *your* language
experiments. That's what makes it an exciting language to work with
and on, and why it has design features that are still years away from
appearing in mainstream languages.

That's *also* the reason that you'll almost never see Racket used in
industry. It's a language that doesn't compromise its ideals, and is
constantly innovating, and if you're a business that's looking for a
stable language with a broad supply of programmers, Racket would be
an extremely surprising choice.

I feel compelled to point out that there's a big difference between "industry" as a whole and "business that's looking for a stable language with a broad supply of programmers". Just as most businesses aren't the big corporations everyone likes to rant about, not all (and maybe even not most?) tech companies aren't big companies where it's acceptable to throw warm bodies with a passable knowledge of Java or Python at a problem. Outside of the large companies of the world, Racket's rapid evolution is not a problem and not even a detriment. It's certainly no less rapid than the progress in mobile operating systems and client-side web technologies or the churn in Linux distributions, and unlike the latter, Racket is actually moving forward, not laterally. If the language does change incompatibly in a way that affects me and for some reason I need to maintain compatibility with an old version, it's much easier to accomplish this in Racket than in almost any other language.

In fact, I don't think there's been a better time to be using Racket in industry than right now. It is on the whole the programming environment that demands the least from me in order to do what I want to do. Tasks that in almost any other environment would be extremely complicated or tricky are trivial in Racket. Just to give one example, a colleague/employee who is picking up Racket for a project was positively giddy at how easy it was to put together a small cross-platform GUI for the project. Personally, I can't think of another programming environment which does that as easily. If you can find one, it probably won't make it as easy to create web applications, or simple command-line tools, or any of the other things that Racket does so effortlessly without making demands on my time or sanity. No tool which was truly unsuited for use in industry would do so many useful things so well.

As far as supply of programmers is concerned, I'm simply not worried about it. Racket is not particularly hard to learn, especially if you have prior experience in Common Lisp (as my colleague does) or one of the typed functional languages. If you can't or won't learn Racket, then there's no chance that you're going to understand the rest of what we do either. (We have a lot of C as well, but it's not conceptually trivial.) When it comes time to grow the company further, I'll be looking for people who are flexible enough to learn new technologies and create new things, not people who are skilled at rearranging prefab Java building blocks. We don't do engineering around here by throwing resources at problems - and that applies as much to programmers as it does hardware.

--
Brian Mastenbrook
br...@mastenbrook.net
http://brian.mastenbrook.net/

_________________________________________________
 For list-related administrative tasks:
 http://lists.racket-lang.org/listinfo/users

Reply via email to