[racket] Racket Apology
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.
--
http://www.neilvandyke.org/