"What I notice is that my peers are progressing to more and more complicated and convoluted designs. They are impressed with the flashiest APIs, the biggest buzzwords, and the most intricate of useless features. They are more than happy to write endless unit tests to test their endless refactoring all the while claiming that they follow XP’s “the simplest thing that works” mantra. I’ve actually seen a guy take a single class that did nothing more than encapsulate the addition of two strings, and somehow “refactor” it to be four classes and two interfaces. How is this improving things? How can more somehow equal simpler? This should never be the case. These are the actions of an expert. These experts are very smart, capable, and skilled, but they are too busy impressing everyone to realize that their actions are only making things worse for themselves. In the end all of their impressive designs are doing nothing but making more work for themselves and everyone around them. It’s as if...
more...
- Paul Buchheit
from Bookmarklet
This applies to experts in any field.
- WorldofHiglet
It takes smart people to make complicated things simple.
- imabonehead
Is it possible he's talking about Java programmers?
- Gabe
i really liked this post (it resonated with me) until the end, at which point i felt alienated.
- Neha Narula
What alienated you, Neha? To me, it seemed valid enough but a bit overwrought and trite. I know plenty of experienced, skilled working programmers who value just-get-it-done simplicity -- the "professional master" doesn't seem that elusive.
- ⓞnor
from Android
I'm a big fan of keeping it simple, but some problems do require a thorough approach.
- Andrew C
"In contrast there are masters in the martial arts who learned their art as a means of survival and became masters in a realistic and hostile environment. We don't have anyone like this in the programming profession, " ... what about Carmack and Abrash & co?
- Andrew C
BTW, I dunno if this is what put Neha off, but it almost sounds like Shaw wants to deny the reality of a nice O(n log n) solution beating out an O(n^2) solution (assuming small k, whatever) on a problem of decent size.
- Andrew C
I mean, the stories of the martial arts masters may involve simple-looking moves, but they are also (in the stories) _perfectly_ executed, the product of careful observation of one's opponent and expert timing and precise angles. You might be able to pare down a simple linked list to the bare essentials, but I don't think it's quite analogous to not using a more complex structure _where appropriate_.
- Andrew C
Nice... "The main thing I noticed about the experts I’ve encountered is they are into impressing you with their abilities. They are usually incredibly good, but their need for recognition gets in the way of mastery. Everything they do is an attempt to prove themselves and in order to do this they must perform like an actor on stage. There’s nothing wrong with this, and I don’t think the...
more...
- Ken Sheppardson
Andrew: Maybe the point was that an Expert would say "Aha! You need to keep these items in order, so a self-balancing tree is the perfect solution.", while a Master would say "Ah, but you never have more than 5 items, so a linked-list will always be faster!"
- Gabe
this part, so much guy/son stuff! i dislike superfluous interfaces as much as anybody else: “There was this guy I worked with who once optimized a complicated red- black tree getting 300% performance boost. I was baffled and ask, 'How’d you do that? That’s impossible.’ To which he responded…” “'That’s my linked list my son.’”
- Neha Narula
This is the kind of crap that gives java such a bad image. It used to be that people used it for what it was -- a simple OO language with garbage collection and a fast VM. Now you have architecture astronauts going off the deep end and making everyone assume the language has to be that way. I believe this disease stems from people who focus more on the process than on the product of their work. That's a recipe for disaster in my book.
- Joel Webber
from BuddyFeed
Neha: So lt's the fact that the language is male?
- ⓞnor
from Android
The impulse is good, but people have such different senses of what is simple, what has quality, what flows with the Tao. It's like beauty that way. What the story doesn't say is the 300% performance boost was on a limited test data set, in the real world it performed 3x worse and all the complexity had a reason that made sense once you "know." :-)
- Todd Hoff
Complexity that's "there for a reason" is the worst kind. But who even talks about red-black trees vs linked lists? TreeMap vs LinkedList isn't the issue, interface swaddling and hyperfine dependency injection is the issue. Thing is, fights are decisively won, but code maintainability is much harder to measure, and even the importance of performance can be disputed.
- ⓞnor
from Android
I find it funny how the article, while praising simple approach, suffers from superfluity of language.
- andrei_c
Neha, I thought the final "That's my linked list my son" was to make clear the parallel with the earlier quote "That was my foot my son" from Mestre Bimba.
- Ruchira S. Datta
Todd: Imagine the situation where you are storing data for the US Census, and need to keep track of the people in a household by age. Since it's sorted and unbounded (there's no maximum number of children a family can have), you can easily think that a nice O(n lg n) algorithm that keeps a balanced binary tree is the right way to go. However, if you bother to look at the data, you'd see...
more...
- Gabe
I wish I could "Like" this article again :)
- scott willeke
might have created a "MEGA-liked" button:)
- alex melnikov
It's a great analogy, but in reality, the martial arts stuff is mythology. Wing Chun proponents often talk about simplicity of the art, but they'd get their butts kicked in a sloppy street fight because invariably, most real world fights are messy, quickly go to the ground, and result in grappling and choking and eye gouging. Bullshido has lots of examples of this. The 80 year old guy...
more...
- Ray Cromwell
Oops I screwed up again. I commented on your album, directly. :) Your place looks amazing! Enjoy!!
- Luc
Puzo does love the windows. He's sitting there on the window sill staring outside all the time. Freaks Oksana out because he's always leaning /on/ the window :)
- scott willeke
No screwups Luc, I feel popular with all the attention, thanks :)
- scott willeke
Had my first class for the Product Management Program at the University of Washington on Tuesday. Second class is tonight. Looking good. Highly qualified people teaching this program...
"If you're an enterprise customer and want to take advantage of Google App Engine, but have a large and cumbersome legacy system, we want to make it easy for you to port to the cloud."
- Tom Stocky
from Bookmarklet
It is the language I have written more code in than any other, so me = happy :)
- Deepak Singh
Finally! After all this time doing App Engine outreach, I can finally make all those people who have been begging me for FORTRAN happy. Whew!
- Jeff Eddings
Ugh, why couldn't they try a bit harder and let us use Fortran92? Now I'm going to have to remove all of my '92'isms before running the numerical windtunnel simulator on AppEngine. Sheesh.
- Bill Strathearn
How are you doing your podcasts, Dave? Can you tell us about your kit? The software you use? Thanks
- Colin Charles
from twhirl
Nothing special. I use whatever's handy. For interviews, Skype with Audio Hijack Pro on Mac. For solo podcasts, Audio Recorder and in both cases I add the metadata with iTunes. I store them in Amazon S3 using the S3 Organizer Firefox plug-in.
- Dave Winer
The feeling was right. What a hassle though. Apple store can't keep MacBook pros in stock. The really high-end one takes 7-10 days to get!
- scott willeke
from email
very nice :D i'm glad you have one so you can show me all the cool tricks when i get one :P
- Blake Moffatt
Lookin' good... I wish it uploaded to google docs, but there are some obvious reasons for Apple not doing that (they want to host the service, and google docs doesn't have features this cool).
- scott willeke
Or grab Data Dynamics Reports and get a greatly enhanced chart and not have to rewrite any of your chart code: http://www.datadynamics.com/Product... Of course ActiveReports users are safe, they've had a powerful chart embedded in the product for a couple years now.
- scott willeke