[squeak-dev] Design Attitudes

Chris Cunnington smalltalktelevision at gmail.com
Fri Dec 17 04:41:55 UTC 2010


This whole exchange about Gofer has been interesting. I don't just think 
it's a random bump between two programmers. I think it's about two 
programmers who have different attitudes towards design. Do you build a 
tool for a specific purpose and no more? Or do you build it with the 
potential to be readily adapted to a future purpose?

I believe Dale when he says that if you don't build all this Lukas-esque 
redundancy that a design is hard to modify. That you'd get locked up in 
the methods, when you want the flexibility of a design with lots of 
classes. But remember - Dale didn't design Gofer. He adapted it. Would 
he have built it with the academic rigor that is clearly Lukas's metier? 
Would his boss stand for that kind of fiddling? I'm willing to bet Dale 
benefits from this design attitude, but that he wouldn't do it himself 
from scratch.

If people want to look for a difference between Squeak and Pharo, I 
think this is emerging as a possible difference. Neither is right or 
wrong. If you need a tool for a specific purpose and you're skilled -- 
you can build one in half an hour from scratch. Do you want to take five 
times that long to build something with more classes, so you can save 
time in the future by having to do less in the future?

Neither is right, but I have sympathy for people who have strong 
feelings one way or another. For me Seaside suffers from an explosion of 
classes that I've begun to loathe. I don't want a framework that can be 
adapted to anything. I want one that does one specific thing. That's 
all. And Pier, as far as I can tell, does nothing. Zero.

Some people will baulk at that statement. And I'm sure that if I 
understood it better, I'd see that Pier can do anything. And I'd only 
have to make a small series of adjustments to harness real power. I 
don't want that, though. I don't want to have to guess what the code is 
supposed to be for.

When I read strange code I want to have it tell me in bold terms what 
its clear, stark intent is. I want it to be as blunt as I am. I want the 
code to scream at me: "This is what I do!" (Actually, I like code that 
says things like: "This is what I do, and if you don't like it, then you 
can...")

And now that we've learned this interesting lesson, let's now resume 
detente, Perestroika, Entspannung, whatever.

Chris



More information about the Squeak-dev mailing list