Lambda the Ultimate

inactiveTopic Industrial-Strength Functional Programming
started 8/14/2001; 12:42:23 PM - last post 8/14/2001; 12:42:23 PM
Ehud Lamm - Industrial-Strength Functional Programming  blueArrow
8/14/2001; 12:42:23 PM (reads: 394, responses: 0)
Industrial-Strength Functional Programming
While research on functional programming dates back to the 1960s, functional programming languages have not made much impact on industrial programming. The reasons for this are sometimes subject to vivid debate in forums like the comp.lang.functional news group, and papers have been written to try to explain the phenomenon. Philip Wadler lists Erlang as one of the few functional languages that can actually be found in significant industrial products. This paper describes the development of one such product: the Ericsson AXD 301 ATM multi-service switch.

I think Erlang is one of the more interesting languages around. The supporting tools are also very impressive.

This paper shows off an impressive product: a fully-functional ATM switch, with downtime less that 5 minutes per year. All components including the backplane switch is hot-swappable, all software is upgradeable without the need to reboot the switch. All connections are mirrored and load-balanced. It gracefully degrades under overload. The paper then makes the case how Erlang has helped the development of the switch, and gives some specific examples.

A paper and talk about the Metcast system provide an interesting reference point. There is some similarity to the Ericcson paper: the Ericcson's switch project and the Metcast were developed in three years, and had become operational. Both projects benefitted from functional languages. Both papers describe why functional languages proved to be so good in the industrial setting. There are some differences between the projects: 2 million lines of code (Ericcson's switch) and around 25,000 lines of code (Metcast); 200 developers (Ericcson's switch) vs one.

(Thanks, Oleg!)

Posted to functional by Ehud Lamm on 8/14/01; 12:56:04 PM