Which programming language to use? A common question, and one asked by our intrepid researcher living in a world of Fortran programmers. So far we’ve covered concerns about community and data format when selecting a language… but what about support for developing in the language itself?
How you develop your code is often as important as what you are developing, particularly if longevity of the software or its use by others are requirements for the project. Even if they are not, it is always good practice to consider the approaches and tools that will allow your code to be used and developed in the long term. Developing readable, well commented and easily maintainable code is a good start to developing sustainable code!
There are many development tools and frameworks out there that can make life easier. An Integrated Development Environment (IDE) provides an interface for rapid development, which can help immensely. IDEs commonly provide handy features like language-specific support and development-time assistance (e.g. for selecting functions in libraries). For those familiar with such tools, IDEs also provide an easy way for others to start developing and building your software. Notable examples here are Eclipse and NetBeans.
There are many development frameworks for languages, whih can help you develop entire software systems with a wealth of functionality very quickly. Notable examples include Ruby on Rails (based on the Ruby language), Grails (based on Spring and Groovy), Spring itself (for Java) and Django (for Python), which provide frameworks for web- and data-oriented applications. Once you understand the frameworks, you can plug your code into well defined, high-level extensibility points – and the framework takes care of the rest. Such frameworks typically provide automated build systems, and easy ways to plug in and run unit and integration tests. I’ve used Django, Spring and Grails and have found that they all offer genuine value.
Another important aspect to consider is revision control. It can provide a centralised repository for all source code development and allow you to get away from the highly risky practice of having all your code on a single machine! Subversion is a good example that is in common use and is found on SourceForge.
If you’re considering making your code available to others, I’d strongly recommend the selection of an appropriate licence for your software. OSS-Watch can help here, so check our their site which has many pointer for selecting a suitable open-source licence.
So… a lot to consider, and there is a lot more that could be covered! The key is selecting the language and tools that are right for you and your project. Hopefully this blog series has provided some food for thought! If you want to know more, there are many helpful guides in these areas on the SSI website.
Ok – happy St Patrick’s Day everyone, I’m off to the pub!