Last week I went to the one-day conference titled The Future of Web Apps. The 'web app' (web application) is a concept currently gaining popularity, as some websites begin to offer application-like functionality rather than just flat pages of information. The conference I attended looked at the development of some of these websites.
The first presentation was by Joshua Schacter, talking about del.icio.us, and some of the lessons he learnt from it. Lots of it seemed to be about ways to scale the application with caching, indexing, throttling, etc. However he also said that it's difficult to know where the bottlenecks are going to be in advance, so lots of the optimizations aren't worth doing until you know where the problem areas are. He also promoted APIs, RSS feeds, clean URLs, and making logins required only where neccessary and then as simple as possible. More interesting perhaps, for the site that making tagging so popular, is that he described tagging as being 'not about classification but about user interface', which doesn't quite fit with my own perception. He also rightly pointed to the need for tagging to have some 'transaction cost' in order to be useful. 'Automatic tagging' is potentially harmful.
Next up, Cal Henderson talked about Flickr (Powerpoint file). Lots of the same stuff came up, like scaling, APIs (important so that people know they can get their data back if they want to) and thinking about clean URLs. He also talked briefly about AJAX, and how it can improve interactions and speed up the site, but needed to work nicely with the URL structure. Flickr also built in multi-language support from the beginning.
Next, Tom Coates gave a presentation titled Native to a Web of Data. This contained much of the same sort of information, but without being specific to a single website, and having been summarised in a much more cohesive way. The most important point was how it's data that's at the core of web applications, and so it's important to start by looking at the data, identifying what he calls 'first order objects' and then working these up into URLs, then into 'object pages', 'list pages' and 'manipulation pages'.
David Heinemeier Hansson gave a deeply impressibe presentation on Ruby on Rails. Obviously, I've heard lots of hype about Ruby on Rails before, but this was the first time that I began to understand what it's really all about. "Motivation is the key to productivity", he says, "and motivation comes from happiniess". How do you make programmers happy? By allowing them to write "beautiful" code. Beautiful comes from allowing progammers to concentrate on the 20% that's unique and interesting, whilst coding 80% that's normal and boring in the minimum amount possible. He gave some examples of how Ruby on Rails does this, by using "convention over configuration" to define database tables and fields, code classes and URLs all at the same time. PHP is the devil, he claims, tempting you into doing hacks and clumsy workarounds, whereas Ruby on Rails is the angel. The functional spec is evil, he says, as web applications evolve with time rather than being delivered fully-functional and finished at the start. All thought-provoking stuff, and so I'll have to try out Ruby on Rails sometime soon.
Next, Shaun Inman, the designer/developer behind Mint, gave a fairly short and timid presentation on '10 reasons why you need to build an API'. It was a bit weird as his stats software is paid-for, with the source delivered, but without being free. So the conversations in his Q&A about Mint piracy seemed a bit irrelevant.
Following that, the whole room seemed to switch off whilst someone from Adobe practically delivered a sales pitch for Macromedia Flex, which delivers AJAX-like functionality in Flash. It's quite interesting in that it allows all the rich graphics capability of Flash, but really this is a step removed from web developing, and is closer to regular client application development, albeit using HTTP requests.
Next up, Ryan Carson, the dude behind the whole event, gave a very open and honest account of how he's set up Dropsend. Other people have written comprehensive notes on his talk, including the figures he mentions, so I won't repeat those. It was refreshing to hear someone talk about the actual day-to-day practicalities and finances of setting up a web application business, which in some ways was more useful than the higher-level talks that had been given before. Hearing him say how you should "stop and think before you spend even £25" really brought home how much web development can be a shoestring affair.
There followed a Q&A session with all the speakers present, which I can't remember much about.
All in all, it was a good, and useful conference, and Carson Workshops should be praised for pulling it all off, and making it fairly cheap...