Living in New York means there are always things to do: be it concerts, shows, meetups or classes. Once in a while I will check Skillshare listings or go to the General Assembly site and see what people are teaching and learning.
That is how I found myself at the Intro to Scala class at General Assembly last night. I have no background in Scala or Java, and my main motivation was to go and learn why it’s great and why the instructor and other attendees (along with companies like Twitter and foursquare) chose to use this language.
The class was pretty good, from its convenient location in the newly opened second Assembly’s location, to the instructor Toby who was very knowledgeable, enthusiastic and friendly. There were about 6 – 8 people (=men) in the room, and they did look like typical Java programmers (no offense, they all looked quite nice, just noting my impression). Toby talked about what makes Scala better than Java (concurrency, scalability, functional capabilities), and showed very detailed examples of most interesting features (actors, immutable variables, for-comprehensions). All in all, a good, informative class.
I realize certain problems like scalability and concurrency need languages and tools that can handle heavy lifting, so in this case Scala and Go might be valid choices for huge Google-scale apps. So before choosing a language or platform, read Mike’s post (that he coincidentally wrote just a couple of days ago):
There is no one true enlightened path for programming languages. That is because different programming languages have different strengthes. Your choice of programming language should align to both your personal strengths and the types of problems you’re going to be working on.
So don’t be afraid to try out different languages and find what’s right for you, just make sure of one thing – that you learn Unix, learn it real well!
PS: While I was looking for a photo for this post that shows a swedish buffet, a funny thought came to mind: Unix would be this necessary, good-for-you item (like eat your veggies thing), then Java and .NET would be some boring, solid, heavy items like meats, and node.js would be like this delicious dessert, a fruit tart or a honey cake. Yum!