4 ms·
I have to say, any definition of "framework" that claims the general concept of higher-order functions is a subset of frameworks, does not seem particularly use
by johnday 5y ago
I have to say, any definition of "framework" that claims the general concept of higher-order functions is a subset of frameworks, does not seem particularly useful in the day-to-day.
In this case, `map` is given as an example of a micro-framework. While it does illustrate the author's point, I think all it does is showcase that the separation really isn't as clean as they want it to be, and it undermines rather than reinforces their philosophy.
- travisjungroth 5y agoSwap out “framework” for “inversion of control” in your head and you might find the article more useful. It’s nice seeing these options listed out.
- johnday 5y agoI agree - the author's use of "framework" here betrays the article a bit, and "inversion of control" is a much more accurate portrayal of what they're actually getting at. Of course this is a natural side-effect of what happens when terms are born without proper definitions. It's almost as if the author has defined "blue" as "any RGB colour where B>0", and then their first example is magenta. Yes, it's a nebulously defined concept (both "blue" and "framework"!), but this means that trying to impose a rigid definition on top is bound to fail.
- travisjungroth 5y agoI’d care more about the misnaming if it was frameworks versus anything else, but it’s not. It’s frameworks vs frameworks. You could call it X and say all the code examples are members of X and I’d find the article just as valuable. I think this is Grade A software engineering content. Here’s a thing you do sometimes, here’s seven other ways to do it with names, code examples, trade offs and real world examples. It’s great for learning because when you come across this problem in the future you have all your tools laid out for you. I also found it personally helpful because I’m visiting Python framework interface options right now. This saved me a bunch of work.
- mirekrusin 5y agoStill plenty missing, delegate a'la macOS/iOS, singleton/global/envs, explicit parameters/context object, multimethods a'la clojure/miltiple dispatch a'la julia, functors a'la ocaml, plugins/convention-based-autoloading, even monkey patching a'la RoR/active-stuff-style if a form of configruation/inversion of control, probably more.
- travisjungroth 5y agoDo a write up of all the missing patterns in the same style as this article! I’ll read it.
- kaycebasques 5y agoThe use of map threw me off, too. The author mentions React as an example of that pattern. Not sure why they didn't use that. Express.js comes to mind, too, as a very grokkable example. (Edit: or perhaps the author considers Express.js an example of an imperative registration API?)