[racket] Racket Apology

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Fri Sep 30 16:11:50 EDT 2011

John Clements wrote at 09/30/2011 03:07 PM:
> 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.

Cough, cough.  Well, you had to know I'd chime in on this... :)

Just this morning, I had to install a very large Racket-based system on 
a new machine, with a new major distro version.  The Racket parts simply 
worked, but the relatively small Python bits (perhaps on the order of 1% 
of the code) were a time-wasting annoyance, from trying to figure out 
which distro packages now had the needed libraries, and crossing my 
fingers that the versions were compatible (thank you, PLaneT).  And 
changing a *Python* version is something I wouldn't do, if at all 
possible, unlike Racket versions, where we like to sync up to the latest 
version.  The database engine was also annoying.  Again, the Racket 
parts simply worked, given a Racket install and the source files as 
checked out of the SCM system.  Also just this morning, someone doing 
new development of a JS part of a Racket-based system was seeing some 
buggy behavior with an off-the-shelf JS component in the browsers, and I 
told them that I'd tackle that, but that if the debugging or fix gets 
too hard, a perfectly normal practice of JS developers is to keep trying 
and coding for different off-the-shelf JS components until they find one 
that works sufficiently well.  Don't even ask me about the Java app I 
revived this year, taking more time than it would have taken to write 
from scratch using the Racket Web Server and continuations.  Python, JS, 
and Java certainly keep a lot of programmers employed.

There's a lot more that I could say about various software engineering 
aspects of this question, but I'd need all day to try to say them well.  
Two points I can try to make quickly, however, are that: (1) "broad 
supply of programmers" in the Java or Python sense is not necessarily 
what you want; and (2) the programmers you do want for high-quality work 
on difficult problems might be in greater supply than you might think.  
As for #1, try doing development in Java nowadays, Googling on a 
technical question, and being surprised at the percentage of people 
talking who have little idea what they're doing, while you're still 
trying to find someone who does know.  For #2, look at ITA Software, who 
chose to tackle a large systems development problem that perhaps no one 
else could do, and proceeded to find and hire a large number of smart 
people who knew Lisp.  I heard that Google recently acquired ITA's 
software and people.

I'm not going to tell college students they can get jobs programming 
Racket, because, this year, they probably can't (unless they do 
startups).  But I expect Racket to keep increasing in popularity for 
industry use for a while, especially if Racket continues to innovate 
while continuing to care about adoption.  So please don't discount 
industry possibilities in your mind.

I admit there's some language-bashing here, Mom, but John started it.  
I'll go have a timeout.


Posted on the users mailing list.