Design patterns are reusable abstractions in object-oriented software. However, using current programming languages, these elements can only be expressed extra-linguistically: as prose, pictures, and prototypes. We believe that this is not inherent in the patterns themselves, but evidence of a lack of expressivity in the languages of today. We expect that, in the languages of the future, design patterns will be expressible as reusable library code. Indeed, we claim that the languages of tomorrow will suffice; the future is not far away. The necessary features are higher-order and datatypegeneric constructs; these features are already or nearly available now. We argue the case by presenting higher-order datatypegeneric programs capturing ORIGAMI, a small pattern language of recursive data structures.
%0 Journal Article
%1 citeulike:13432134
%A Gibbons, Jeremy
%D 2006
%K functional-programming haskell
%T Design Patterns as Higher-Order Datatype-Generic Programs
%U http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.5251
%X Design patterns are reusable abstractions in object-oriented software. However, using current programming languages, these elements can only be expressed extra-linguistically: as prose, pictures, and prototypes. We believe that this is not inherent in the patterns themselves, but evidence of a lack of expressivity in the languages of today. We expect that, in the languages of the future, design patterns will be expressible as reusable library code. Indeed, we claim that the languages of tomorrow will suffice; the future is not far away. The necessary features are higher-order and datatypegeneric constructs; these features are already or nearly available now. We argue the case by presenting higher-order datatypegeneric programs capturing ORIGAMI, a small pattern language of recursive data structures.
@article{citeulike:13432134,
abstract = {{Design patterns are reusable abstractions in object-oriented software. However, using current programming languages, these elements can only be expressed extra-linguistically: as prose, pictures, and prototypes. We believe that this is not inherent in the patterns themselves, but evidence of a lack of expressivity in the languages of today. We expect that, in the languages of the future, design patterns will be expressible as reusable library code. Indeed, we claim that the languages of tomorrow will suffice; the future is not far away. The necessary features are higher-order and datatypegeneric constructs; these features are already or nearly available now. We argue the case by presenting higher-order datatypegeneric programs capturing ORIGAMI, a small pattern language of recursive data structures.}},
added-at = {2019-06-18T20:47:03.000+0200},
author = {Gibbons, Jeremy},
biburl = {https://www.bibsonomy.org/bibtex/223e7b1828b89d737d55d6fa4c4be2432/alexv},
citeulike-article-id = {13432134},
citeulike-attachment-1 = {gibbons_06_design_1130193.pdf; /pdf/user/alexv/article/13432134/1130193/gibbons_06_design_1130193.pdf; fec1bd09e582c75d55276c4c9289ea924032bdfa},
citeulike-linkout-0 = {http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.5251},
file = {gibbons_06_design_1130193.pdf},
interhash = {dbcd148d42296666b390457cbe874699},
intrahash = {23e7b1828b89d737d55d6fa4c4be2432},
keywords = {functional-programming haskell},
posted-at = {2018-02-21 18:40:44},
priority = {4},
timestamp = {2019-08-24T00:10:33.000+0200},
title = {{Design Patterns as Higher-Order Datatype-Generic Programs}},
url = {http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.5251},
year = 2006
}