Monday, June 26, 2006
How I explained REST to my wife
In one of the comments, Roger mentioned How I explained REST to my wife. Worthwile read. It's worthwhile to quote this:
VisualStudio is like that. It's a bit like Rapid Prototyping on the web. Yes, it's easy to create a grid that gets data from a database. You can scroll through it, and edit it. Cool. But that's hardly what a web application is about. Thinking about resources, about URLs, clean URLs, all the things that matter, are hard.
Wife: So this is what you and all the computer people are working on now? Deciding what the data should look like?Sad isn't it? I realise that certain things I find simple, others might find very complex. But my goal in programming is to strife for simplicity and elegance. But that goal isn't shared, at least not in the meaning I attach to the word simple. The company that employs me has decided to go for the .NET route. And they will also use the word simple: VisualStudio makes creating web pages simple. Well, in one sense it does. Just like Delphi makes Rapid Prototyping Simple. The power of Delphi to create certain things really fast is amazing. And it works for a certain kind of simple applications. But there will come a point in your life that you've been fighting events and callbacks too much. Then the realisation will dawn that a lot of time you're fighting the tool. That a lot of time the ability to easily write some code behind a callback doesn't help maintenance, reuse, portability, abstraction and all these things.
Ryan: Sadly, no. Instead, the large majority are busy writing layers of complex specifications for doing this stuff in a different way that isn't nearly as useful or eloquent. Nouns aren't universal and verbs aren't polymorphic. We're throwing out decades of real field usage and proven technique and starting over with something that looks a lot like other systems that have failed in the past. We're using HTTP but only because it helps us talk to our network and security people less. We're trading simplicity for flashy tools and wizards.
Wife: Why?
Ryan: I have no idea.
VisualStudio is like that. It's a bit like Rapid Prototyping on the web. Yes, it's easy to create a grid that gets data from a database. You can scroll through it, and edit it. Cool. But that's hardly what a web application is about. Thinking about resources, about URLs, clean URLs, all the things that matter, are hard.