Bruce Eckel has some great stuff about programming. I suppose I think it’s great because it mirrors some similar thoughts I’ve had for a while. It’s nice to be validated by someone well known and respected :-)
Programming is about communication between humans.
This mirrors the opening quotes for an Expressive Code talk I have. I gave it at the local Java Users Group back in February and I’ll be taking it on the road for a few dates of the NoFluffJustStuff conferences in a couple of months.
Programming is not about racing to throw together a solution. It’s about changeable systems.
This I would love to agree completely with, but I can’t. To draw in the concept of craftsmanship, let’s think about a wood furniture craftsman. He lovingly makes heirloom quality furniture by hand. The furniture is beautiful, resilient, and adaptable to changes in decor over the years. You expect to hand it down to your grandchildren one day. Contrast that with particle board furniture sold by the local discount warehouse. It’s much less expensive, available right now, and functional for a while — until the particle boards start sagging, and the adhesive veneer starts peeling, etc.
If you’re a college student who expects furniture to receive abuse, only expects it to last only a few years, needs it right now, and has limited income, then that particle board bookshelf is probably your best bet. However, it also makes sense to you if you know next to nothing about furniture, you’re caught up by the pretty pictures of it in a catalog, you’re cheap, and you’re not prone to thinking in the long term (oh, and you’re an executive at a large company).
Bruce Eckel is thinking of that second case by saying that programming is not a sprint to finish in that the “executive” needs an eduction, but I think that sometimes the “college student” case applies, when a quick solution thrown together best fits the situation. That being said, I’d personally rather be crafting than hacking (in the bad sense), but we need to recognize that it’s not always appropriate. Programming in the real world is not always craftsmanship.
The “Love It or Leave It” section reminds me of an experiment I’ve been running in the self-selecting nature of programmers of like mind being drawn together. I guess the results are conclusive enough that I can let the cat out of the bag now. In my first weblogs.java.net post I talked about people needing to take some pride in their craft and keep themselves informed of what going on, even for things that aren’t directly relevant to their task at hand. In it I referenced an incident here at work where some people could use a bit more broad of an exposure to Java technologies. That weblog is much higher profile than mine here, so I was wondering if any of those people would comment to me about it. They haven’t.