Archive for the ‘Sweng’ Category

Web Applications Must Die

Saturday, September 8th, 2007

Close behind the obligatory text editor and IDE, there are two applications everybody on our software team uses a lot on a daily basis.

Both perform roughly the same job - they allow us to enter data in a central database, then present us with different views of the data, let us run queries and summarize the results. (One of them has more serious obligations handling one particular form of local view of the data, but I’m mostly talking about its other duties here.) Both are used by virtually the same set of people, most of them sitting in the same room; both of them are occasionally used by people around the globe, which are given access to our databases, and connect to them thanks to the wonders of the Internet.

But these two applications aren’t created equal. One of them presents a rich, responsive interface, with all kinds of filtering, sorting, cross-referencing of relevant data. The other is slow, clunky, takes a constant amount of time (couple of seconds) to query the server even for the most mundane of tasks, and is chained to the UI conventions of an ancient presentation framework designed 10 years ago to fulfill completely different tasks.

The two applications fulfill similar needs to similar groups of users. It makes exactly the same sense for both of them to be implemented as Web apps, rendering inefficient HTML, doing needless roundtrips to the server, relying on the mercy of not one, but two intermediaries (the browser and the web server). Thankfully, the first application is a native Win32 app.

I love the UI of Gmail, but I would gladly switch to a desktop email reader with the same UI conventions, connecting to a database somewhere in the world. What I like about Gmail is not the fact that it renders through my browser, but its nice, unorthodox UI. I use a great little local-client Gmail on my mobile phone, written in Java; it beats the crap out of even the mobile-optimized server-side Gmail running through Opera Mini. For purely political reasons Google will never release anything like that for the desktop - but I bet the experience would be vastly superior to even the snappiest AJAX-rendering browser.

Web applications are a wonderful thing, but they are not the only solution to everything. Having more than one user to an application, and even having remote, off-site users, is not a good reason by itself to suffer through HTML forms and stateless HTTP request/responses. AJAX tricks may make the user interface slightly more responsive, but it won’t ever turn Flickr into Picasa. Doing a quick and dirty job through a browser might be OK for something I do once or twice a month (e.g. paying a bill online, or ordering books), but for something that I use dozens of times a day - e.g. email, or bugtracking, or code reviews - I prefer a native client.

The good native application in the true story above is TortoiseSVN. The crappy web application is the Mantis bugtracker. Any comments suggesting that I replace Mantis with superior bugtracking brand XXX must include offers of assistance with converting about a dozen home-grown tools around it, with migrating around 10k bugs from 8 projects, and retraining on the order of 50 people, most of them fairly conservative artists.

Subversion for Game Development

Friday, December 2nd, 2005

There are two things I need from Subversion to make it the perfect (for the price) versioning tool for huge art assets: wire compression for svnserve and getting rid of the pristine copies. The first sounds simple enough, but is dismissed by the Subversion developers with “just use Apache”; the second request elicits mumbles about refactoring the working copy code, mentioning a three-digit issue number (meaning very old, entrenched issue, which nobody wants to tackle) and not very assuring reminding of several people who have tried to do this and disappeared without a trace.

The Risks of Distributed Version Control

Friday, November 11th, 2005

From Ben Collins-Sussman, a core Subversion developer, now at Google, a rant on distributed vs. centralized software development. From where I stand, I agree fully with him: I don’t need people going off in a cave with the game sources, and I don’t see how somebody would like to make a personal copy of the entire repository now that it includes an increasing amount of binary assets (read: gigabytes).

Distributed source control, however, will let the FOSS crowd dig themselves in 10 000s of separate little caves, split, fork and splinter projects, fight over implementing the mostest and the bestest features, and, in the end, produce less usable software.