Subscribe

A great talk that runs just over an hour. It covers some well trodden ground for people who have read pragmatic programmer, practice of programming or code craft. Jonathan Bloch provide compelling insights into proper develop ment practice and I pulled just a few of the key points (there are many more in the talk) out.

  • Prototype early and often. This point is also delivered well by the pragmatic crew.
    • Specifically he recommends writing three implementations to a plugin interface. When writing scripting interfaces I write the example code and tests first before I implement the C code. More is better here, there are subtle issues that are only worked out when you have to branch out from the specificity of a single caller.
  • When in doubt, leave it out. Sometimes referred to as KISS (keep it simple stupid). This is a pitfall many early programmers fall into, myself included. This is also captured well by Larry Wall, “Three great virtues of programming are laziness, impatience, and hubris.
  • Do not violate the principle of least astonishment. This is a broad reaching goal that is best discovered through experience. Functional programming models lead the way in this respect. One must be very, very careful in an object based environment not to violate this.
  • Fail fast - Report errors as soon as possible after they occur. A very important goal for those familiar with debugging large systems. In a similar vein the dragon book lays a similar foundational concept in that the error handling and reporting should be handled first when writing a new program.
  • And please don’t use strings in your API if you can help it. It will become a defacto contract that you will have to support for a long time to come. I’ve never made this mistake personally and hope I never will.
If you watch this talk I would be interested in hearing what you have taken away from it. I’m very greatful that Google posted this publicly. I know that Microsoft would not (and does not) post internal talks like this.

Edit: I’ve foundĀ  that the presentation is available as a PDF online

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • Reddit
  • Digg
  • del.icio.us
  • StumbleUpon
  • DZone
  • ThisNext

Related posts:

Trackback URI | Comments RSS

Leave a Reply