One of the features of Xcode I hope to take advantage of as I explore Objective-C programming is its support for unit tests. I’ve long had a great deal of sympathy for the test-first programming approach, but when I write code for work (primarily Perl) I don’t write any unit tests.

Today I pulled out a book I picked up years ago, Unit Testing in Java: How Tests Drive the Code by Johannes Link, and noticed an appendix on unit testing in Smalltalk, which was a key inspiration for Objective-C. This bullet point caught my attention:

So-called “programming in the debugger” is commonly used in Smalltalk: you set break points in the methods you haven’t implemented yet and then start the tests and complete the actual functionality in the debugger.

To me, that concept is mind-boggling. Clearly Smalltalk is a very different world.

I’ve often regretted not studying computer science at Indiana University, where my first programming language would have been Scheme; my theory is that functional programming is best learned first, before you’re corrupted with ideas from procedural programming languages like C. Now I regret not going somewhere where I could have done serious work in multiple languages.

Several months ago I picked up Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages by Bruce Tate. I need to get back to it.