Reflecting on 40 years of software development

As regular readers of this blog will know, NAG celebrated its fortieth anniversary on May 13th with a series of informal talks during the day and a dinner party in the evening. Over 200 people - members, collaborators, current and ex-staff - took part in what was a thoroughly enjoyable day. Katie, our Marketing Communications Manager and Queen of the Blogosphere, put together an amazing scrapbook with photographs going back to the early days. Somebody commented to me that a healthy proportion of the pictures involve food and drink - I guess thats just the sort of Company that we are ☺.

Talking to some of the older participants it was clear that - while computing has changed completely in the last four decades - many of the issues which faced the early NAG pioneers are still with us today. Portability remains a key concern, particularly since after a long period of relative stability we are seeing a great divergence in hardware and a smorgasbord of proprietary, non-standard mechanisms for parallel computing. How to satisfy users of different language has always been another issue. Its a little-known fact that the original aim of the NAG project was to produce an Algol 60 library and that the Fortran library that persists to this day was a secondary activity. Over the years we've produced libraries in Ada, Pascal, Fortran 90 and C, with only the latter still under active development. Alongside that work we've produced many bindings for other languages - the first work that I did for NAG was to produce C header files for the Fortran Library while a PhD student at the University of Bath.

Another area where NAG has always been at the forefront is computer-generated documentation. When I first visited NAG more than twenty years ago most of the routine documents were produced on a golfball typewriter, although there were computer-readable versions maintained by Mike O'Donohoe at Cambridge University. His ingenuity at laying out complex mathematical formulae using only ASCII characters was quite astonishing! From there we adopted TSSD (a UK-developed contemporary of TeX), LaTeX, SGML and now XML from which we produce both pdf and HTML variants.

I have a sneaking suspicion that when NAG hosts its fiftieth birthday in ten years time, some of these issues will still be causing us headaches. For every problem that is solved, another will arise. Last Thursday we reminisced about the days when RAM was measured in kilobytes and IEEE arithmetic had yet to be invented. In ten years we might find the idea of having only a single CPU on a computer quite quaint, and a new generation of functional programmers will struggle to understand what object-oriented languages are all about. Its hard to predict the future but, whatever the issues, I'm sure that NAG will be working hard to address them and to continue to deliver high-quality software to our customers.


Popular posts from this blog

Implied Volatility using Python's Pandas Library

C++ wrappers for the NAG C Library

ParaView, VTK files and endianness