Well, as you will have gathered, I'm quite evangelical about objects, but this is not because I have no experience of programming procedurally. The first language I learned was BASIC (circa 1982 at the age of 11) and I also worked in C and its derivatives for some time before discovering Smalltalk.
The way I now feel about those languages is a bit like the way someone who is actually gay might feel about early attempts to have heterosexual sex simply because he didn't realise there was any alternative. Procedural code may work for some people, buit for me it's just
wrong, and once you go OO, there's no going back.
We're obviously not going to agree about this.
As far as I'm concerned, for example, there are
no situations in which a switch statement is preferable to
anything.
There are very good reasons why Smalltalk doesn't even
have a switch statement.
As a Smalltalker I find it fascinating to watch the progression of C-like OO languages. If you look at the sequence from C, to C++, to Java, to C# version 1, to C# version 2, those languages are moving steadily closer and closer to where Smalltalk was around 1980. Sadly, they still haven't quite got there. But they're heading in the right direction, so I live in hope.
Anyway, yes, off-topic, sorry!