Asbestos Supply

2010-09-21 Next up: Javascript

I think most web developers have mixed feelings about Javascript.  On the one hand it's very important for a good user experience and there's some pretty cool things you can do with it.  On the other hand, there are so many browser inconsistencies, especially historically - not to mention the IE6 problem - that we approach it with some trepidation.

I believe that being a good developer requires constant education and there's tremendous importance in learning new languages and going deeper in the ones you know.  A couple weeks ago I decided to learn Javascript in depth.  I think Javascript is a good choice for my next language because it's just so useful.  And how many server side developers know Javascript?  I mean really know it.  It's probably the only language that the majority of developers who program it never spent real time learning it.  Which is not a good thing. Javascript is syntactically similar to other C languages but uses an entirely different type system and inheritance model which require different design patterns and expertise.  And with real knowledge, it doesn't have to be scary.

I've been watching the Douglas Crockford videos (all of them) from YUI Theater ( during my commute.  I also bought his book Javascript: The Good Parts from Amazon.  I don't think you can watch his videos and not come away with a real appreciation for the language!  And his presentation style is great.  He's got lots of history which I enjoy immensely and does a great job imparting information.  One thing I'm not a huge fan of is the way he presents certain opinions as fact.  This is an issue in the development community and he takes issue with the practice himself in at least one presentation so I wish he were a little more liberal with the "I think […] is the best […]"-s instead of the "obviously […] is better"-s.  But that's a minor nitpick.  His videos are really top notch.  Go watch them.  Now.  I'm waiting…

As it turns out, Javascript is actually very powerful and, using the right conventions, can be pretty and concise too.  Especially after falling in love with the functional aspects of C#, I'm really appreciating Javascript lambdas.  I thought this was a new concept at least in the C-based languages when Microsoft introduced it into C#, but Javascript's been doing it for years!

If you're not yet a Javascript guru and you work in web development or just trying to figure out what language to learn next, I highly recommend diving into Javascript.  It really deserves some attention.