[HN Gopher] Why Architecture Oriented Programming Matters (2019) ___________________________________________________________________ Why Architecture Oriented Programming Matters (2019) Author : mpweiher Score : 22 points Date : 2023-03-26 19:07 UTC (3 hours ago) (HTM) web link (blog.metaobject.com) (TXT) w3m dump (blog.metaobject.com) | peterhil wrote: | The bold point really resonates with me. | | Lately I've been writing a CLI application in Python to analyse | and generally handle possibly megabytes of DNA data. | | At first I wrote the code quickly and in haste of inspiration | using some Numpy constructs, some functional maps (with list) and | an occasional list comprehension. It has took WAY too long to | convert to code to use iterators, because the syntax and | semantics are so different. | | In Lisp I could usually just switch the kind of map function to | be lazy, iterative, or whatever I would like without changing and | carefully thinking about the rest of the code. | | I think this is the kind of glue the article points to. | sshine wrote: | I'm not sure what this article even is. | | Does it mainly bash John Hughes for bragging about how good FP | is? | | Or does it mainly advertise for the author's language, Objective | Smalltalk? | | Objective Smalltalk -- http://objective.st/ -- is a mostly | unimpressive, one-man project that claims to be the first general | purpose programming language, and that all other programming | languages are DSLs in comparison. The few simplistic "Hello | World!" front-page code examples don't solve any problems related | to software architecture. I'm tempted to believe he just likes to | make small languages that resemble all the other languages, like | the rest of us. | | The article lacks perspective by measure of the lack of any | references to Infrastructure as Code, first-class module systems, | integration between language ecosystems and their package | management and languages. I would have had more to say about how | "software architecture" goes together with the lack of | expressivity in most general purpose programming languages, how | modern DevOps is heavy on DSLs that are executable architecture | designs, and how there's both a lot of progress to be made, and a | lot of noteworthy, active attempts. | | The author cites John Hughes (of Haskell, QuickCheck fame) for | saying that structured programming lets you design programs in | modular ways, and modules allow for speedy development and re- | use, and that function composition is the best kind of glue for | making modules. | | The author then links to an article [1] (Mary Shaw, 1994) which | invents a word, _Connectors_ , claims that this is great, and so | _Architecture Oriented Programming_ is great. It feels like the | middle 80% part of the article that defines and connects (sic) | these concepts is completely missing. Maybe I 'm supposed to read | the Mary Shaw article. He could have saved everyone a lot of time | by just saying "Hey, I found this pretty great article. Also, I'm | making a programming language that is better than yours." | | [1]: | https://resources.sei.cmu.edu/asset_files/TechnicalReport/19... | | > it turns out that [...] lazy evaluation is essentially unused, | [...] So that means the number of kinds of glue that FP provides | is...one. | | Demagoguery. Since we can apparently just make up numbers: | | FP actually provides -1 kinds of glue, making it a product of | Satan and so entirely a cause of the coming apocalypse. | epgui wrote: | I don't really understand the author's point. It seems like the | author is making a judgment based on the "number of benefits" | provided, without considering the magnitude of the benefits. | | There is perhaps no simpler way to compose programs than with | function composition (except maybe with relations). This leads to | great clarity of thought and writing, and is not to the exclusion | of architecture. | | Avoid taking inspiration from mathematics at your own peril. | phkahler wrote: | Yeah, I never saw an answer to the headline question. Lots of | drivel about glue. My opinion on glue is that too much glue | means you've got a suboptimal data representation. But I saw no | insights even that basic. I didn't get the point. ___________________________________________________________________ (page generated 2023-03-26 23:00 UTC)