David Abrahams (computer programmer)
David Abrahams is a computer programmer and author. He is the son of physicist Elihu Abrahams and choreographer Geulah Abrahams.[1] He is most well known for his activities related to the C++ programming language. In particular his contributions to the language include the delineating of a theory of exceptions, sitting on the C++ Standards Committee, being a founding member of Boost and co-authoring a book on the subject of template metaprogramming.
Abrahams became a member of the C++ Standards Committee in 1996 and served until 2012. During the standardization process that resulted in the first ANSI standard C++ – in 1998 – Abrahams was a principal driving force behind detailing the exception safety of the C++ Standard Library. Many of the functions and methods of the standard are specified with one of three guarantees. Together these have become known as the Abrahams guarantees.
Following the standardization, Abrahams became one of the founding members of Boost.org, a community group founded to provide reusable C++ libraries. Abrahams has written several of the libraries and assisted in the development of others. Abrahams was also the founder and principal member of Boost Consulting (later BoostPro Computing), a company that offered software development and training courses for 12 years (2001–2013) with a heavy bias to use the Boost libraries, and founder of BoostCon, now C++ Now, the annual conference in Aspen, CO.
In 2013 Abrahams became an employee at Apple Inc, where he worked on the development of the Swift programming language[2] and became the lead of the Swift standard library.[3] In 2017 he joined the SwiftUI project. In January 2020 he announced on Twitter that he was joining Google Brain to work on the Swift for TensorFlow project.[4]
Publications
In 2003 his paper from the 1998 International Seminar on Generic Programming at Dagstuhl "Exception-Safety in Generic Components" was published in Lecture Notes in Computer Science.[5]
In 2004, Abrahams co-authored C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond [6] with Aleksey Gurtovoy. Together with Boost's Metaprogramming Library, the book broke new ground in the practical use of template metaprogramming, including re-implementing much of the Standard Template Library in a compile-time world, with all operations on types.[7]
Significant Presentations
- In 2003, Abrahams presented Binding C++ to Python with the Boost Python Library at the ACCU Conference.
- In 2005, Abrahams presented C++ Template Metaprogramming and Rvalue References, Move Semantics, and Argument Forwarding at the ACCU Conference.
- Protocol-Oriented Programming in Swift from Apple's WWDC 2015.
- Embracing Algorithms from Apple's WWDC 2018.
- Building Custom Views in SwiftUI from Apple's WWDC 2019.
References
- "Geulah Abrahams, Choreographer, 65". The New York Times. 1996-08-21. ISSN 0362-4331. Retrieved 2020-01-22.
- Swift is an awesome new language, June 06, 2014, Ilovacha
- "Protocol-Oriented Programming in Swift". InfoQ. Retrieved 2020-01-14.
- "Dave Abrahams (@DaveAbrahams) | Twitter". twitter.com. Retrieved 2020-01-13.
- Generic programming : International Seminar on Generic Programming, Dagstuhl Castle, Germany, April 27-May 1, 1998 : selected papers. Jazayeri, Mehdi., Loos, R. (Rüdiger), 1938-, Musser, David R. Berlin: Springer. 2000. ISBN 3-540-41090-2. OCLC 45024465.CS1 maint: others (link)
- Abrahams, David. (2005). C++ template metaprogramming : concepts, tools, and techniques from boost and beyond. Gurtovoy, Aleksey. Boston: Addison-Wesley. ISBN 0-321-22725-5. OCLC 56051086.
- Woehr, Jack (June 3, 2005). "C++ x 2". Dr. Dobb's Journal.
- Notes
- Stroustrup, Bjarne (2000). "Standard-Library Exception Safety" (PDF). AT&T Labs Research., a reprint of Appendix E of Bjarne Stroustrup's The C++ Programming Language, Special Edition treating exception safety in C++
External links
- Abrahams' consulting company, 2001–2013
- Abrahams' personal site, as of 2009
- Abrahams' "next generation C++" site, as of 2009
- Boost.org