Faith, evolution, and programming languages: from Haskell to Java to links

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Faith and evolution provide complementary - and sometimes conflicting - models of the world, and they also can model the adoption of programming languages. Adherents of competing paradigms, such as functional and object-oriented programming, often appear motivated by faith. Families of related languages, such as C, C++, Java, and C#, may arise from pressures of evolution. As designers of languages, adoption rates provide us with scientific data, but the belief that elegant designs are better is a matter of faith.This talk traces one concept, second-order quantification, from its inception in the symbolic logic of Frege through to the generic features introduced in Java 5, touching on features of faith and evolution. The remarkable correspondence between natural deduction and functional programming informed the design of type classes in Haskell. Generics in Java evolved directly from Haskell type classes, and are designed to support evolution from legacy code to generic code. Links, a successor to Haskell aimed at AJAX-style three-tier web applications, aims to reconcile some of the conflict between dynamic and static approaches to typing.
Original languageEnglish
Title of host publicationCompanion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA
Pages508
Number of pages1
DOIs
Publication statusPublished - 2006

Fingerprint

Dive into the research topics of 'Faith, evolution, and programming languages: from Haskell to Java to links'. Together they form a unique fingerprint.

Cite this