Looking back and ahead
Table of Contents

Looking back and ahead

I started developing JPARSEC when I arrived at OAN, that was six years ago. My knowledge of Java at that time was limited (an intensive six-months course and one year of experience as a consultant), but enough to go on and to know that I should bet for Java. My idea was to implement in this language everything I did in other languages (BASIC, Fortran, and others) in the previous 12 years. Soon I adopted the recommended Java conventions since I wanted my code to be released soon or later and to become useful to other developers. First three years were dedicated to add functionalities to the library, letting to organize themselves in a natural way. In fact I added too much functions to the core library, so that after three years I started to separate some parts into programs and models, developing the GUIs for an easy use of the functionalities, and reducing the number of dependencies and improving overall performance. I also decided to put everyting in production phase by means of a so called JPARSEC Manager, that appeard as a natural way to allow everyone (I mean astronomers, that are not very Java-capable humans) to install and use my programs.

The production phase had success in different ways. For instance, in addition to developing new models for research I collaborated with an enginneer at JPL working in the software for the new Curiosity and Phoenix Mars rovers, and I created also an ephemerides server. However, in the last few months I've realized that JPARSEC should go into another phase of development. A few days ago I released version 1.74, which can be considered as the first mainly bug fix release, produced specially for the ephemerides server, that has proved to be a very handy project to improve the implementation of ephemerides and charts in JPARSEC.

This weekend I've taken some time to read again some chapters of the excellent book Thinking in Java (downloadable here), for instance the introduction to objects, the project analysis and design, or the programming guidelines. Java is indeed an extraordinary tool for research that is continuously being updated and improved (the mateinance review of the JDK 7, the next great step in the development of Java, is just completed and the official release could be late this year), and I think most astronomers should read that chapters before thinking about how to implement a given model.

It seems to me that JPARSEC claims for a complete set of JUnit tests to ensure the quality of the implementation. In addition to that, I have too much things completed at 80% or 90% that should be finished before implementing new functionalities, mainly the programs and models but also some parts of the library itself. So probably next months will not be very prolific in new developments for JPARSEC, but I will spend most of the time in improving the code, testing everything, and finishing the programs. I feel this necessity because despite of the care taken in the development, JPARSEC does not inspire enough confidence to continue working with the same metodology. I mean that the size and great reuse of components for any specific goal in astronomy and astrophysics is getting too deeply to think only about achieving more goals at this moment. Each of these goals requires manteinance and some minor developments to ensure quality and to improve them. Anyway, I will not stop to add functionalities if they are useful. For instance, this weekend I discovered an excellent Surface plotter project and I've added it to the next release of JPARSEC!

blog/looking_back_and_ahead.txt · created: 2011/06/12 13:32 (Last modified 2011/10/15 10:40) by Tom├ís Alonso Albi
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki