5 ms·
I think the author is saying that in order to build larger structures out of modular structures you connectors (you can think of glue as one kind). As an exampl
by bakul 4y ago
I think the author is saying that in order to build larger structures out of modular structures you connectors (you can think of glue as one kind). As an example think of the many different connectors that Lego Technic provides. Unix pipes can be considered connectors as well. So can tcp/ip connections (for the largest distributed system in the world, the Internet).
- epgui 4y agoWhat is it about functional programming that rules out unix pipes, tcp/ip connections, etc? There's no basis for those to be excluded or any more difficult in that paradigm IMO.
- bakul 4y agoI don't think the author is necessarily excluding FP as much as saying intrinsically it doesn't provide anything more than functional composition for what the author calls "architecture oriented programming". That is, while "structured programming" mainly focused on on modularity, how these components are connected (and communicate) is equally important. At least that is what I got from the article!
- epgui 4y agoWell that's kind of what I think I took from the article as well, but I'm not sure I see the sense in that. It sounds to me a bit like saying "functional programming is not that great because it doesn't make thinking and planning obsolete"... It sounds to me like a category error, or unreasonable expectations. :shrug:
- mpweiher 4y agoThe article isn't saying anything about the quality or lack of quality of functional programming (except for disputing the unfounded 10x better claim with actual data). The article is saying that irrespective of how good or bad function composition is, it is just one kind of connector ("glue"). And we need more than one. For more info on connectors, see Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status by Mary Shaw. https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=12137 https://resources.sei.cmu.edu/library/asset-view.cfm?assetid...
- magicalhippo 4y agoAre there some languages that implement connectors like in the paper?
- bakul 4y agoRecently I became aware of “FAC: A Functional APL Language” a 1986 paper by Hai-Chen Tu and Alan Perlis[1]. Unlike traditional APLs it allows you to define your own “operators” (second order functions), such as “x (F SWAP) y: y F x”, where x and y can be congruent arrays. It even allows infinite arrays, which can be evaluated lazily and provides a powerful operator on them (let’s call it “$”) such that “1 (+ $) 1” is the Fibonacci sequence! Since FAC functions are pure, in principle you can evaluate things in parallel. It occurs to me that operators can be considered connectors! [1] https://ieeexplore.ieee.org/document/1695470 https://ieeexplore.ieee.org/document/1695470
- mpweiher 4y agoThere are the Architecture Description Languages, but they only describe, so you have to do the additional work of describing the architecture, and then program it conventionally. Not very appealing and they never really took off. Unicon was one of the first projects I am aware of that tried to generate code: https://www.cs.cmu.edu/~Vit/unicon/reference-manual/Reference_Manual_1.html https://www.cs.cmu.edu/~Vit/unicon/reference-manual/Referenc... It is also the system that made me see the connection between architectural elements (connectors/components) and the elements of a programming language, the language's meta-model. ArchJava ist the only attempt so far to add a connector abstraction to an existing programming language: https://www.ics.uci.edu/~andre/informatics223s2009/aldrichchambersnotkin.pdf https://www.ics.uci.edu/~andre/informatics223s2009/aldrichch... But since "connector" is a generalisation of "procedure/function/method call", you can't really just add connectors to an existing language, you have to generalise. Which is what I am doing with Objective-S: http://objective.st http://objective.st (And no, the ObjS web-site is currently not very good at all. But it is being served by ObjS and can stand up to a HN hug of death, so at least something...)
- magicalhippo 4y ago
- CyberDildonics 4y agoIt's always going to be compatible data that really enables different transforms or systems to communicate. Sending and receiving it is a directly solvable problem.