Skip to main content

Posts

Showing posts from April, 2018

The Future of Java

There is no doubt that Java has held the title of the most popular programming language for many years ( credit stackify , codingdojo  and  vintaytime ). Even if you agree with the various stats, we can easily come a consensus that Java is one of the top ten most widely used  language in the enterprise world and most sought-after job skill  for a software developer. I am not here to argue if Java really deserves its current spot but to predict (if I may), how it would evolve in coming years. Ever since Oracle took over  the command and control of JDK development since 2009, there has been skepticism over the future of Java. Luckily we had several enhancements to Java in JDK 7 and 8, which restored the confidence we all have put in Java over many years. Java as a language had its flaws and drawbacks, which other languages (old and new) tried to fill in. The real star was always JVM ( the runtime environment on which Java runs and makes it platform independent). Inventors of programmin

Code refactoring is not an end of year task

Refactoring is one of the best practices of  Extreme programming . Even the most stable project requires occasional modification. The idea is to clean up duplication and smelly code. The principle of software entropy suggests that program starts off in a well-designed state, but as new bits of functionality are tacked on, programs gradually lose their structure. We write a small program that does a specific job well. Later we add new functionality on top of existing program, often in a way that the existing program was not intended to support. In such cases, we can either do a complete redesign or patch some work around. Redesign and rewriting existing code results in extra work, which in most cases we can’t afford. Also, we may miss existing functionality or introduce new bugs. The principle usually followed is: “If it ain’t broke, don’t fix it!”. However, if a code is made complex due to poor design choices and unnecessary constructs then it starts emanating code smell. R