Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yegor256/awesome-academic-oop

Curated list of academic writings on object-oriented programming
https://github.com/yegor256/awesome-academic-oop

List: awesome-academic-oop

academic awesome-list object-oriented-programming oop

Last synced: 17 days ago
JSON representation

Curated list of academic writings on object-oriented programming

Awesome Lists containing this project

README

        

logo

[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

This is a curated list of **academic** (!) books and papers on
object-oriented programming, which promote "object thinking," and a few
other related topics that I'm personally interested in. The quotes
are mostly of critical nature.

### OOP Is in Trouble

Tim Rentsch.
**Object Oriented Programming**.
_ACM SIGPLAN Notices_, 17(9), 1982.
[ACM](https://dl.acm.org/doi/pdf/10.1145/947955.947961):
> "Everyone will be in a favor of OOP. Every manufacturer will promote his products as supporting it. Every manager will pay lip service to it. Every programmer will practice it (differently). And no one will know just what it is."

Amnon H. Eden, et al.
**Principles in Formal Specification of Object-Oriented Architectures**.
_Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research (CASCON)_, 2001.
[ACM](https://dl.acm.org/doi/10.5555/782096.782099):
> "Unfortunately, architectural formalisms have largely ignored the OO idiosyncrasies. Few works recognized the elementary building blocks of design and architecture patterns. As a result of this oversight, any attempt to use formalisms for the specification of OO architectures is destined to neglect key regularities in their organization."

Oscar Nierstrasz.
**A Survey of Object-Oriented Concepts**.
1989.
[ACM](https://dl.acm.org/doi/10.1145/63320.66468):
> "The paradigm itself is far too general."

Scott Danforth, et al.
**Type Theories and Object-Oriented Programming**.
_ACM Computing Surveys_, 20(1), 1988.
[ACM](https://dl.acm.org/doi/abs/10.1145/62058.62060):
> "Object-oriented programming, like functional programming or logic programming, incorporates a metaphor in which computation is viewed in terms divorced from the details of actual computation. However, in the case of OOP, this metaphor is rarely introduced with the mathematical precision available to the functional or logic programming models. Rather, OOP is generally expressed in philosophical terms, resulting in a natural proliferation of opinions concerning exactly what OOP really is."
>"The heart of the OOP metaphor is an anthropomorphic view of the objects of computation. Simply stated, the term 'object oriented' is used to describe programming languages in which the objects of computatio are (in a sense) like people."

Jeffrey Carter.
**OOP vs. Readability**.
_ACM SIGADA Ada Letters_, XVII, 1997.
> "Inheritance in OOP allows you to write less code at the cost of less readability."

David West.
**Object Thinking**.
2004.
[Microsoft Press](https://www.microsoftpressstore.com/store/object-thinking-9780735691308):
> "The contemporary mainstream understanding of objects (which is not behavioral) is but a pale shadow of the original idea and anti-ethical to the original intent."

Oscar Nierstrasz.
**Ten Things I Hate About Object-Oriented Programming**,
_Journal of Object Technology_, 9(5), 2010.
[JOT](https://blog.jot.fm/2010/08/26/ten-things-i-hate-about-object-oriented-programming/comment-page-2/):
> "OOP is about taming complexity through modeling, but we have not mastered this yet."

Zeba Khanam.
**Barriers to Refactoring: Issues and Solutions**,
_International Journal on Future Revolution in Computer Science \& Communication Engineering_, 4, 2018.
[IJFRCSCE](https://www.ijfrcsce.org/index.php/ijfrcsce/article/view/1202):
> "Object oriented programming promotes ease in designing reusable software but the long coded methods makes it unreadable and enhances the complexity of the methods."

### Dataflow Languages & Machines

Being a co-author of [EO](https://www.eolang.org),
an object-oriented programming language with a [dataflow](https://en.wikipedia.org/wiki/Dataflow_programming)
flavor, I'm particularly interested in works related to dataflow languages and machines. More
specifically, I'm interested in their relation to object-oriented languages.

Dong Kai Wang et al.
**DiAG: a Dataflow-Inspired Architecture for General-Purpose Processors**.
_ACM International Conference on Architectural Support for Programming Languages and Operating Systems_, 2021.
[ACM](https://dl.acm.org/doi/abs/10.1145/3445814.3446703):
> "Pure dataflow architectures were limited in practicality since they could not easily support commonly used programming languages and data structures."

### Unsorted Yet

William R. Cook.
**Object-oriented programming versus abstract data types**.
_Foundations of Object-Oriented Languages: REX School/Workshop Noordwijkerhout_, 1990.
[Springer](https://link.springer.com/chapter/10.1007/BFb0019443):
> ...

## How to contribute

I'm not interested in professional or scholar
books, web articles, videos, blog posts, etc. The list must include
only academic papers, like ACM/IEEE/etc. conference proceedings or
publications in scientific journals.

I use [ACM citation style](http://www.acm.org/publications/authors/reference-formatting) with a bolder font for titles.

To find new papers I recommend to use
[Google Scholar](https://scholar.google.com.ua/schhp).

## License

[![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/)

To the extent possible under law, [Yegor Bugayenko](https://www.yegor256.com)
has waived all copyright and related or neighboring rights to this work.