Background on Futurist Programming
Paul Haeberli and Bruce Karsh
Feb 3, 1994
Futurism is an Italian fine arts movement that was founded in 1909 by the poet Filippo Tommaso Marinetti. The Futurist's goal was to celebrate modern technology and to free Italian art from the psychology of the past. In 1910 Umberto Boccioni published the Manifesto of the Futurist Painters. Futurist movements related to sculpture, theater, architecture, fashion, and music followed. The Futurists can be credited with the development of performance art and concrete poetry. They also created music based on the sounds of machines called "The Art of Noises". The popular music group "The Art of Noise" is modern Futurist development.
Futurism has had a tremendous influence on 20th century art and design. It is easy to see the influence of the early Futurists on the work of the Bauhaus, De Stijl, Russian Constructivists, and French Cubists.
The Italian Futurists sought to free all artistic expression from the heavy religious atmosphere that controlled most art produced in Italy. They promoted art that related to the modern developments of their day - the automobile, the airplane, and mass communication. They rejected paintings of all subjects that had already been exploited.
We believe there is a great opportunity for these Futurist principles to be applied to the science of computer programming. We react against the heavy religious atmosphere that surrounds every aspect of computer programming. We believe it is time to be free from the constraints of the past, and celebrate a renaissance in the art of computer programming.
We find that many of today's computer systems are hopelessly wasteful and inefficient. Computer hardware has realized performance increases of a factor of more than 200 in the last 20 years, while in program design very little progress has been made at all since the invention of the subroutine. We would like to see the science of programming advance as quickly as other fields of technology.
We believe that undergraduate education spends too much time conveying dogma, instead of teaching a sound theory of program design that helps programmers create good programs. Universities should provide students with less religion, and much more practical experience in making and analyzing small, fast, useful and efficient programs.
We believe the result of the common academic approach is computer science graduates who make programs that are fat, slow, and incorrect. The present state of the art in programming discourages experimentation and formal analysis. This seems contrary to what we would expect from a "science".
Why does computer science reject self modifying programs? Why have some departments stopped teaching assembly language programming? On what scientific basis has this been done? Where is the experimental evidence to support these actions?
In 1991, after meeting and discussion we developed our Manifesto of Futurist Programming.
Please join us in to celebrating and publicizing the works of Futurist Programmers throughout the world. For additional information, see the Futurist Programming Notes provided.