Computing in Science & Engineering, July/August 2009, pp. 86 –90
The Promises of Functional Programming
By Konrad Hinsen
Since the early days of computing, software development techniques have changed almost as much as computer technology itself. Ever more powerful hardware made it possible to write ever more complex software, which both required ever better development tools and techniques and made their implementation possible. Programmers thus moved from machine code to assembly languages and then problem-oriented programming languages, which have evolved to integrate techniques such as structural and object-oriented programming. Another evolution went from monolithic programs via separately compilable modules and libraries to software component technologies. However, in one respect, today's popular programming techniques are still the same as those the pioneers used: our programs consist of statements that modify data stored in the computer's memory until that memory contains the desired result. This approach closely resembles how a computer works at the hardware level: the processor fetches data from memory, performs elementary operations on it, and writes the result back to a memory cell.
Computing in Science & Engineering magazine aims to meet the need in hard sciences for efficient algorithms, system software, and computer architecture to address large computational problems.