[racket] Considering taking the plunge

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Oct 11 12:42:06 EDT 2012

On Oct 11, 2012, at 11:04 AM, Greg Graham wrote:

> I am the one full-time technology person at a small college prep school. My background before taking this job five years ago was 22 years of commercial software development and a bachelor computer science degree. I have been interested in Lisp since I first heard about it in college, but have never gone beyond dipping my toe in the water.
> This semester, I decided to teach a program design course based on How to Design Programs 2e. So far, it is the best course I've taught, after trying things in the past that I thought would be more fun and engaging (GameMaker, Processing, and Greenfoot). Although HtDP may be less entertaining, I'm seeing the students learn some important concepts and skills that will serve them well the rest of their lives, and they are sufficiently engaged by the mental challenge of the material.

Thanks. (As you can tell, 2e is more entertaining than 1e but I am a person who thinks principles come first and I will never sacrifice them for entertainment.) 

> So, in order to teach this class, I am working ahead of the students in HtDP, as well as reading The Little Schemer, The Racket Guide, and this email list. I am enjoying the process of learning Racket.

Good reading list, especially this mailing list. There is also a plt-edu list. See racket-lang.com. 

> Well, in my job I wear many hats, and one thing I need to do is create a web app that reads the convoluted SQL Server database of our Student Information System and produces reports in the form of Excel spreadsheets. I was planning on doing this in C# ASP.NET MVC, but the project has been sitting on the back burner for a while. I know C#, but I'm having to learn ASP.NET MVC. One reason I chose C# was the existence of libraries to produce Excel documents.
> I am writing to this email list because it occurred to me that I could try writing the app in Racket, learning the language as I go. I don't think the existence of an Excel library is that important because it appears to be pretty easy to generate the kind of spreadsheet I need using Microsoft's SpreadsheetML XML schema. So, do you think this is a crazy idea or not?

It is a perfectly normal idea. Racket comes with a DB library, and I think you will be able to extract the data from your SQL db. As for generating Excel spreadsheets, I don't know how often you will need to do this. I had to take this step in the spring (for personal reasons), and I decided to create a CSV file instead, opened it in Excel, corrected the two or three mistakes I found, and shipped it off. If I had to do this more than once, I'd correct the mistakes programmatically and that's what I recommend you do. If you need to do XML, there's a library for that too and a simple connection to S-expressions (and a complicated one). In ISL, you'd write 

  (define (my-nth-web-page n)
    (local ((define txt  "My " (number->string n) "th Web Page")))
      `(html (title ,txt)
             (body ([bgcolor "pink"]) 
                   (p ,txt)
                   (p "really")))))

Indeed, this part of the project could be done in the student languages. 

And if you need help, send email to this list. Welcome -- Matthias

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4373 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20121011/0c3553b7/attachment.p7s>

Posted on the users mailing list.