Steve Rydz

becoming a polyglot

As someone who primarily works with JavaScript I want to be as knowledgable about the language as I possibly can be. This combined with trying to keep up-to-date with all the emerging tools and libraries that surround the language can sometimes feel like a full time job—that’s a rant for another day—but recently I’ve been trying to broaden my horizons and get to know other languages.

I recently spent an afternoon playing around with Haskell and also worked my way through a highly recommended Ruby on Rails tutorial. Whilst not being enough exposure to qualify as an expert in those languages, it was enough to alter the way I think about certain things in JavaScript such as types and testing.

The way Haskell is so strict with types encouraged me to consider this more when writing JavaScript and has led me to look into tools such as TypeScript and Flow. I’ve never had any serious issues with types in JavaScript and don’t intentionally use type coercion, but having now used static types I much prefer working that way.

Working with Rails made me realise how far testing has to go in JavaScript. We certainly have the tools available to us but it’s nowhere near as ingrained into the culture of the language like it is in the Rails world. Rarely if ever do you see a JavaScript tutorial that covers testing alongside the key points of the exercise. This (in my opinion) has led to a generation of developers (myself included) that aren’t always sure what to test and how to go about it.

I’m not looking to change my focus to another language (although I could never rule that out entirely), but I believe the more areas you have at least some experience in the better. In the book The Pragmatic Programmer, the authors Andrew Hunt and David Thomas recommend that you learn at least one new language every year. The thinking behind this is that each language has a different way of solving the same problem. By learning more languages you learn more ways to approach problems which will help to prevent you getting stuck in a rut.

Another language I’d like to become more familiar with is Java, mainly because it is used widely at MetaBroadcast, so that familiarity will enable me to understand more about how our backend systems work. Thankfully Emils has recently started leading a series of Java 101 sessions aimed at getting the whole team familiar with the language, and despite it being early days it’s already proved helpful.

Once I start to feel a bit more comfortable with Java I’m thinking that I’ll spend some time getting more familiar with PHP. I have enough familiarity with it that I can get things done, but I could definitely benefit from learning more. It may be mocked by programmers from other languages but the fact is it’s still everywhere and after JavaScript is the language I find myself dealing with fairly regularly, in part due to the popularity of CMS’s such as WordPress, Perch and Craft.

What languages are you currently learning or hoping to look at soon? We’d love to know!

If you enjoyed the read, drop us a comment below or share the article, follow us on Twitter or subscribe to our #MetaBeers newsletter. Before you go, grab a PDF of the article, and let us know if it’s time we worked together.

blog comments powered by Disqus