[racket] Racket in the large

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Aug 19 18:26:27 EDT 2011

On Aug 19, 2011, at 6:07 PM, gonzalo diethelm wrote:

> Can Scheme (Racket) be used for a more “enterprise-y” project (console app, GUI app, web app, whatever, accessing data from any RDBMS in transactional ways) where I will have a team of developers working on separate parts of the system at the same time? How can Scheme (Racket) help me with the software engineering aspects of such a project? Has anybody here had any experience in projects similar to this?

Yes for Scheme and yes for Racket. Example: Disney World has some virtual rides running on Chez Scheme. Example: Boeing/USAF use Racket to control large, expensive telescope arrays. 

> Which brings me to my second question: can Scheme (Racket) be used to develop all these different kinds of applications (console, GUI, etc.)? Can anybody point me to real life examples of each type of application developed with Scheme (Racket)?

Yes. See above. 

> If Scheme is the be-all and end-all of programming languages, how come I don’t hear of more success stories using it

Correction: Scheme (current standard) is the third-best language. Racket is the second-best language. 

Compared to C++, Racket is an infant. This is especially true when you think in terms of programming language evolution. 

So the first answer is come back when Racket is as old as C++. 

The second answer is a simple statement about history and business. When tool X enables the constructions of systems S and T and is older than tool Y, then people will build systems S and T in X. Because people wish to get things done, not wait for some mythical perfect thing. Once a system S is built in X, there is little incentive to re-build the system in Y. Why? It costs money to do so. A good businessman must wonder whether he can recoup this money.  Based on historical experience we also know that the reconstruction of a system makes it buggier.  Some bugs will be avoided, new ones will be invented. Why introduce buggy behavior when the system is reliable enough to make money in the market?  Equally important, the world of software gets built in layers. When layer Bot is built in X, traditionalists believe that it is best to build the layer on top of Bot, call it Mid, in X, too. Guess what they use to build layer Top? Even when a new language finally injects radically new ideas into the commercial world of software, as Java did with sound/safe types and safe memory/gc, programmers tend to deal with it as if it were the previous language. Indeed, you will find Java code that looks like Fortran code. I am sure when Racket's popularity explodes, you will find Racket code that looks like Fortran code, too. 

-- Matthias

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20110819/5d1bd9a6/attachment.html>

Posted on the users mailing list.