Skip to main content


Showing posts from April, 2006

Young Heap [Info Blog]

The Java HopSpot VM uses a modified form of generational algorithms for garbage collection. Generational algorithms are based on two assumptions: Most program objects exist for a short period of time There are a few objects that exist for very long periods of time Generational algorithms divide the heap into subsections, each of which represents a generation of objects. The young heap (or the subsection containing the youngest generation of objects) gets garbage collected most frequently. Objects from the young heap that survive a few rounds of garbage collection are promoted to an older subsection. This algorithm is efficient because objects with the least probability for eing garbage collected are tested for their elligibility the least number of times. Also since some garbage collection algorithms involve moving objects (regardless of whether they will be garbage collected), this approach is faster because it moves fewer objects.

Continuous Learning

Learning continuously is imperative. Software professionals are in a field that is constantly changing. In order to provide effective solutions for clients we must keep up with changes in technology. Our learning must continue beyond university education. However, due to work and personal commitments, many professionals may not be able to attend formal classes once they start working. We are fortunate to have the Internet at our disposal. It is a wonderful medium for sharing and gaining knowledge. Educational material on the Internet allows people to learn at a time and pace that is convinient to them. It enables people to adopt a principle of "continuous education". Because a teacher is not present in front of us when we use the Internet as a learning medium, it is easy to stray away from the main topic. At times grasping a concept may be difficult because we cannot ask doubts to a teacher in real time. However these minor disadvantages are not very difficult to overcome

Is Java Too Bloated

Even though I have been programming in Java for several years, I am a bit displeased with the way Java and the J2EE platform has evolved. It seems like carrying a huge burden while programming, a burden that does not add much value. Think of the amount of things we have to know while developing J2EE applications. For building a small application developers must be familiar with: The Java language The core Java API JDBC Servlets JSP + Tags, EL Struts (or another MVC framework) Hibernate (or another OR tool or EJB's) Learning these technologies takes a long time, but after learning one also has to keep himself updated on these technologies, and we know the rapid rate at which stuff changes in the Java world. When we make a simple web based application, beyond the source code we deal at least with 3 configuration files; web.xml, struts-config.xml, and hbm.xml, not to mention the developer needs to know about packaging a J2EE application using jar, war, ear, ... files. All this seems l