I know I’m going to sound like an old guy but I do miss programming in C. Of course, working for Sun micro and on web services, using Java is an obvious choice but, still, I really miss my C days

First off, I think Java has become way too complex. There must be APIs for every single person on the planet that got unhappy with the existing ones. Just look at all the ways one can use to handle inputs! I know lots of it has to do with ease of development and make sure nothing goes wrong at runtime etc. but, boy, does it come at a price? Too much choice has a detrimental effect on programmers IMO; If, after writing some code, you need to check whether this is the latest/greatest API to do what you intend to do then I say something’s wrong. Perhaps I do need a refreshing/crash course in Java but just looking at the number of deprecated APIs makes me think we might have gone a bit too far. It seems to me design goal 1.2.1 has been slightly forgotten in Java’s recent versions…

What I also liked in C is its simple set of instructions, the fact that you really need to pay attention to things like memory allocation. Don’t you miss malloc() and free()?? :) 

As for object-oriented programming? I like Objective-C. Take C, add a Smalltalk-based object model and you got a great do-it-all language!

To be fair, Java has so many libraries out there that, writing almost any application has become a matter of finding the right set of tools and creating some glue code around those. Of course the writing once running (almost) everywhere is neat too (although if carefully written a C program can be very portable).

As a student, I learned pascal and found it was a good language to start with (simple enough to teach you the basics of procedural programming). For object oriented, Java would be great if not for its many APIs that do get student distracted from the fundamentals. What do you reckon is the best language to learn OO programming?

All right – back to my Java programming (using the fantastic Netbeans IDE v6.5 – really, try it out!)