One minor irritation that I have is with the
BlueJ package, or more correctly with the way it is used to teach introductory object-oriented programming. BlueJ is a good way to introduce new students to programming but I feel that the introductory course should finish by moving the student to Java proper. By this I mean that the student should be able to write and compile a Java application that does not rely on the BlueJ program.Whether the student is introduced to a more advanced IDE, such as
Eclipse with the BlueJ plugin or
Netbeans-BlueJ edition, or whether the student is introduced to the javac and java command line tools (ideally with
Apache Ant) isn't important. My personal preference would be for javac and Ant as it is what I use for development myself, but the important point is that the student is able to actually create a Java application.
My experience is that some students rarely progress past the introductory-level BlueJ based understanding of Java whilst others take it upon themselves to learn what is required to do more powerful Java development. I think that those that do not advance their Java understanding past BlueJ are at a disadvantage compared with those who do and the problem lies partly with the students who should be more proactive in their learning, but also with the introductory programming courses that just don't go far enough.