[racket] Racket in the large

From: gonzalo diethelm (gdiethelm at dcv.cl)
Date: Fri Aug 19 18:07:47 EDT 2011

Hello everyone; this is my first post to this list. I present my apologies beforehand, because I know these kinds of topics can be easily misconstrued as trolling attempts or "mental masturbation"; all I can say in my favor is that these are real, honest questions on my part. If any part of this has been discussed before (and I cannot imagine it has not), please point me to the relevant places and I shall leave in peace; I must say I did go over the full Google Groups archive for this mailing list and could not find anything to answer my questions.

I would like to start by saying that I have always had a strong attraction to Lisp-like languages. In the past years I have been reading on functional programming topics, specially about Scheme, the Y combinator, macros, Paul Graham's ramblings, etc., and I can say that I have finally come to understand the origins of my attraction: the purity, simplicity (of the basic concepts), elegance and power in functional programming (in general) and Scheme (in particular) are, in my view, unbeatable. So I declare myself an outright Scheme lover.

In addition to that, my professional career has always been tied to programming and software engineering, because that is what I enjoy doing the most (as opposed to managing). I have had long stints (several years) of developing in C, C++ and Java. Incidentally, when I am programming in language X in that list, I usually find myself pining for language X-1 (from Java to C++, from C++ to C); but I digress...

The thing is, I must admit I have a secret desire and it is time to come out in the open: I want to leave those imperative languages behind and finally use Scheme for a real, "in the large" project... There, I feel better now that I said that!

So let me get to my point before I bore everyone here to death: can my desire be realistically fulfilled? 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?

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)?

[In fact, I specifically came to Racket after having had a grand vision of being able to develop all the components for a web app (SQL to access the DB, business logic, HTML for presentation, CSS for styling, JS for interactivity, even XML for configuration) using a single unified language (or many small separate DSLs based on a single language) and I have been kind of surprised at not finding this idea fleshed out anywhere as a framework, library, module, etc.]

I guess at the bottom of my questions lurks the following (and this is the non-trolling I was referring to before): if Scheme is the be-all and end-all of programming languages, how come I don't hear of more success stories using it, other than Paul Graham's (which, important as they are, in my view are not recent enough to provoke and inspire anymore)? Where are the flag web applications, GUI enterprise systems, even console applications, that have become watershed proofs of Scheme (Racket) as THE SINGLE BEST programming language there is (something of which I am 100% convinced)?

I really would appreciate (and am thankful for) any insight coming from the illustrious people on this list. Best regards.

Gonzalo Diethelm

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

Posted on the users mailing list.