Category: Software Engineeering

A new kind of web

By: Claire Thompson

This guy is getting it

After a few months with AngularJS and REST-APIs, I have to agree with this blog post. Yes, we’re in a new era of web development.

It’s funny how technology moves in cycles and this is apparent in how the center of gravity moves between the server and the client. For a few years now the center of gravity has been on the server. The client (the web browser in most cases) was just a dumb document viewer for HTML and media files.

With modern Javascript-frameworks, this is changing. The browser has become a first class citizen of the web stack, fully capable of managing state and most of the logic that used to be on the server.

What this means to people who are not geeks developers: expect richer, faster web sites much more like desktop applications than just documents. Expect an increased innovation tempo. Expect the web to come alive. Everyone working with the web (and that means basically everyone who does business in some way) need to grok this.

Make it work. Make it pretty. Make it fast.

That’s my priority when I build stuff: Make it work. Make it pretty. Make it fast.

Work: it does what it’s supposed to do and adds value to the user.
Pretty: it’s easy to use and looks good.
Fast: there’s no performance bottlenecks and the software is scalable and easy to extend.

I’m a programmer but I also want my software to look good and be easy to use. The last thing I worry about these days is performance. Not because performance isn’t important but because it’s usually not a problem until you have enough users and you will never get enough users unless you focus first on the other two.

Ten years ago my list would probably have been: Make it work. Make it fast. Make it pretty. Or even with “fast” being number one.

Not that I’ve ever been a performance freak, tweaking stuff to win an extra millisecond, but there was a time when I was obsessed with doing the Perfect Extendible and Reusable Software Design. My education is software engineering (I have a masters degree) and when I was fresh out of school (which I was 10 years ago) I used to spend a lot of time drawing class diagrams and object interaction flows and lots of other paper stuff that didn’t take me anywhere closer to a working program. I even wrote huge requirement specifications.

Make it work. Make it pretty. Make it fast. That’s my list. What’s yours?