What defines a good software solution?
Let me share with you a story from the times when I was studying software engineering. One of my first Java programming teachers asked us the following question:
“What defines a good software program? Is it a software product that works? Is it efficient code? Or is it an easy-to-modify program?”
The answer was pretty unanimous: “Code that works!” – the student crowd cheered.
“Chances are that there’s something even more important than whether your code works or not.” – my professor answered.
Efficient code has its place. The machines computing the first weather forecasts would have tomorrow’s forecast ready the day after tomorrow, which defeated the purpose.
Yes, it’s pretty obvious that your code has to work. But how do you define code that works? What if you didn’t understand what your final users needed? What if their needs change in the near future?
Hence, easy-to-modify code is the most important factor. If your code were impossible to modify, you would have set final limits to its efficiency. And what works today may be considered broken beyond repair tomorrow.
But if your code is easy-to-modify, an application that doesn’t pass all the tests can be fixed to work as it was expected. Or an application that performed slowly can be modified and optimized to perform as fast as you need.
My experience with Java
Java is one of my favorite programming languages, since I first started working with it more than 15 years ago. Its strongly typed, object-oriented nature, paired with loose coupling approaches, helps keep your programs well-structured, readable, and easy-to-modify.
Add a Model View Controller framework (I have worked with Spring and JSF, but mostly with Struts, combined with Hibernate and EJB,) and things get even better. And when you are coding big solutions as part of a team, such organized structure is priceless, because your code needs to evolve, and while everybody can write code that a machine can understand, only good programmers (usually supported by good frameworks) can write code that other human beings can understand.
I’m a Certified Java Programmer who has worked mostly with Java for web-based solutions using JEE. I have used Java to code online portals, applications with strict performance requirements, and standalone data-processing apps.
Do you need a Java programmer in your team? If so, don’t hesitate to get in touch with me.