This month’s JDJ magazine has an excellent article on ‘Experiences with the New 1.5 Java Language Features’.
Over the last year or so I’ve read many overview and introductory articles outlining the Java SE 5.0 new features, but this article is interesting as it outlines best practices and gives tips on when and how to use the new language features more effectively.
Given a couple of Java books and a couple of months experience any developer can pick up the Java language. However, to effectively use the language, to understand and be aware of the pitfalls and common gotchas, and to make sensible choices about when to use a particular feature to best solve a problem – this ‘deep rooted understanding’ (as one of my colleagues once called it…) takes a lot longer to develop and grow. Depending on the environment you are working in and the level of experience of your colleagues you are working with, it can take a number of years to get to a point where you are using the language effectively.
Something I’ve noticed over the past few years is that new developers or developers new to Java (but not as often as new developers) initially think that once they ‘know’ the language, that is it, they are masters, they have the knowledge and know how to implement anything. Unfortunately this naive attitude results in some of the worse code I’ve seen, as the developer blindly codes away, not aware that there may be better, more appropriate solutions to the problem.
I think in order to realize that there is far more than just ‘knowing the language’ a developer has to acknowledge that there is always far more to learn and understand. Knowing a language is not the same as knowing how to use it well. I may know how to use a screwdriver, but that doesn’t make me a carpenter.