Posts Tagged ‘book’
Getting Started with Standard ML
One of the two parallel tracks in my 2009 Programming Language Plan begins with the Standard ML programming language, so it’s time to get started.
Standard ML Resources
Compilers
- Standard ML of New Jersey is highly recommended and comes with a REPL.
- Moscow ML
- MLKit
- PolyML
- MLton is a Standard ML compiler with excellent performance. However, as far as I know, it doesn’t have a REPL, which makes it less than ideal for learning.
Books
Since I was unfamiliar with the Standard ML programming language, I was surprised to find there are a number of good books about the language. Following are just some of them:
Purely Functional Data Structures
Introduction to Programming using SML
Other Educational Materials
Programming in Standard ML – excellent online book by Robert Harper of Carnegie Mellon University. Since I don’t know if Standard ML will simply be a stepping stone to Haskell (which in turn may not be a primary language for me) or a language I invest a lot of time in, I’m going to restrict myself from my normal method of purchasing a book or two when learning a new language. Instead, I’ll be going through Harper’s online book initially.
Tips for Computer Scientists on Standard ML (Revised)
Hello World
There are a number of great compilers for Standard ML (listed above), but I only need one to get started, so I chose Standard ML of New Jersey despite the funky name. It’s a popular version, and it has a REPL, so it’s good enough for me for now.
I develop software on Mac OSX and deploy on Ubuntu Linux. On my Ubuntu server, installing SML/NJ was as simple as:
sudo apt-get install smlnj
On Mac OSX, there are a couple of options listed on this page. I could use a pre-built system or the generic Unix install, so naturally I chose the generic Unix install which installed easily according to the simple directions.
# Download config.tgz tar xzf config.tgz config/install.sh # Wait for install to complete ~/software/smlnj$ rlwrap bin/sml Standard ML of New Jersey v110.69 [built: Sat May 2 12:04:08 2009] - print "hello, worldn"; hello, world val it = () : unit -
Great, looks like everything is working fine. Note, I use the rlwrap utility to provide a nicer REPL experience, but it’s not required.
I’ll continue with a series of posts with notes from working through “Programming in Standard ML”.
jQuery in Action
I just finished “jQuery in Action” by Bear Bibeault and Yehuda Katz. It’s an excellent book on the jQuery JavaScript library. The book comes with a number of example labs to try out various jQuery/JavaScript techniques w/o having to write a lot of code.
There’s plenty of jQuery information online, but “jQuery in Action” easily paid for itself in saved time in getting me up to speed quickly. It’s nicely organized, well written and the editing/quality control seems to be higher than many tech books (although that bar isn’t very high!). It also has a brief, 20 page, tutorial on JavaScript that you may find helpful.
jQuery may not satisfy the zealots on comp.lang.javascript, but I’ve found it to be an excellent JavaScript library thus far, and I think this book was the fastest way to becoming proficient.
Peter Seibel: Coders at Work
Peter Seibel is working on a book, “Coders at Work”, that will “contain interviews with around sixteen of the most interesting computer programmers alive today”. He has a page that lists 284 programmers, with links to more info on each one, that I think is worth perusing:
Peter is the author of Practical Common Lisp which I highly recommend.
Also see his Google Talk on Common Lisp.
Peter Seibel’s “Practical Common Lisp” Google Talk
Here’s Peter Seibel’s “Practical Common Lisp” talk at Google (about an hour):