About Nicholas C. Zakas

Recent Posts

Adventures in pointerless computing

A few people know that I’ve been battling a repetitive stress injury (RSI) in both of my elbows. I’m hit on all sides of the elbow: tennis elbow, golfer’s elbow, and triceps tendinitis. I’m sure the stress has been building in these tendons for most of my career, but they really got bad last year... […]

Computer science in JavaScript: Quicksort

Most discussions about sorting algorithms tend to end up discussing quicksort because of its speed. Formal computer science programs also tend to cover quicksort1 last because of its excellent average complexity of O(n log n) and relative performance improvement over other, less efficient sorting algorithms such as bubble sort and insertion sort for large data... […]

The Front End Summit new speaker program

One of the last things I did before leaving Yahoo! was to help organize the Front End Summit along with James Long and David Calhoun. This is (was?) a yearly internal front end conference that brought together engineers from all over the world. While not the same as planning a public conference, we faced many... […]

JavaScript APIs you’ve never heard of (and some you have)

This week I was scheduled to give a brand new talk at YUIConf entitled, JavaScript APIs you’ve never heard of (and some you have). Unfortunately, a scheduling conflict means that I won’t be able to attend. So instead of letting the work of putting together a brand-= new talk go to waste (or otherwise be... […]

ECMAScript 6 collections, Part 3: WeakMaps

Weakmaps are similar to regular maps in that they map a value to a unique key. That key can later be used to retrieve the value it identifies. Weakmaps are different because the key must be an object and cannot be a primitive value. This may seem like a strange constraint but it’s actually the... […]

The “thank you” that changed my life

There’s so much rampant negativity in the world and on the Internet that it can be hard to deal with some days. It seems like more and more, I’m seeing people being mean and succeeding, and that makes me sad. Perhaps the biggest poster child for this was Steve Jobs, who by all accounts was... […]

Book review: Think Like a Programmer

I was excited to get a copy of Think Like a Programmer for review. The subtitle is, “an introduction to creative problem solving,” which is something that I think is very important to being a good software engineer. I’ve talked a lot to younger engineers about thinking critically to solve problems and not just relying... […]

Does JavaScript need classes?

Like it or not, ECMAScript 6 is going to have classes1. The concept of classes in JavaScript has always been polarizing. There are some who love the classless nature of JavaScript specifically because it is different than other languages. On the other hand, there are those who hate the classless nature of JavaScript because it’s... […]

ECMAScript 6 collections, Part 2: Maps

Maps1, like sets, are also a familiar topic for those coming from other languages. The basic idea is to map a value to a unique key in such a way that you can retrieve that value at any point in time by using the key. In JavaScript, developers have traditionally used regular objects as maps.... […]

Thoughts on TypeScript

Earlier this week, Microsoft released TypeScript1, a new compile-to-JavaScript language for “application scale JavaScript.” My initial reaction was confusion: Um, why? blogs.msdn.com/b/somasegar/ar… (via @izs) — Nicholas C. Zakas (@slicknet) October 1, 2012 It seems like almost every week there’s a new language that’s trying to replace JavaScript on the web. Google received a lukewarm reception... […]