Dynamic Web Development with Seaside


If you are writing your first web application, you may look at Seaside and think, “What’s the fuss? This looks a lot like writing any other application.” But those of you who bear the scars of hours spent extracting POST variables, worrying about entity encoding, and passing data from page to page to page will understand the significance of this carefully crafted illusion.

Avi Bryant and I created Seaside because we wanted to spend our time writing great applications instead of worrying about what to name our form fields. If you actually like spending your time thinking about form field names — not to mention headers, cookies, URLs, redirects, session keys, and so on — then you should probably stop reading now. If, like we did, you believe there must be a better way, then keep reading. You can still deal with most of those details manually, of course; you just won’t need to.

A handful of experienced core developers and early adopters have collaborated on this book to show you how to develop for the web and let Seaside handle the distractions. And once you’ve finished your first Seaside application, I’m willing to bet it won’t be your last. Some people find the “Seaside way” of doing things a little foreign at first; others feel immediately at home. But, once they’ve mastered it, most developers just can’t stand the idea of going back.

Paul Graham observes in his essay “Beating the Averages” that web development is unique in giving you complete freedom to choose any development tools you want. Your users don’t care (or even know) that you wrote your application with Seaside. But you should (and so should your competitors) because it could be your competitive advantage. In an industry where late, over-budget, and under-performing projects are the unfortunate norm, delivering on your promises can set you apart. Using Seaside, you can deliver more in less time and when the requirements change you can adapt more quickly.

One of my first Seaside projects, with a small team at a university, was an application to manage Curriculum Vitae. A big part of the project was working out electronic data exchange with funding agencies and, since they were big and slow, we tried to maintain their momentum by adjusting our system to accommodate them. Also, our users had suffered through at least two previous attempts to force similar (failed) initiatives on them so we wanted to build support by engaging them fully in the development process. All this meant that our requirements were continuously evolving.

From the outset we arranged regular meetings with users and partners. We demonstrated the system, collected feedback, even prototyped ideas on the spot. For more complex requests, we took notes and promised to get back to them next week. After these meetings, I think most people were certain they would never hear from us again but we took pride in proving them wrong. Seaside allowed us to quickly develop the most promising ideas and get back to them — often within 24 hours — with something to look at. That builds real support.

Seaside began as a simple development tool but has grown into a mature framework, now the most productive web development environment I know. It has helped a humbling and fast-growing community of talented users and developers rediscover the joy of programming for the web. I hope that in the pages of this book you too will discover some of that joy. Welcome to the seaside.

Julian Fitzell
Seaside co-creator

Copyright © 25 February 2024 Stéphane Ducasse, Lukas Renggli, C. David Shaffer, Rick Zaccone
This book is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 license.

This book is published using Seaside, Magritte and the Pier book publishing engine.