Adam Barr

SE Radio 357: Adam Barr on Code Quality

Adam Barr, author of Why Smart Engineers Write Bad Code talks about code quality.  Felienne spoke with Barr about how developers learn to program on their own while they are in high-school; how that influences their thinking about code quality; what code quality is, how is can (or cannot) be measured and whether some programming languages are more prone to bad code. Programming education in universities is also addressed; what should students learn to prepare for the workforce? Optimization in relation to code quality, and how current developments like the cloud and GitHub influence code quality. The discussion continues with a discussion on standardization. Why does our profession lack a professional certificate like doctors and engineers have, and what would it entail to create one.

Show Notes

Related Links

Join the discussion
  • I enjoyed most of the points made in this podcast but was surprised by the comment, “languages that are performance based like C/C++ are getting to be borderline obsolete”. In the embedded programming world at least, C is still necessary to know because embedded systems are often resource constrained by microcontroller throughput, memory and cost and there is arguably no better language to use for these systems than C. I’ve been an embedded software developer for over 20 years and don’t see a case that the applications in C are shrinking because the number of embedded applications and the number of products which need high performing code in them is in fact growing. The very nature of an embedded system is to perform well. I think C today is still the second most popular language (second to Java) even though it was first introduced nearly 40 years ago because of its ability to write high performing, platform independent code. I think the presenter has some good insights on Code Quality though. Would still recommend listening.

  • First let me say that I am still a student, my comments are made out of curiosity and to gain the opinion of an experienced programmer or engineer.

    When you say that embedded systems need to perform well, do you mean that they need to be fast, or do you mean that they need to perform correctly and predictably?
    I ask this because while c is fast, and predictable, I think that it is not the best language for ensuring that your program is correct.
    At my university our professor uses Ada as the general work horse as it has good to to ensure correctness.
    Do you write your whole system in c? Or do you only write preformance critical software in such a language.

More from this show