There are a lot of people out there today talking about how great a language Java is. It's easy to learn, fast to write, and it has a huge library of features that come standard with every build. There are a lot of programmers well-versed in it, so it's easy to get talent. Colleges are even using Java to teach kids how to program. While it is an excellent language for learning coding principles and general purpose tasks, there are some things you need to remember, however, when choosing Java as your language of choice. What are these, may you ask? Well, it's simple.
Java is verbose and wordy.
This in and of itself is not a bad thing. Tons of boilerplate tends to make it easier for developers to crank things out quickly. It may, however, make code slower to develop and harder to maintain. Make sure your developers know to document their code extensively, and in cases where it's appropriate, leave a file header giving a full description of the purpose. While this is somewhat true in other languages, Java's verbosity requires needs more and it's something that you should bring into consideration, if only to make sure that everyone is on the same page.
**The fact that everyone knows Java can be a double-edged sword. Don't forget this. **
One of the good things about Java is that just about everyone knows it. One of the bad things about Java is that just about everyone knows it. If you're posting a job ad for a Java developer, expect several hundred, maybe even more responses. Use careful attention to ensure that each one of these developers is exactly what you are looking for. Everyone knows Java, but not everyone is an innately talented programmer. Know the difference between the two.
Java is great for development, but there may be a better language for your specific scenario.
Java is at the forefront of web-based applications for a reason: it's well-suited to web applications. For other applications, though, there may be a better language. For example, if you're looking at database applications, a scripting language such as Perl or Python may or may not be better suited to your goals. Keep in mind as well that nowadays there are even variants of languages like Ruby (JRuby) and Lisp (Clojure) that run directly on top of the JVM framework. Keep this in mind--one of them might do certain things better than pure Java does.
Of course, whether or not Java should be your language of choice is entirely dependent on what kind of goal you want to accomplish. There's a ton of talent out there as far as developers go, but in certain areas, it's important to consider Java's strengths and weaknesses before deciding to use it for a project. May your programming adventures be many!
TOUCH: Hand-crafted Software is a leading provider of business software solutions. We use C, C++, Python, Clojure, PHP, JavaScript, and Java (in no particular order). Contact us for details.