Biography:Robert C. Martin

From HandWiki
Robert C. Martin
Martin in 2020
Born
Robert Cecil Martin

(1952-12-05) 5 December 1952 (age 73)[1]
NationalityAmerican
Other names"Uncle Bob" Martin
OccupationSoftware engineer,[2] instructor
Known forAgile Manifesto, SOLID principles
Children4
Websitecleancoder.com

Robert Cecil Martin (born 5 December 1952), colloquially called "Uncle Bob",[3] is an American software engineer,[2] instructor, and author. He is most recognized for promoting many software design principles and for being an author and signatory of the influential Agile Manifesto.[4]

Martin has authored many books and magazine articles. He was the editor-in-chief of C++ Report magazine and served as the first chairman of the Agile Alliance.[5][6]

Martin joined the software industry at age 17 and is self-taught.[7]

Professional work

In 1991, Martin founded Object Mentor,[8] now defunct, which provided instructor-led training on the extreme programming methodology.[9] As of November 2023, he operated Uncle Bob Consulting, which provides consulting and training services.[10] He serves as Master Craftsman / Mentor at Clean Coders, a company run by his son Micah Martin, and produces training videos.[11]

In a 2024 interview Martin stated that he is programming primarily with Clojure.[12]

Software principles advocacy

Martin is a proponent of software craftsmanship, agile software development, and test-driven development.[13]

He is credited with introducing the collection of object-oriented programming (OOP) design principles that came to be known as SOLID.[14]

Publications

  • 1995. Designing Object-Oriented C++ Applications Using the Booch Method. Prentice Hall. ISBN 978-0132038379.
  • 2000. More C++ Gems. Cambridge University Press. ISBN 978-0521786188.
  • 2001. Extreme Programming in Practice. Addison-Wesley. ISBN 978-0201709377.
  • 2002. Agile Software Development, Principles, Patterns, and Practices. Pearson. ISBN 978-0135974445.
  • 2003. UML for Java Programmers. Prentice Hall. ISBN 978-0131428485.
  • 2006. Agile Principles, Patterns, And Practices in C#. Pearson. ISBN 978-0131857254.
  • 2009. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. ISBN 978-0132350884.
  • 2011. The Clean Coder: A Code Of Conduct For Professional Programmers. Prentice Hall. ISBN 978-0137081073.
  • 2017. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall. ISBN 978-0134494166.
  • 2019. Clean Agile: Back to Basics. Prentice Hall. ISBN 978-0135781869.
  • 2021. Clean Craftsmanship: Disciplines, Standards, and Ethics. Addison-Wesley Professional. ISBN 978-0136915805
  • 2023. Functional Design: Principles, Patterns, and Practices. Addison-Wesley ISBN 978-0138176396
  • 2024. We, Programmers: A Chronicle of Coders from Ada to AI. Addison-Wesley Professional. ISBN 978-0135344262

Guests

Notable guests of his video channel include Grady Booch and Ward Cunningham.

Clean Code

One term that is connected with Robert Martin is "Clean Code". It is the name of a book that he wrote,[15] a firm that he owns , a class that he teaches,[15] and a software paradigm that he supports. The software paradigm involves SOLID, Test Driven Development, Structured Programming, Object Oriented Programming, and certain Design Patterns.[16]

Short functions

A core teaching from Clean Code reads "Functions should do one thing. They should do it well. They should only do it."[17] Martin tells how impressed he was by a program by Kent Beck: "Every function [..] was just two, or three, or four lines long. Each was transparently obvious. Each told a story. And each led you to the next in a compelling order. That's how short your functions should be."[18]

John Ousterhout disagrees with this advice: "once a function gets down to a few dozen lines, further reductions in size are unlikely to have much impact on readability. [..] More functions means more interfaces to document and learn. If functions are made too small, they lose their independence [..]"[19] For Ousterhout, functions and other modules should be "deep", but have a small interface. Ousterhout also disagreed with Martin's advice against code comments, and for test-driven development. Martin and Ousterhout discussed these points of disagreement and clarified their views in a long dialogue.[20]

References

  1. Groupon OnAir (2016-07-26). The Future of Programming with Uncle Bob Martin. YouTube.
  2. 2.0 2.1 Microsoft Learn (2015-09-15). "Uncle Bob on Software Practice". Microsoft Learn. https://learn.microsoft.com/en-us/shows/seth-on-the-road-that-conference-2015/t001. 
  3. Heusser, Matthew (2011-05-10). "Do Professional Programmers Need a Code of Conduct? An Interview with Robert C. "Uncle Bob" Martin". http://www.informit.com/articles/article.aspx?p=1711821. 
  4. "Authors: The Agile Manifesto". 2001. https://agilemanifesto.org/authors.html. 
  5. "Robert C. Martin". https://ieeexplore.ieee.org/author/37291880700. Retrieved 2021-08-01. 
  6. Sondra Ashmore; Kristin Runyan (2014). Introduction to Agile Methods. Addison-Wesley Professional. p. 10. ISBN 9780133435214. 
  7. Martin, Robert C. (2018-12-10). "Uncle Bob on X" (in en). https://twitter.com/unclebobmartin/status/1072125758548688896?lang=en. 
  8. "Robert Martin (Uncle Bob) - Scrum Alliance". https://www.scrumalliance.org/community/profile/bmartin7. 
  9. "Object Mentor: About | LinkedIn". https://www.linkedin.com/company/object-mentor/about/. 
  10. "Robert Martin | LinkedIn". https://www.linkedin.com/in/robert-martin-7395b0/. 
  11. "Clean Coders : Level up your code.". https://cleancoders.com/studio. 
  12. ThePrimeTime (2024-04-30). "I Interviewed Uncle Bob". YouTube. https://www.youtube.com/watch?v=UBXXw2JSloo. 
  13. "UBC". http://cleancoder.com/products. 
  14. Martin, Robert C. (2000) "Design Principles and Design Patterns"(PDF). objectmentor.com. Archived from the original on 2015-09-06
  15. 15.0 15.1 "Uncle Bob Martin". http://cleancoder.com/products. 
  16. "Uncle Bob Martin". http://cleancoder.com/books. 
  17. p. 35 in Robert C. Martin, Clean Code, Pearson 2009.
  18. Clean Code, p.34
  19. John Ousterhout, A Philosophy of Software Design. Yaknyam Press, Palo Alto 2018, 2nd edition 2022.
  20. https://github.com/johnousterhout/aposd-vs-clean-code