The best IDE ever written

I’ve been turning caffeine into code for a long time and for my money the new Xcode 5 (still in beta) is the most delightful IDE I’ve ever used.

I remember back in the 20th century when I wrote code using just a plain ‘ol text editor. Those were the days. Cars had tape decks and the sun shone everyday. But re-compiling your app meant taking a fifteen minute smoke break, and god help you if you had one jar dependency missing in your ant scripts.

I know right?

Over the years there have been a few improvements, Emacs, ultra-edit, Eclipse, Visual Studio, etc. but by and large the advances have been few and far between. Up until recently, every platform has required developers to work really hard in order to accomplish really simple things. Lots of boilerplate code just to get a “hello world” app working. I mean, have you ever tried to putting together a RESTful web-service using Microsoft’s WCF? You might as well try to come up with a unified theory of physics while you’re at it.

Since it’s still in beta (and under NDA), I won’t get too much into the new features of Xcode 5, but I will say this:

Your tools should work for you and not the other way around.

For the first time in the history of computing I’m really excited about my IDE. Here’s what you can look forward to with Xcode 5:

  • It’s freaking FAST!
  • The debugging tools are immensely improved
  • They FIXED auto-layout. Trust me. No more surprises. You don’t have to pull all your hair out. It just works…the way you need it to.
  • Did I mention how FAST it is?
  • Improved git integration (if you’re not on git, switch…now)
  • New and improved testing framework
  • Support for Doxygen style comments

And I haven’t even gotten to the good stuff yet. Of course there is still one outstanding bug with the Apple LLVM compiler. It still only does what I tell it to do and not what I meant for it to do. Hopefully they’ll fix that in Xcode 6.

Buttons are a hack (revisited)

The recent hype surrounding the re-design of iOS has gotten me thinking a lot about the current state of UI/UX/HIC (give it a name) and its direction in the future.

For starters, let me quickly remind all the trolls out there that when Mac OS X was released, many (if not most) of the designers hated it. The iPad, when it was initially released, was resolutely bashed by most as “an oversized iPod”. Time and and ultimately, the market, will determine whether iOS7 was a success. Let’s just leave it at that.

Back To The Future

Looking at the progression from iOS6 to iOS7 I can’t help but think back to a great presentation given by Josh Clark two years ago:

Buttons are a Hack: The New Rules of Designing for Touch

It’s a fairly lengthy presentation but the two key points that stuck out in my mind were:

Touch interactions will help us sweep away buttons and a lot of existing interface chrome by moving us closer to the content and away from GUI abstractions.

User interfaces are an illusion. But with touch interfaces we can cut through the illusion and let people interact directly with content.

If you agree with these points, and Clark’s motif in general, then you would have to agree that iOS7 is a step forward and not a step backwards. There are certainly a number of things that could have been done better, but in my opinion I think Jonny Ive is moving us in the right direction.

Please don’t misunderstand me, there are problems with the new design of iOS. For example, the new concept of a “borderless” button and using color to indicate action is somewhat ambiguous – in my opinion. In a world where buttons have no borders, the cognitive load is increased by virtue of the fact that a user cannot reasonably determine all the touch targets on a screen simply by looking at them. For example

Take this QUIZ

If you had to think about your answer, there’s already a problem. So there are issues, but isn’t that the gap designers and developers are supposed to fill for our end users? Cheers!