The Portland Pattern Repository (PPR) is an online repository for computer programming software design patterns. It was accompanied by the website WikiWikiWeb, the world's first wiki. The repository has an emphasis on Extreme Programming is hosted by Cunningham & Cunningham (C2) of Portland, Oregon. [1] The PPR's motto is "People, Projects & Patterns".
On 17 September 1987, programmer Ward Cunningham with Tektronix and Apple Computer's Kent Beck co-published the paper "Using Pattern Languages for Object-Oriented Programs" [2] This paper, about software design patterns, was inspired by Christopher Alexander's architectural concept of "patterns" [2] It was written for the 1987 OOPSLA programming conference organized by the Association for Computing Machinery. Cunningham and Beck's idea became popular among programmers because it helped them exchange programming ideas in an easy to understand format.
Cunningham & Cunningham, the programming consultancy that would eventually host the PPR on its Internet domain, was incorporated in Salem, Oregon on 1 November 1991, and is named after Ward and his wife, Karen R. Cunningham, a mathematician, school teacher, and school director. Cunningham & Cunningham registered their Internet domain, c2.com , on 23 October 1994. Ward created the Portland Pattern Repository on c2.com as a means to help object-oriented programmers publish their computer programming patterns by submitting them to him. Some of those programmers attended the OOPSLA and PLoP conferences about object-oriented programming, and posted their ideas on the PPR. The PPR is accompanied, on c2.com, by the first ever wiki—a collection of reader-modifiable Web pages—which is called WikiWikiWeb. [3]
Kent Beck is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 original signatories of the Agile Manifesto, the founding document for agile software development. Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.
MeatballWiki is a wiki dedicated to online communities, network culture, and hypermedia. Containing a record of experience on running wikis, it is intended for "discussion about wiki philosophy, wiki culture, instructions and observations."
The WikiWikiWeb is the first wiki, or user-editable website. It was launched on 25 March 1995 by programmer Ward Cunningham and it has been a read-only archive since 2015. The name WikiWikiWeb originally also applied to the wiki software that operated the website, which was later renamed to "WikiBase".
Howard G. Cunningham is an American computer programmer who developed the first wiki and was a co-author of the Manifesto for Agile Software Development. A pioneer in both design patterns and extreme programming, he started coding the WikiWikiWeb in 1994, and installed it on c2.com on March 25, 1995, as an add-on to the Portland Pattern Repository. He co-authored a book about wikis, entitled The Wiki Way, and invented the Framework for Integrated Test.
In software engineering, a design pattern describes a relatively small, well-defined aspect of a computer program in terms of how to write the code.
In computer science, an object can be a variable, a data structure, a function, or a method. As regions of memory, objects contain a value and are referenced by identifiers.
An anti-pattern in software engineering, project management, and business processes is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive. The term, coined in 1995 by computer programmer Andrew Koenig, was inspired by the book Design Patterns and first published in his article in the Journal of Object-Oriented Programming. A further paper in 1996 presented by Michael Ackroyd at the Object World West Conference also documented anti-patterns.
James O. Coplien, also known as Cope, is a writer, lecturer, and researcher in the field of computer science. He held the 2003–4 Vloeberghs Leerstoel at Vrije Universiteit Brussel and has been a visiting professor at University of Manchester.
In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions.
OOPSLA is an annual ACM research conference. OOPSLA mainly takes place in the United States, while the sister conference of OOPSLA, ECOOP, is typically held in Europe. It is operated by the Special Interest Group for Programming Languages (SIGPLAN) group of the Association for Computing Machinery (ACM).
In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Nowadays it is typically implemented in such a way that it triggers an automated build with testing. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.
John Matthew Vlissides was a software engineer known mainly as one of the four authors of the book Design Patterns: Elements of Reusable Object-Oriented Software. Vlissides referred to himself as "#4 of the Gang of Four and wouldn't have it any other way".
Rebecca J. Wirfs-Brock is an American software engineer and consultant in object-oriented programming and object-oriented design, the founder of the information technology consulting firm Wirfs-Brock Associates, and inventor of Responsibility-Driven Design, the first behavioral approach to object design.
Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of formal languages known as programming languages. Programming language theory is closely related to other fields including mathematics, software engineering, and linguistics. There are a number of academic conferences and journals in the area.
In computer science, a value object is a small object that represents a simple entity whose equality is not based on identity: i.e. two value objects are equal when they have the same value, not necessarily being the same object.
The history of wikis began in 1994, when Ward Cunningham gave the name "WikiWikiWeb" to the knowledge base, which ran on his company's website at c2.com, and the wiki software that powered it. The wiki went public in March 1995, the date used in anniversary celebrations of the wiki's origins. c2.com is thus the first true wiki, or a website with pages and links that can be easily edited via the browser, with a reliable version history for each page. He chose "WikiWikiWeb" as the name based on his memories of the "Wiki Wiki Shuttle" at Honolulu International Airport, and because "wiki" is the Hawaiian word for "quick".
Pattern Languages of Programs is the name of a group of annual conferences sponsored by The Hillside Group. The purpose of these conferences is to develop and refine the art of software design patterns. Most of the effort focuses on developing a textual presentation of a pattern such that it becomes easy to understand and apply. This is typically done in a writers' workshop setting.
The Hillside Group is an educational nonprofit organization founded in August 1993 to help software developers analyze and document common development and design problems as software design patterns. The Hillside Group supports the patterns community through sponsorship of the Pattern Languages of Programs conferences.
Software archaeology or source code archeology is the study of poorly documented or undocumented legacy software implementations, as part of software maintenance. Software archaeology, named by analogy with archaeology, includes the reverse engineering of software modules, and the application of a variety of tools and processes for extracting and understanding program structure and recovering design information. Software archaeology may reveal dysfunctional team processes which have produced poorly designed or even unused software modules, and in some cases deliberately obfuscatory code may be found. The term has been in use for decades.
Yannis Smaragdakis is a Greek-American software engineer, computer programmer, and researcher. He is a professor in the Department of Informatics and Telecommunications at the University of Athens. He is the author of more than 130 research articles on a variety of topics, including program analysis, declarative languages, program generators, language design, and concurrency. He is best known for work in program generation and program analysis and the Doop framework.