From: Will Duquette Date: April 27, 2004 8:10:20 PM PDT To: snit@lists.wjduquette.com Subject: Snit Reconsidered #1: Object Glue This is the first in a series of short essays I'm going to be writing about Snit. This one is philosophical; the ones that follow will focus on concrete design and implementation issues leading up to Snit 1.0. The primary purpose of Snit is to be "object glue"--to help you compose diverse objects from diverse sources into types and megawidgets with clean, convenient interfaces so that you can more easily build your application. It's important not to lose sight of that. Snit isn't about theoretical purity or minimalist design; it's about being able to do powerful things easily and consistently without having to think about them--so that you can concentrate on building your application. Snit isn't about implementing thousands of nearly identical carefully-specified lightweight thingamajigs--not as individual Snit objects. Traditional Tcl methods will be much faster, and not much more complicated. But Snit *is* about implementing a clean interface to manage a collection of thousands of nearly identical carefully-specified lightweight thingamajigs (e.g., think of the text widget and text tags, or the canvas widget and canvas objects). Snit lets you hide the details of just how those thingamajigs are stored--so that you can ignore it, and concentrate on building your application. Snit isn't a way of life, a silver bullet, or the Fountain of Youth. It's just a way of managing complexity--and of managing some of the complexity of managing complexity--so that you can concentrate on building your application. Object Glue--that's the thing to keep in mind. In fact, had I thought of it at the time, I'd have called Snit "Glue" instead...or perhaps "Gloo". Will ------------------------------------------------------------- will -at- wjduquette.com | Catch our weblog, http://foothills.wjduquette.com | The View from the Foothills