Beautiful Code - 'How programmers think'
Resource Management: A Critical Look at RAII
Resource management is one of the more painful things that we have to deal with in software. Invariably, when we acquire something we have to release it. Garbage collected languages pull this burden away from us with respect to memory...
Michael Feathers
The Logs That Bind..
I was visiting a team a while ago and we came across an area of code with extremely long methods. We looked around and tried to understand the code but its shape and intent was lost in this jungle of...
Michael Feathers
Outside the Design Boundary
I bet I know where your ugliest code is. I can usually find it when I visit a team. The first thing that I do is ask for an explanation of the architecture. I listen to the names and remember...
Michael Feathers
Can a program lie to you the way a story or essay can?
I just finished an unusual conference called Codework at the University of West Virginia, where computer science experts and writers batted around the similarities among their disciplines and the differences between writing code and writing fiction. I've already blogged...
Andy Oram
http://www.praxagora.com/andyo/
C++ and the Lambda Function Tradeoff: Clutter vs. Expressiveness
Lambdas and closures have just been voted into C++ 0x. Since this is a blog about beautiful code, I invite you to reflect on the relative beauty of a couple of code examples that were part of the lambda proposal....
Michael Feathers
The File Header Tax
I know your code is copyrighted. I'm not an expert in US Copyright law, but I do know that you don't have to register a copyright to have one. All you have to do is make some utterance on your...
Michael Feathers
Four Lines of Code
The other day, I was thinking about some code in a domain that I used to do a lot of work in: signal filtering. Imagine that you have an array of doubles and you want to remove some of its...
Michael Feathers
Edge Extension
I'm at the airport, coming home from one of my favorite conferences: Software Practice Advancement. It is a conference but it is also a yearly hangout for a group of people who have a terrifying amount of insight and experience....
Michael Feathers
Beautiful Code wins JOLT award
Beautiful Code won Dr. Dobbs Journal's JOLT award as the best general book of the year in
computing at SD West earlier this
month. JOLT awards are some of the most prestigious in the field of
software engineering. Details in
our publicist's blog.
Andy Oram
http://www.praxagora.com/andyo/
Quality Begs for Object-Orientation
Many people are dabbling in functional programming these days. Haskell is more popular than it ever has been, OCaml has it's adherents, and we are starting to see common functional idioms spread throughout the industry. Why am I not happy?...
Michael Feathers
Code inspections simplified
Code inspections make sense. If you find a flaw during a program run
and debug it, you've fixed just one bug. Only a code inspection can
fix the potentially hundreds of other similar bugs. Miska Hiltunen is
trying to make
inspections more agreeable by rigidly limiting what you have to
look for, and assuring developers that they can get through each
inspection in just about an hour.
Andy Oram
http://www.praxagora.com/andyo/
Model Checking creators win Turing Award
The Association for Computing Machinery has
given it\s highly prestigious A.M. Turing Award
to the researchers credited for inventing Model Checking: Edmund M.
Clarke, E. Allen Emerson, and Joseph Sifakis.
Andy Oram
http://www.praxagora.com/andyo/
Arc - An Unappreciated Approach to Language Design
Last week, Paul Graham released his first version of Arc. It's made a noisy splash. If you haven't been following Arc, here's the story in a nutshell. Paul Graham is an entrepreneur, Lisp hacker, and essayist. Years ago, he founded...
Michael Feathers
Beautiful Code from C to Haskell
Recently, Greg Weber blogged about a Haskell version of the regex matcher that Brian Kernighan wrote about in Beautiful Code. The example is written in C. I wondered if a more beautiful version could be created using a newer programming...
Michael Feathers
When C Collides With Unit Testing..
In my last blog I waxed poetic about C. It was heart-felt, but it was also a little bit embarrassing. I do love the language but it does have its share of trouble. The problem that I run into most...
Michael Feathers

