The concepts intrigued me when I ran across these books, so I picked them up on Kindle.
I dug into both of them tonight. These look like good fun, and definitely good for my professional development. From the looks of it, there is like :15 minutes of reading each day, and then they give you some homework to try. You do that for 7 days and you are done with that language (and/or database). This doesn’t seem like a huge time commitment, so I’m going to see if I can wedge this into my schedule and start working through these!
First things first – what languages and databases are covered? What do I need for software… or operating systems, for that matter?! I’ll take these one at a time:
Seven Languages in Seven Weeks:
This book covers:
- Ruby – http://www.ruby-lang.org
- Io – http://iolanguage.org/
- Prolog – http://www.swi-prolog.org/
- Scala – http://www.scala-lang.org
- Erlang – http://www.erlang.org/
- Clojure – http://clojure.org/
- Haskell – http://www.haskell.org
I’m generally a Windows-person, but do all of these run on Windows? Well, I went to the download page and sort of enumerated what downloads were available for which products:
I know that developers have the best intentions in the world by making things open source and wanting you to build it yourself. However, in the 20+ years in my career, I have never – NOT EVEN A SINGLE TIME – have had success with a project that builds from a tar/zip file, or from an open source project. I get build errors because of missing dependencies, etc, etc, etc. Granted, I don’t work with these kinds of projects a lot – but that one aspect has been extremely consistent!
My point is, if I can avoid it, I’d like to choose a platform/operating system where an install or package is already available. I want to try to avoid the “just pull the source down and compile it” – because that is likely not going to go smooth.
But wait, let’s check for the same thing on the database side too. What are the requirements there?
Seven Databases in Seven Weeks:
This book covers:
- PostgreSQL – http://www.postgresql.org/
- Riak – http://basho.com/riak/
- Redis – http://redis.io/
- HBase – https://hbase.apache.org/
- MongoDB – http://www.mongodb.org/
- CouchDB – https://couchdb.apache.org/
- Neo4J – http://www.neo4j.org/
Same deal – how many of these are Windows-friendly? How many would work better on a Mac or a Linux distribution? I went to the downloads page to see what installers/packages were already readily available:
So, from the looks of things – it looks like Mac is going to be my best bet, surprisingly! 10 out of 14 of these have native installers for Mac! Seeings as I just picked up an older Mac Mini and am on OS X Mavericks, I’m good to go. Also, since Mac OS is pretty much Unix, I’ll see if I can get those last 4 to download and compile on the Mac too. For that reason, I’d also pick the Mac over Windows because several of the examples in the book are Unix-y syntax.
If you don’t have a Mac, there are several alternatives that come to mind:
- Pick up a Mac Mini (2009 or later) – that will run Mavericks. Immediately replace the hard drive with an SSD, and install VNC on it!
- If you have an old PC laying around, install a Linux distribution on it – like Fedora, Debian, or Ubuntu. Install VNC and connect from your PC.
- If you have MSDN, on your Win8 machine, spin up a new virtual machine and install one of those Linux distributions on it
- Pick up a Raspberry Pi, install VNC on it and connect to it from your PC. That is typically Debian-based Linux
I’ll do a blog post on how the installations go. Meanwhile, what do you think? What about taking this on? I know virtually nothing about any of these – the the exception of MongoDB, so I’m starting from square one too!