Skip to content

Latest commit

 

History

History
151 lines (138 loc) · 39 KB

File metadata and controls

151 lines (138 loc) · 39 KB

-*- mode: org -*-

1OO

Idea: Read 100 books on OOP and see how many unconventional ideas I can reap from them. I’ve read so many OO books in my time I feel like there are no more surprises to be found. I want to be wrong. There are of course numerous OO books that I’ve read and found inspiring and that had great ideas inside:

TitleAuthor(s)CategoriesInteresting Idea(s)
The Art of the Metaobject ProtocolKiczales, des Rivieres, BobrowLisp, MOPClosette MOP
CLIPS User’s GuideGiarratanoRules, COOLOO + production rules
Design Patterns: Elements of Reusable Object-Oriented SoftwareGoFPatternsDesign Patterns
The Early History of SmalltalkKaySmalltalkGenesis of OO
Object-Oriented Programming: An Evolutionary ApproachCoxObjCPre-compilation of C
Object-Oriented Software ConstructionMeyerEiffel, DbCContracts
Smalltalk Best Practice PatternsKentSmalltalkPractical OO thinking
Smalltalk-80: The Language and its ImplementationGoldberg, RobsonSmalltalkSmalltalk impl.

I’ve read many more OO books in my time but if I wanted to read 100 more, then those that I might pick are found in the next section. If a book that might fit isn’t listed then I may have already read it in the past. However, I’m happy to take recommendations if you have them.

The next 100

What I’m looking for:

  • Books that I haven’t already read
  • Books with pre-OO and/or proto-OO ideas
  • Books with non-mainstream OO techniques

This is a living list. Books in italics are must-reads (for me).

TitleReadAuthor(s)CategoriesLink(s)Interesting Idea(s)
1A Little Java, a Few Patterns[/]Felleisen, FriedmanJavabuyUnconventional OO. The best part is the Y-Combinator on the last page.
2A Little Smalltalk[/]BuddSmalltalk, ImplfreeDescribes a small system and some of its implementation details.
3A Machine Architecture to Support an Object-Oriented Language[ ]DTICHardwarefree
4A Quick Trip to Objectland: Object-Oriented Programming with SmallTalk/V[ ]KorienekSmalltalkfree
5A Visual Formalism for Complex Systems[ ]HarelDesignDescription of Harel’s state transition diagrams, developed for use in large systems, especially responsive systems (real-time systems).
6Actors in Scala[ ]HallerScala, Actorsfree
7Ada 95: The Craft of Object-Oriented Programming[ ]EnglishAda95
8An Introduction to Programming in Simula[ ]PooleySimulafree
9Art and Science of Smalltalk[ ]Smalltalk
10Aspect-Oriented Database Systems[ ]RashidAOPfree
11Byte Magazine, volume 6 number 8 - Special Smalltalk issue[/]ByteSmalltalkfree
12Clojure for Java Developers[/]DiazFPbuy
13CLU Reference Manual[/]LiskovCLUpdfProto-OO
14Concurrent Programming ERLANG[ ]Erlang
15Constructing Intelligent Agents Using Java[ ]BigusAgentsfree
16Decline & Fall of the American Programmer[ ]Yourdainfree
17Design and Evaluation of a High Performance Smalltalk System[ ]UngarSmalltalk, Implfree
18Design by Contract: By Example[ ]DbC
19Design patterns for object-oriented software development[ ]PreePatternsfree
20Design Principles Behind Smalltalk[ ]IngallsWhat we lostfree
21Designing Object-Oriented Software[ ]Wirfs-Brockfree
22Developments in Design Methodology[ ]Papers
23Dictionary of object technology : the definitive desk reference[ ]Eykholt, FiresmithfreeOO Catalog
24Discovering Smalltalk[ ]LalondeSmalltalkfree
25Dynamic Web Development with Seaside[ ]Smalltalk, Webdev
26E in a Walnut[ ]Efree
27Efficient Polymorphic Calls[ ]DriesenOO Impl
28Eiffel: An Introduction[ ]SwitzerEiffelfree
29Elegant Objects[ ]Bugayenko
30Flavors: Message Passing in the Lisp Machine[ ]DTICLispfree
31Generative Programming: Methods, Tools, and Applications[ ]C++
32Growing Object-Oriented Software, Guided by Tests[ ]TDD
33Handbook of Programming Languages Volume 1: Object-Oriented Programming Languages[ ]SalusSurveyfree
34IBM Smalltalk[ ]SmithSmalltalkfree
35Implementing Distributed Systems with Java and CORBA[ ]AleksyCORBAfree
36Implementing Persistent Object Bases[ ]DearleOODBfree
37Inside Smalltalk[ ]Smalltalkv1 v2
38Interpretation of Object-Oriented Programming Languages[ ]CraigOO Impl
39JavaScript Spessore[ ]RaganwaldJS, Proto, MOP
40JavaSpaces in Practice[ ]BishopBlackboardfree
41Jess in Action[/]Friedman-HillRulesbuy
42Lisp-Stat: An Object-Oriented Environment for Statistical Computing…[ ]TierneyLispfree
43Masterminds of Programming[ ]Thinkingfree
44Modeling Reactive Systems with Statecharts: The STATEMATE Approach[ ]
45Naked Objects[ ]Pawsonfree
46Neural Networks in C++[ ]BlumAIfree
47NeXTSTEP: Object-Oriented Software[ ]NeXTfree
48Notes on the Synthesis of Form[ ]AlexanderDesign
49Object Design[ ]Wirfs-BrockDesign
50Object Lifecycles: Modeling the World in States[ ]ShlaerState Mgmt
51Object-Orientation: The Kiss Method[ ]KristenKISSfree
52Object-oriented Analysis and Design with Applications[/]BoochBooch Diagrams
53Object-Oriented Concurrent Programming[ ]Yonezawafree
54Object-Oriented Databases: An Introduction[ ]ChorafasOODBfree
55Object Oriented Perl[ ]ConwayPerlfree
56Object-Oriented Programming for Artificial Intelligence[ ]TelloAIfree
57Object-Oriented Programming in the Beta Programming Language[ ]MadsenBETAfree
58Object-Oriented Programming in Oberon-2[ ]MössenböckOberon-2free
59Object-Oriented Programming: The CLOS Perspective[ ]PaepckeCLOS
60Object-Oriented Programming Via FORTRAN 90/95[ ]AkinFortranfree
61Object-Oriented Simulation: Reusability, Adaptability, Maintainability[ ]ZobristSimulationfree
62Object Oriented Systems Analysis: A Model Driven Approach[/]EmbleyDesignfreeThe behavior model diagram techniques are interesting.
63Object-Oriented Thought Process[ ]Weisfeldfree
64Object Thinking[ ]West
65On Conceptual Modelling: Perspectives from Artificial Intelligence, Databases, and PLs[ ]BrodieData modeling
66On the design of the object-oriented language Sina[ ]Aksitfree
67Pattern Languages of Program Design v1[ ]Papersfree
68Pattern Languages of Program Design v2[ ]Papersfree
69Pharo By Example[ ]L@@k http://books.pharo.org/updated-pharo-by-example/
70Process View Of Simulation[ ]FrantaSimulafree
71Programming Lua[ ]Lua, Proto
72Programming for the Newton: Software Development With Newtonscript[ ]McKeehanL@@k http://newtonscript.org
73Programming with Turing and Object Oriented Turing[ ]GrogonoTuringfree
74Prolog++: The Power Of Object Oriented And Logic Programming[ ]MossPrologfree
75Psychology of Computer Programming[ ]WeinbergMetaParable of the Coke machine…
76Refactoring[ ]Fowlerfree
77Research Directions in Object-Oriented Programming[ ]ShriverSurveyfree
78Restful Rails Development[/]Ruby, WebdevThe question was never answered: how is REST similar to OO?
79Reusable Software : The Base Object-Oriented Component Libraries[ ]MeyerEiffel, DbCfree
80Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control[ ]E
81ROSS: An Object-Oriented Language for Constructing Simulations[ ]DTICSimfree
82Scheme and the Art of Programming[ ]Springer, FriedmanScheme OOfree
83Self Handbook[ ]Selffree
84Smalltalk by Example: the Developer’s Guide[ ]Smalltalk
85Smalltalk, Objects, and Design[ ]Liu
86Smalltalk-72 Instruction Manual[ ]Goldberg, KayWhat we lostfree
87Smalltalk-80, Bits of History, Words of Advice[ ]KrasnerSmalltalkfree
88Squeak by Example[ ]Ducasse, et al.Squeakfree
89String and List Processing in SNOBOL4: Techniques and Applications[ ]SNOBOL
90Stuff Goes Bad: Erlang In Anger[ ]HebertErlangfree
91Succeeding with Objects[ ]Goldbergfree
92Taligent’s Guide to Designing Programs: Well-Mannered Object-Oriented Design in C++[ ]Taligentfree
93Tao of Objects: A Beginner’s Guide to Object-Oriented Programming[ ]Entsmingerfree
94THINK Pascal[ ]free
95Touch Of Class Learning To Program Well With Objects And Contracts[ ]MeyerEiffel, DbC
96Tutorial: Object-Oriented Computing : Implementations[ ]PetersonSurveyfreeA survey of 80s era OO systems.
97Understanding CLOS[ ]Lawless
98Zen and the Art of Motorcycle Maintenance[/]PirsigDesignQuality without a name…
99ZODB[ ]OODBfree
100https://en.wikipedia.org/wiki/Composition_filters[ ]

Sometimes money considerations will come into play. That is, I’m probably not going to drop $50 on a single book for this experiment and on the other hand if I find a gaggle of OO books at the thrift store or at the library then I’ll grab those as well.

OO Books Not Written (Yet)

These are the books that I think are missing from the OO landscape.

Working TitleSynopsisSomething Close Perhaps
Advanced Io programmingA book on Io
Evolving an interactive OO programming environment from scratchIn the browser“Interactive Programming Environments”
Clojure Protocols in DepthClojure protocols deconstructed and best use
Interface-Driven DesignJava interfaces and interface design
OO OsdevOSdev with C++, case studies in OOOSDev
Pseudo-OO in C with structs and function pointersA common C approach but not widely covered
Pure Prototypal ProgrammingSelf
SOM DeconstructedUnderstanding CLOS
The Joy of LogtalkObjects + Prologhttps://logtalk.org/manuals/userman/declarative.html
Value ObjectsImmutable objects