Martin Fowler (software engineer)

Source: Wikipedia, the free encyclopedia.

Martin Fowler
ThoughtWorks
Websitemartinfowler.com

Martin Fowler (18 December 1963) is a British

patterns, and agile software development methodologies, including extreme programming
.

His 1999 book Refactoring popularised the practice of code refactoring.[3] In 2004 he introduced a new architectural pattern, called Presentation Model (PM).[4]

Biography

Fowler was born and grew up in Walsall, England, where he went to Queen Mary's Grammar School for his secondary education. He graduated at University College London in 1986. In 1994 he moved to the United States, where he lives near Boston, Massachusetts in the suburb of Melrose.[1]

Fowler started working with software in the early 1980s. Out of university in 1986 he started working in software development for

ThoughtWorks, a systems integration and consulting company,[1] where he was Chief Scientist.[6]

Fowler has written nine books on the topic of software development. He is a member of the

Publications

Domain-specific languages

In his book, Domain-specific languages, Fowler discusses

domain experts, and separate the manner of execution of a task from the definition of a task itself.[10]: 33  These benefits are set against the cost of learning a new language and building the tools for this language, siloing that results for different languages and the abstractions used in DSLs not being suitable for a task.[10]
: 39 

Fowler introduces the concept of internal (or embedded) and external DSL, an internal DSL being a DSL that is a subset of another language and can be executed by the tools for this outer language.

XAML, a language used to specify and change graphical user interfaces; FIT, a language to express testing scenarios; and make, a tool to build software[10]
: 147 

The book discusses implementing an external DSL using tools like

lexers, abstract syntax trees and code generation referred to as "syntax-driven translation"[10]: 219  This is contrasted with "delimiter-driven translation" which is said to be simpler but less powerful. Here the language is simple enough to be interpreted by splitting on delimiters and switching logic based on individual entries.[10]
: 201 

Ways of implementing internal DSLs is discussed, with attention paid to nested function calls,[10]: 357  sequences of function calls,[10]: 351  or method chaining[10]: 373  amongst other methods.

References

  1. ^ a b c Martin Fowler at martinfowler.com. Retrieved 2012-11-15.
  2. ^ "About Martin Fowler". martinfowler.com. Retrieved 1 May 2021.
  3. .
  4. .
  5. .
  6. ^ Martin Fowler | ThoughtWorks. Retrieved 2015-03-30.
  7. ^ Manifesto for Agile Software Development. Retrieved 2012-12-10.
  8. .
  9. ^ Martin Fowler (2004) "Inversion of Control Containers and the Dependency Injection pattern". Retrieved 2012-11-15.
  10. ^
    OCLC 686709295
    .

External links