diff --git a/src/templates/src/fishbowls/oop/OOP.html b/src/templates/src/fishbowls/oop/OOP.html index 7493dec..acb3bb1 100644 --- a/src/templates/src/fishbowls/oop/OOP.html +++ b/src/templates/src/fishbowls/oop/OOP.html @@ -460,7 +460,7 @@ The pinned messages are some "checkpoints" in the discussion; chapter markers of
- 1958-1966: A few different people gradually come up with the notion of structured data. Conventions for managing compound data made of multiple words in memory. If you have two points, you want their x and y coordinates close together and in the same relative order. Seems obvious, but wasn't! See http://akkartik.name/sketchpad-oo.png from the Sketchpad thesis [1]. + 1958-1966: A few different people gradually come up with the notion of structured data. Conventions for managing compound data made of multiple words in memory. If you have two points, you want their x and y coordinates close together and in the same relative order. Seems obvious, but wasn't! See http://akkartik.name/sketchpad-oo.png from the Sketchpad thesis [1]. 1960-1962: Ivan Sutherland works on Sketchpad. It presages many OO ideas, but they're all in the programmer's mind and prose (thesis) because the code is all machine code. @@ -470,7 +470,7 @@ The pinned messages are some "checkpoints" in the discussion; chapter markers of 1973-1975: Abstract data types by Barbara Liskov. Ignore internal details of how objects are laid out in memory. Focus instead on a small vocabulary of operations that can be performed using them. Interfaces, basically.[4] -1966-1975: Alan Kay coins OO after working on Smalltalk. (The first chapter of http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html is better than my history above.) "Did not have C++ in mind." However, we're only halfway done. +1966-1975: Alan Kay coins OO after working on Smalltalk. (The first chapter of http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html is better than my history above.) "Did not have C++ in mind." However, we're only halfway done. (edited)
@@ -525,17 +525,17 @@ The pinned messages are some "checkpoints" in the discussion; chapter markers of
References -[1] https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf -[2] https://hannemyr.com/cache/knojd_acm78.pdf -[3] https://en.wikipedia.org/wiki/The_Mythical_Man-Month -[4] https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.136.3043 -[5] https://dspace.mit.edu/bitstream/handle/1721.1/5794/AIM-349.pdf -[6] https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/scheme/oop/yasos/swob.txt -[7] https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you -[8] https://news.ycombinator.com/item?id=785601 -[9] https://blog.plover.com/prog/design-patterns.html -[10] First HN submission that composition > inheritance: https://web.archive.org/web/20080508155333/http://www.eflorenzano.com/blog/post/inheritance-vs-composition. -[11] https://www.youtube.com/watch?v=6YbK8o9rZfI +[1] https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf +[2] https://hannemyr.com/cache/knojd_acm78.pdf +[3] https://en.wikipedia.org/wiki/The_Mythical_Man-Month +[4] https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.136.3043 +[5] https://dspace.mit.edu/bitstream/handle/1721.1/5794/AIM-349.pdf +[6] https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/scheme/oop/yasos/swob.txt +[7] https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you +[8] https://news.ycombinator.com/item?id=785601 +[9] https://blog.plover.com/prog/design-patterns.html +[10] First HN submission that composition > inheritance: https://web.archive.org/web/20080508155333/http://www.eflorenzano.com/blog/post/inheritance-vs-composition. +[11] https://www.youtube.com/watch?v=6YbK8o9rZfI
@@ -1303,8 +1303,8 @@ Regarding (1), I personally believe this is much better solved with a well desig Regarding (2), this is a weird linguistic typology thing which I doubt most people will even know unless they speak multiple languages. If you want to learn more about word orders in different languages, I recommend reading the following: - * https://en.wikipedia.org/wiki/Subject%E2%80%93verb%E2%80%93object_word_order - * https://en.wikipedia.org/wiki/Verb%E2%80%93subject%E2%80%93object_word_order + * https://en.wikipedia.org/wiki/Subject%E2%80%93verb%E2%80%93object_word_order + * https://en.wikipedia.org/wiki/Verb%E2%80%93subject%E2%80%93object_word_order Regarding (3), this is purely a tooling issue. It comes down to two main aspects: @@ -2202,7 +2202,7 @@ yes exactly, that's part of what I mean by "mere" (i.e. they're not wound up in
- in self (https://en.wikipedia.org/wiki/Self_(programming_language)) you have the idea of a prototype as the unit of implementation delegation + in self (https://en.wikipedia.org/wiki/Self_(programming_language)) you have the idea of a prototype as the unit of implementation delegation
@@ -2840,7 +2840,7 @@ this is why I think mere methods and OOP are separate concerns. Having a nice .
- One wonderful book that made the rounds last year: https://buttondown.email/hillelwayne/archive/why-you-should-read-data-and-reality + One wonderful book that made the rounds last year: https://buttondown.email/hillelwayne/archive/why-you-should-read-data-and-reality
@@ -2874,8 +2874,8 @@ this is why I think mere methods and OOP are separate concerns. Having a nice . By this statement, I mean that artificially conforming to any/all relations between data and types to an artificial hierarchy of agency is a form of naïve-Aristotelian metaphysics. Since there is no actual agency in the programming objects, it is a partial fallacy (and as previously stated, category error). When trying to conform a program to have a particular structure when it does not naturally, the absence of a structure in a program in more useful than a bad structure. -[1] https://en.wikipedia.org/wiki/Category_mistake -[2] https://www.gingerbill.org/article/2020/05/31/progamming-pragmatist-proverbs/ +[1] https://en.wikipedia.org/wiki/Category_mistake +[2] https://www.gingerbill.org/article/2020/05/31/progamming-pragmatist-proverbs/
@@ -4043,7 +4043,7 @@ Certainly though the term "design patterns" has come to exclusively mean "object
- https://en.wikipedia.org/wiki/Software_design does have a list. I guess I'm not aware of it because I don't do design 😅 + https://en.wikipedia.org/wiki/Software_design does have a list. I guess I'm not aware of it because I don't do design 😅
@@ -4289,7 +4289,7 @@ Certainly though the term "design patterns" has come to exclusively mean "object
- Among other critiques, this approach causes some blind spots because you get trained to think in terms of nouns and deemphasize verbs: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html + Among other critiques, this approach causes some blind spots because you get trained to think in terms of nouns and deemphasize verbs: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
@@ -4348,7 +4348,7 @@ Certainly though the term "design patterns" has come to exclusively mean "object
Kartik Agaram
-Among other critiques, this approach causes some blind spots because you get trained to think in terms of nouns and deemphasize verbs: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html +Among other critiques, this approach causes some blind spots because you get trained to think in terms of nouns and deemphasize verbs: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
@@ -4436,7 +4436,7 @@ Among other critiques, this approach causes some blind spots because you get tra
- He talked about it some on our podcast episode about programming education, as I recall (https://handmade.network/podcast/ep/eeac46c9-5e90-4b1c-9104-cff49734764d) + He talked about it some on our podcast episode about programming education, as I recall (https://handmade.network/podcast/ep/eeac46c9-5e90-4b1c-9104-cff49734764d)
@@ -5796,7 +5796,7 @@ I do think it's interesting though that it was still a more effective model than
- That HN comment (https://news.ycombinator.com/item?id=785601#785833) actually hit me like a pile of bricks. Until then I'd only heard that you used inheritance to model is-a relationships, then wandered off because that seemed to suck. + That HN comment (https://news.ycombinator.com/item?id=785601#785833) actually hit me like a pile of bricks. Until then I'd only heard that you used inheritance to model is-a relationships, then wandered off because that seemed to suck.
@@ -6760,7 +6760,7 @@ yes how many times has a junior programmer agonized over "is-a" vs "has-a"
- With hindsight, the question I'm left with is, why did anyone ever consider this a good thing. Alan Kay made the analogy with biological cells in http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html#4, but back then (i.e. until the 90s when I started programming) we all assumed that was a good thing. + With hindsight, the question I'm left with is, why did anyone ever consider this a good thing. Alan Kay made the analogy with biological cells in http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html#4, but back then (i.e. until the 90s when I started programming) we all assumed that was a good thing.
@@ -7121,7 +7121,7 @@ yes how many times has a junior programmer agonized over "is-a" vs "has-a"
- https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html + https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
@@ -9608,7 +9608,7 @@ I suppose then that programming was just running into the very real problems of
- Oh very interesting, hadn't seen this before: https://research.swtch.com/vgo-eng + Oh very interesting, hadn't seen this before: https://research.swtch.com/vgo-eng
@@ -12111,7 +12111,7 @@ Are the same as mine
- (For future readers, here is a link to the top! https://discord.com/channels/239737791225790464/980152876846428221/980153085320130630) + (For future readers, here is a link to the top! https://discord.com/channels/239737791225790464/980152876846428221/980153085320130630)