Little Help?
By sogrady under Wanted, PHP on 11. October 2005Greetings fellow lesscode advocates. For those of you who don’t know me, I’m an industry analyst with RedMonk, and as a couple of the folks here can probably attest, I take every opportunity to push your message and your values on an unsuspecting population of software vendor customers. Ryan’s been gracious enough to grant me the virtual floor as it were to speak to all of you today to request some assistance.
I’m the process of finalizing my keynote presentation for next week’s Zend/PHP conference entitled, conveniently enough, “PHP: Simplicity and Lesscode.” So here’s where I need some help, if you’re willing. My slides are trying to emphasize the role simplicity/lesscode play in all of our lives: both in technology and not. The deck currently starts from non-technology examples such as simple machines and builds to technology related examples, most of which are PHP centric for reasons that are probably pretty clear.
The question I have for all of you then is this: what examples - real world or technology related - might you use if you were trying to evangelize the twin values of s/l? What would/do you tell people that don’t get what lesscode is all about? As an example of the type of thing I’m looking for, I’m planning on opening with one of my favorite comp-sci stories of all time: Ryan’s Insects and Entropy. Adam Bosworth’s discussion of how Google uses the stupidest query language ever is also in there.
Hopefully those will give you an idea of the kind of things I’m looking for, and suggestions in any form would be appreciated. I can’t promise to use everything, but I’ll incorporate whatever I think I can fit in.
A couple of logistical notes:
- Slides: will be made available following the conference under Creative Commons terms on my site, and here if the community here so desires. They’ll be offered under the same terms
- Credit: will be given whenever possible during the presentation, and the closing page of the slides will contain the names of everyone whose contribution was included (so if you leave a comment, be sure that’s the name you’d like to have credited). That slide will also include a link to this entry, so that even suggestions that don’t make the deck may get some airtime.
- Technology: given that this is a PHP conference, I’m probably not going to go in depth on Python, Ruby as much as I or some of you might like. So language specific examples will likely be genericized, just as an FYI, unless they compare more complex languages to PHP - in which case they’re encouraged.
- Questions: drop them here, and I’ll do my best to answer them.
Thanks for helping me get the lesscode message out, and I look forward to any conributions you might have.
Paul Cooper:
I think there are two intermingled sides to simplicity and lesscode - the user side and the developer side. To me the whole thing is about chosing languages, methods, approachs, frameworks, etc that make life better and easier for both parties. By making the job of the developer easier they can focus on making things better / easier for the user.
I would say that TV recording is real world practical example of simple and lesscode ideas for the user side.
Ask the audience how many people in their family know how to set the timer of a video recorder (you could ask how many of them know how to use a video recorder but if it’s a room full of programmers the chances are they do, and were hassled by family members to set it up). Recording a TV programme when you wheren’t in is/was a nightmare with a VCR - quite apart from the setting of the timer, labeling the tape, remembering where you put it, remembering that you even recorded that show (how many people have found a tape during a tidy up and thought - wow, I don’t remember recording that).
With a PVR (Tivo, Sky+, MythTV) it’s as simple and user centred as: find the program in the EPG (or search for something you’re interested in) and press the record button. Finding the recorded shows is simple as well. There is no doubt that more could be done to make PVR’s even more simple and lesscode, but the contrast between the VCR forcing you to be a part time programmer and librarian, and the PVR which allows you to find what you want and record it. It’s is slightly unfair to the designers of VCR’s since their wasn’t the infrastructure in the late 70’s / early 80’s to do this sort of thing.
comment at 12. October 2005
Jon Miller:
If I were asked to boil down the principles of abiding with the ways of simplicity and lesscode, I would say that it is simply an excercise in design. The projects we love to use and like to site as examples are the ones that were designed extrememly well. In particular, it is when developers stay focused a specific goal with a narrowed audience where you’ll typically find awesome apps.
I feel that designing with simplicity in mind is most important in the APIs that we create. Let’s say I had a problem or an itch to scratch with the current threading model in python and/or the subprocess module and had some slick ideas on how to improve it. My implementation might be rather complex and not simple at all, but my goal would certainly be to expose a very simple and easy to use API.
I think another good example of a group of coders that express the tenants of simplicity and lesscode are the linux kernel developers. Just think how often they have to ward off people coming along with the next best system call that HAS to be implemented. Reminds me of someone who posted a patch to the kernel mailing list with an implementation of an entire scheme interpreter in the kernel! People need to design with good taste and an understanding of what belongs where in order to produce or maintain systems that are concidered s/l.
I wish I could come up with some more good examples, off the top of my head, but I’d probably just be plagiarizing Alan Cooper.
comment at 12. October 2005
sogrady:
Paul: “I would say that TV recording is real world practical example of simple and lesscode ideas for the user side.”
Tivo! love that - will absolutely use that example. it’s the perfect embodiment of user side simplicity.
Jon: great point about building simplicity in upfront, via the APIs. i’ve got a bit of that when discussing REST vs WS-*, and the Amazon REST v SOAP adoption #’s, but the point could certainly use some emphasis. thx much.
comment at 12. October 2005
Ryan Tomayko:
I’d love to host them here. I’m bummed I can’t make it to see the keynote in person. :/
comment at 13. October 2005
sogrady:
happy to. i just hope they turn out to be decent ;)
would be cool if you could be there, but you probably know everything i’m going to say anyway :) plus i’ll be taking your name in vain early in the deck.
comment at 13. October 2005
chris wine:
This is a great story I received from Bill Edney…
My friend Rob owns a call center company here in St. Louis. 3 years ago
he had hired a ‘kid’ (22 years old - to me that’s young :-) ) to start
building an application to run his business. Now, this kid had started
to learn PHP and MySQL, so Rob asked me what I thought about that. I
told him that, for his needs and his budget, that PHP was the ‘right
choice’. Being biased by Scott (;-) ), I told him that I thought the
choice of MySQL was the wrong choice. That he should go with PostgreSQL
instead. “One day”, I told him, “Eddie’s gonna run into the wall with
MySQL and he’s gonna want subselects, triggers and stored procedures -
you know the things that real databases have”.
Rob didn’t understand what that meant and neither did Eddie, so they
promptly ignored my advice and began building PHP using MySQL. Now, 3
years later, they’re reasonably happy with what they have, but they
know they’re underpowered on the database. So yesterday (October 24th), I
stopped by the office to help Eddie with a bit of JavaScript and he
said to me “You know, I could really use subselects, triggers and stored
procedures”.
I couldn’t help but smile to myself. Finally, I thought, they’re ready.
So you’re all thinking that now that Eddie has seen the light, he’s
getting ready to migrate to PostgreSQL. Nope. Because his next
statement
to me was:
“So I think I’m gonna have the sysadmin upgrade us to MySQL 5.0, which
now has subselects, triggers and stored procedures”.
Eddie grew up.
MySQL grew up.
They grew up together.
Now, there are problems that PostgreSQL is suited for that MySQL 5.0
still isn’t suited for, etc. etc. And I’d still recommend PostgreSQL
any day of the week. The point is that folks start simple and then, if you
provide them with a migration path, will continue to grow as your
product grows.
comment at 04. November 2005