BRIAN FOOTE


Latest HTML edition of Big Ball of Mud

Seventeen Secrets of the Great Legacy Makeover Masters from QCon New York 2012


The Laputan Press: First in meme arbitrageTM SM since 1997

RESEARCH INTERESTS

Mug Shot 2/97

Brian's research interests include object-oriented programming, design, reuse, languages, frameworks, software architecture, patterns, reflection, metalevel architecture, and software evolution, for starters.

I've managed to come up with electronic copies of all my publications and workshop position papers (and several talks as well) going back to 1985. These can be accessed via the links below. These are organized into the following categories. Some probably belong in more than one category. Direct hypertext links are given for papers for which HTML versions exist (such as Designing Reusable Classes). Links to versions in other formats are given after each paper's pseudo-bibliographic entry.

  • Labyrinth
  • Patterns
  • Frameworks
  • Reflection
  • Smalltalk
  • Contact Information

  • PATTERN LABYRINTH


    PUBLISHED OR WORKSHOPPED PATTERNS

    1. BIG BALL OF MUD
    2. CONSOLIDATION PHASE
    3. CONVERTIBLE CURRENCIES
    4. CREATE ABSTRACT SUPERCLASS
    5. ENGLISH ONLY
    6. EVOLVE AGGREGATIONS
    7. EXPANSIONARY PHASE
    8. FIRST ONE'S FREE
    9. FLEXIBLE FOUNDATIONS
    10. GENTLE LEARNING CURVE
    11. KEEP IT WORKING
    12. LINGUA FRANCA
    13. LOW SURFACE-TO-VOLUME-RATIO
    14. METAMORPHOSIS
    15. PIECEMEAL GROWTH
    16. PROGRAMMING-BY-DIFFERENCE
    17. PROTOTYPE PHASE
    18. RECONSTRUCTION
    19. SHEARING LAYERS
    20. SOFTWARE TECTONICS
    21. SWEEPING IT UNDER THE RUG
    22. THE SELFISH CLASS
    23. THROWAWAY CODE
    24. WINNING TEAM
    25. WORKS OUT-OF-THE-BOX

    DRAFT PATTERNS

    1. DEPLOY PEOPLE ALONG THE GRAIN OF THE DOMAIN

    PATTERNS


    
    [Foote & Opdyke 1994]
    			
    Brian Foote and William F. Opdyke
    Lifecycle and Refactoring Patterns that Support Evolution and Reuse
    First Conference on Patterns Languages of Programs (PLoP '94)
    Monticello, Illinois, August 1994
    Pattern Languages of Program Design
    edited by James O. Coplien and Douglas C. Schmidt
    Addison-Wesley, 1995
    

    This volume is part of the Addison-Wesley Software Patterns Series.

    [HTML] [PDF] [PostScript]

    Patterns: PROTOTYPE PHASE || EXPANSIONARY PHASE || CONSOLIDATION PHASE || EVOLVE AGGREGATIONS || CREATE ABSTRACT SUPERCLASS

    
    [Foote & Yoder 1996]
    			
    Brian Foote and Joseph W. Yoder
    Evolution, Architecture, and Metamorphosis
    Second Conference on Patterns Languages of Programs (PLoP '95)
    Monticello, Illinois, September 1995
    Pattern Languages of Program Design 2
    edited by John M. Vlissides, James O. Coplien, and Norman L. Kerth
    Addison-Wesley, 1996
    

    This volume is part of the Addison-Wesley Software Patterns Series.

    [HTML] [PDF] [Word] [RTF] [PostScript]

    Patterns: SOFTWARE TECTONICS || FLEXIBLE FOUNDATIONS || METAMORPHOSIS

    
    [Foote & Yoder 1998]
    			
    Brian Foote and Joseph W. Yoder
    The Selfish Class
    Third Conference on Patterns Languages of Programs (PLoP '96)
    Monticello, Illinois, September 1996
    Technical Report #WUCS-97-07, September 1996
    Department of Computer Science, Washington University
    Pattern Languages of Program Design 3
    edited by Robert Martin, Dirk Riehle, and Frank Buschmann 
    Addison-Wesley, 1998
    

    Order from Amazon.com

    This volume is part of the Addison-Wesley Software Patterns Series. Brian also wrote an introduction for this volume.

    [HTML] [PDF] [Word] [RTF] [PostScript]

    Patterns: THE SELFISH CLASS || WORKS OUT-OF-THE-BOX || LOW SURFACE-TO-VOLUME-RATIO || GENTLE LEARNING CURVE || PROGRAMMING-BY-DIFFERENCE || FIRST ONE'S FREE || WINNING TEAM PLoPD4 Cover

    
    [Foote & Yoder 1997b]
    Brian Foote and Joseph W. Yoder
    Big Ball of Mud
    Fourth Conference on Patterns Languages of Programs (PLoP '97/EuroPLoP '97)
    Monticello, Illinois, September 1997
    Technical Report #WUCS-97-34 (PLoP '97/EuroPLoP '97), September 1997
    Department of Computer Science, Washington University
    
    		
    [HTML] [PDF] [Word] [RTF] [PostScript]

    Patterns: BIG BALL OF MUD || THROWAWAY CODE || PIECEMEAL GROWTH || KEEP IT WORKING || SHEARING LAYERS || SWEEPING IT UNDER THE RUG || RECONSTRUCTION

    
    [Foote & Roberts 1998]
    Brian Foote and Don Roberts
    Lingua Franca
    Fifth Conference on Patterns Languages of Programs (PLoP '98)
    Monticello, Illinois, August 1998
    Technical Report #WUCS-98-25 (PLoP '98/EuroPLoP '98), September 1998
    Department of Computer Science, Washington University
    
    		
    [HTML] [PDF]

    Patterns: ENGLISH ONLY || CONVERTIBLE CURRENCIES || LINGUA FRANCA

    
    [Foote & Yoder 1998b]
    Brian Foote and Joseph W. Yoder
    Metadata
    Fifth Conference on Patterns Languages of Programs (PLoP '98)
    Monticello, Illinois, August 1998
    Technical Report #WUCS-98-25 (PLoP '98/EuroPLoP '98), September 1998
    Department of Computer Science, Washington University
    
    		
    [HTML] [Word]

    Also see the UIUC Metadata Pattern Mining '98 Workshop page.

    
    [Foote 1999]
    Brian Foote
    A Smalltalk Patterns Safari
    Smalltalk Solutions 99
    New York, New York
    Monday, 15 March 1999
    John Pugh, program chair
    
    		
    [HTML Presentation] [PowerPoint]

    
    [Noble & Foote 2002]
    James Noble & Brian Foote
    Attack of the Clones (Chinese)
    Koala PLoP 2002, Melbourne, Australia
    
    		


    FRAMEWORKS


    
    [Foote 1988a]
    Brian Foote (Advisor: Ralph Johnson)
    Designing to Facilitate Change with Object-Oriented Frameworks
    Masters Thesis, 1988
    Dept. of Computer Science,
    University of Illinois at Urbana-Champaign
    
    [Abridged, Illustrated HTML] [HTML] [PDF] [Word] [RTF] [PostScript] [Macintosh PostScript] [StuffIt] [Squeak Source]

    This may be the world's best documented piece of Squeak code. -- Ralph Johnson, 2/98

    
    [Johnson & Foote 1988]
    Ralph Johnson and Brian Foote
    Designing Reusable Classes
    Journal of Object-Oriented Programming
    Volume 1, Number 2, June/July 1988
    
    		
    [HTML] [PostScript] [Figure-1 PostScript] [PDF] [Figure-1 PDF]

    Click here for a table of the Design Rules from this paper.

    
    [Foote 1988b]
    Brian Foote
    Domain Specific Frameworks Emerge as a System Evolves
    Workshop on Methodologies and Object-Oriented Programming
    OOPSLA '88, San Diego, CA
    Norman L. Kerth, organizer
    
    [HTML]
    
    [Foote 1988c]
    Brian Foote
    Designing Realtime Frameworks
    Workshop on Realtime Systems
    OOPSLA '88, San Diego, CA
    John Gilbert, organizer
    
    [HTML]
    
    [Foote 1989b]
    Brian Foote
    The Craftsmen vs. the Scavengers:
    Ruminations of a Foot Soldier on the Reuse Revolution
    Workshop on the Reusable Component Marketplace
    OOPSLA '89, New Orleans, LA 
    John T. Mason, organizer
    
    		
    [HTML]
    
    [Foote 1991b]
    Brian Foote
    The Fractal Model of the Lifecycles of Reusable Objects
    Workshop on Reuse
    OOPSLA '91, Phoenix, AZ
    Rebecca Joos and John D. McGregor, organizers
    
    		
    [HTML]
    
    [Foote 1993b]
    Brian Foote
    The Fractal Model of the Lifecycles of Reusable Objects
    Workshop on Process Standards and Iteration
    OOPSLA '93, Washington, DC
    Monday, 27 September 1993
    James O. Coplien, Russell Winder, and Susan Hutz, organizers
    
    		
    [HTML] [HTML Presentation]
    
    [Foote 1995a]
    Brian Foote
    Where Do Reusable Objects Come From?
    Invited Talk, Software Engineering Summer School
    Illinois State University, Normal, IL
    Friday, 16 June 1995
    Billy Lim, instructor/organizer
    
    		
    [HTML Presentation]
    
    [Foote 1995b]
    Brian Foote
    The Fractal Model of the Lifecycles of Reusable Objects
    Workshop on OO Process and Metric for Effort Estimation
    15 October, 1995
    Dennis de Champeaux, Simon Horner, and Granville Miller, organizers
    OOPSLA '95, Austin, TX
    
    		
    [HTML]
    
    [Foote 1997]
    Brian Foote
    Confessions of a Framework Zealot
    Workshop on Developing Successful Object-Oriented Frameworks
    			
    OOPSLA ’97, Atlanta, GA
    Sunday, 5 October 1997
    Todd Hansen, Steven Fraser, Craig Hilsenrath, Bill Opdyke, and Arthur Riel, organizers
    
    [HTML] [HTML Presentation]
    
    [Foote 1998]
    Brian Foote
    Escape From the Spaghetti Code Jungle
    Keynote Address, Sprint Object-Oriented User's Group (SOOUG)
    1998 Winter Meeting, Kansas City, MO
    Tuesday, 17 February 1998
    Dave Wiltz, organizer
    
    		
    [HTML Presentation] [PowerPoint]

    For more information on refactoring, see our Lifecycle and Refactoring Patterns paper and John Brant's Refactory page.


    
    [Heffley et al. 1985]
    Earle Heffley, Brian Foote, Tony Mui & Emanuel Donchin
    Pearl II:  Portable Laboratory Computer System
    for Psychophysiological Assessment using Event Realted Brain Potentails
    Neurobehavioral Toxicology and Teratology, Vol. 7, pp 399-407, 1985 
    
    		
    [PDF]
    [Foote et al.]
    Brian Foote Kent Beck, Martin Fowler,
    John Vlissides, Ralph Johnson, Erich Gamma, Neil Harrison, et al.
    The Show Trial of the Gang of Four For Crimes Against Computer Science
    OOPSLA '99, Denver, Colorado, Wednesday, 3 November 1999
    
    		

    Click here to read the in absentia confession entered by the court for Richard Helm.

    [Foote & Hill 2000]
    Brian Foote & Laura Hill
    Programming at the Edge of Chaos: The Emergence of eXtreme Programming
    XP 2000, Caligari, Sardinia, 21-23 June 2000
    (Extended Abstract, Accepted but Undelivered)
    
    		
    [Word]
    [Overbey et al. 2005]
    Jeffrey Overbey, Spiros Xanthos, Ralph Johnson, and Brian Foote
    Refactorings for Fortran and High-Performance Computing
    Second International Workshop on Software Engineering for High-Performance Computing System Applications
    ICSE 2005, St. Louis, MO, 15 May 2005
    
    		
    [PDF]
    [Foote 2005]
    Brian Foote
    Total Code Makeover: Changing the Face of High-Performance CodeTM SM
    Talk on HPC and Refactoring, CCT Vistor's Program
    Center for Computation & Technology, Louisiana State University, Baton Rouge, LA
    
    		
    [HTML] [PPT]

    REFLECTION


    
    [Foote & Johnson 1989]
    Brian Foote and Ralph E. Johnson
    Reflective Facilities in Smalltalk-80
    OOPSLA '89, New Orleans, LA 
    October 1-6 1989, pages 327-335
    
    [HTML] [Word] [RTF] [PostScript]
    
    [Foote 1989a]
    Brian Foote
    Class Warfare: Classes vs. Prototypes
    Workshop on Objects without Classes
    OOPSLA '89, New Orleans, LA 
    David Ungar, organizer
    
    		
    [HTML] [Word]
    
    [Foote 1990]
    Brian Foote
    Object-Oriented Reflective Metalevel Architectures:  Pyrite or Panacea?
    Workshop on Reflection and Metalevel Architectures
    OOPSLA/ECOOP '90, Ottawa, Ontario, Canada
    Mamdouh Ibrahim, Brian Foote, Jean-Pierre Briot, Gregor Kiczales,
    Satoshi Matsuoka, and Takuo Watanabe, organizers
    
    		
    [HTML][Word][RTF] [HTML Presentation]
    
    [Foote 1991b]
    Brian Foote
    Flexible Foundations and Movable Walls
    Workshop on Reflection and Metalevel Architectures
    OOPSLA '91, Phoenix, AZ
    Mamdouh Ibrahim, Brian Foote, Pierre Cointe, Gregor Kiczales,
    Satoshi Matsuoka, and Takuo Watanabe, organizers
    
    		
    [HTML][Word][RTF]
    
    [Foote 1992a]
    Brian Foote
    Objects, Reflection, and Open Languages
    Workshop on Object-Oriented Reflection and Metalevel Architectures
    ECOOP '92 Utrecht, The Netherlands
    Brian Foote, chair
    Satoshi Matsuoka, Pierre Cointe, organizers
    Mamdouh Ibrahim, Gregor Kiczales, advisors
    
    		
    [HTML][Word][RTF]

    The electronic proceedings of the workshop are also available via ftp.

    
    [Foote 1992b]
    Brian Foote
    Living Languages
    Workshop on Progamming Languages:  The Next Generation
    OOPSLA '92, Vancouver, British Columbia, Canada
    Mamdouh Ibrahim, chair
    
    		
    [HTML][Word][RTF]
    
    [Foote 1992c]
    Brian Foote
    Objects, Reflection, and Open Languages (abstract)
    IMSA 1992 Workshop on Reflection and Metalevel Architectures
    Tokyo, Japan
    Akinori Yonezawa and Brian C. Smith, editors
    
    		
    [HTML][Word][RTF] [HTML Presentation]
    
    [Foote 1993b]
    Brian Foote
    Architectural Balkanization in the Post-Linguistic Era
    Workshop on Object-Oriented Reflection and Metalevel Architectures
    OOPSLA '93, Washington, DC
    Friday, 1 October 1993
    Brian Foote, chair
    Pierre Cointe, Dan Friedman, Jacques Malenfant,
    Dave Thomas, and Yasuhiko Yokote, organizers
    
    		
    [HTML][Word][RTF]
    
    [Foote 1994a]
    Object-Oriented Reflection and Metalevel Architectures
    Workshop Report, OOPSLA '93, Washington, DC
    Addendum to the Proceedings
    OOPS Messinger, Volume 5, Number 2, April 1994
    Jerry L. Archibald and Mark C. Wilkes, editors
    
    		
    [HTML]

    The electronic samizdat proceedings of the workshop are available via ftp.

    
    [Foote 1994b]
    Brian Foote
    Reflection as a Basis for Subjectivity
    Workshop on Subjectivity in Object-Oriented Programming
    William Harrison, Harold Ossher,
    Randall B. Smith, and David Ungar, organizers
    OOPSLA '94, Portland, OR
    
    		
    [HTML] [Word] [RTF]
    
    [Foote 1994c]
    Brian Foote
    An Object-Oriented Framework for Reflective Metalevel Architectures
    Thesis Proposal, Department of Computer Science
    University of Illinois at Urbana-Champaign
    Thursday, 17 November 1994
    
    		
    [Word] [Slides, Word] [Slides, HTML]
    
    [Foote 1995b]
    Brian Foote
    An Objective Look at Subjectivity
    Workshop on Subjectivity in Object-Oriented Programming
    William Harrison, Harold Ossher, and Hafedh Mili, organizers
    OOPSLA '95, Austin, TX
    
    		
    [HTML] [Word] [RTF]
    
    [Brant et al. 1998]
    John Brant, Brian Foote, Ralph E. Johnson, and Donald Roberts
    Wrappers to the Rescue
    Proceedings of the 12th European Conferences on Object-Oriented Programming (ECOOP '98)
    Brussels, Belgium, 20-24 July 1998
    To appear as part of the Springer-Verlag Lecture Notes in Computer Science series
    
    		
    [Word] [RTF] [PostScript]
    
    [Foote 1998]
    Brian Foote
    Reflective Programming in Smalltalk
    Smalltalk Solutions 98
    New York, New York
    Thursday, 7 May 1998
    John Pugh, program chair
    
    		
    [HTML Presentation] [PowerPoint]
    
    [Foote & Yoder 1998b]
    Brian Foote and Joseph W. Yoder
    Metadata
    Workshop on Metadata and Active Object-Models
    OOPSLA '98, Vancouver, Canada 
    Sunday, 18 October 1998
    Joseph Yoder, Brian Foote, Dirk Riehle, and Michel Tilman, organizers
    
    		
    [HTML] [Word]
    ECOOP 2005
    [Foote, Johnson, & Noble 2005]
    Brian Foote, Ralph E. Johnson, and James Noble
    Efficient Multimethods in a Single Dispatch Language
    ECOOP 2005, Glasgow, Scotland
    25-29 July 2005, Andrew Black, Programme Chair
    Copyright © 2005 by Springer-Verlag
    
    
    		
    [HTML] [Word] [PDF] [Talk PDF] [Talk PPT] [Talk HTML] [Double Dispatch Example Code (JAR)] [Double Dispatch Example Code (CVS)]


    SMALLTALK

    I have been working with Smalltalk-80 for over ten years, beginning with Dave Ungar's BS, and the Apple Smalltalk that appeared on the Lisa and Macintosh during the mid-80s. From there, I've worked my way though the succession of ParcPlace Smalltalk-80 incarnations. I was exposed early on to Smalltalk-V as well. Smalltalk has been at the foundation of much of my work, including Designing to Facilitate Change with Object-Oriented Frameworks and Reflective Facilities in Smalltalk-80.

    I am a member (a charter member, in fact) of Ralph Johnson's Smalltalk Group at the Dept. of Computer Science at the University of Illinois at Urbana-Champaign. The Smalltalk Group curates the UIUC's Smalltalk Archive.


    Click here to get the Adobe Acrobat Reader application.
    Click here to download the Microsoft Word Viewer application.

    CONTACT INFORMATION

    Brian Foote

    Urbana, IL  61801  USA
    (217) 390-7946 (Mobile)
    Email: foote@laputan.org
    
    Curriculum Vitae [HTML][Word]
    
    Catfish in the Memepool
    

    Google
    Search WWW Search www.laputan.org


    Search:

    Brian Foote foote@laputan.org
    Last Modified: 8 July 2012