"There are many reasons to view HelloWorld as the worst possible way to begin a course in object-oriented programming. At its core, an object-oriented program should consist of highly-cohesive objects sending and receiving messages to other objects. Maybe when a user clicks on a JButton that is part of the application's GUI, all of the objects interested in knowing when this particular JButton is clicked will be notified. These objects then do what needs to be done -- perhaps by sending messages to other objects.
Now look back at HelloWorld. No objects are created. The HelloWorld class doesn't even contain any method, other than main() -- that's a rant I'll save for the next section. HelloWorld is a class without any reason to exist, and yet this is where we begin our discussion of object-oriented programming. If you were highly charitable, you might give HelloWorld OO points because the println() method of the out class in the System package is being invoked. Blech," says Daniel Steinberg in this OReilly ONJava.com article:
i dont agree too much on this one. Of course the classical HelloWorld is nearly 100% procedural stuff, but i dont think that this is the point.
HelloWorld stands for the most simple way a program could be written in every language. It doesnt stand for a program that incorporates all language features in one place.
Just the idea of creating AWT dialgoues and buttons just for introducing the language to a complete newbie is somehow weird.
HelloWorld must be something which is fast to write and even faster to have success with. Its the very first contact with the language, and the time of typing it in and doing java HelloWorld must be minimal. The result should be: "wow, this damn cool little program is running, it was not too hard ... i want more"