The homepage says "Democratizing Functions" and "Democratizing Metatheory". Whatever that means, I have a strong feeling that this is an abuse of the word "democraztizing"
This usage is quite common; it's the second definition on Britannica: "to make (something) available to all people : to make it possible for all people to understand (something)"
Yeah but functions are available to all people. I mean, it's an abstract mathematical concept. When you find a 30% discount sticker on an item in a store and compute in your head what the resulting price is going to be, you're arguably applying a function.
Also, to say that this makes functions available to all people, and to immediately follow that with text such as "The reduction rules act on trees of higher degree, until they are binary" suggests that well, actually, this is only for PL gurus, not all people (and that's totally fine IMO, just don't use the word "democratizing")
I get your point, but would disagree that being able to apply a function is the same as understanding functions. As with most other things in CS&math, I would argue that you only start to "really understand" functions when you get proficient with higher-order functions, which is what this is about.
I never suggested "really understand", I talked about democratization which is used here to mean "to make available to all people". To remind, I'm solely writing all this in support of the comment that "democratizing" is the wrong choice of word here.
Sidenote, you can't possibly claim that this site helps anyone understand anything about functions they didn't yet, right? I mean, it's cool, but it's not really easy to understand or anything.
Falcors point seems clear enough: the authors have a generous definition of "make available" for "understanding", they seek to teach people how to fish.
Thanks for the feedback! The target audience I had in mind was certainly developers (like me), not "all people". And the wording was indeed inspired by PL talks and blog posts I consumed over the years.
Here is a (slightly provocative) thought: We developers were promised "first class functions" with functional programming languages. And it's true, you can pass them around like any other value! Cool.
But first: What about inspecting those values? I can "look inside of" a number or string or array any day. But functions, I can only call. Huh, so an intensional view (not that anyone thinks that out loud) for all kinds of values, except functions. Yes sure, many languages do allow you do dig into functions. But it is all not the same as or as powerful as supporting it right down at the logic level! TC is also not first to do that. But IMO the most compact and practical calculus/language to do so, yet.
Second, a practical example: We had "first class functions" for decades now. But where is our main stream config language (JSON etc) that has first class support for them? Of course the answer is: Because it remains tricky. In industry I've seen all sorts of work arounds, usually involving strings that get compiled/interpreted on the fly. Which usually means some amount of scary security, and no static guarantees whatsoever. With TC, a parser/runtime for arbitrary (but pure) functions is a few dozens lines of code. And thanks to being intensional, one can imagine type checking those functions at the time of loading the config, not only when executing! Concrete demo/blog post for exactly this is in the works.
So anyways, I do belive this enables truly fundamental shifts, hence "democratizing".
Why don't you put a short version of this explanation on your main website instead of a vague "democratising functions"? What you wrote makes sense, but if all I see when I'm visiting your website is "democratizing functions/metatheory" and some contextless code examples, I'm not gonna be able to tell why I should care.
I think more in a "available as a tool not a fixture" is ment with democratizing. As in - everyone can use them, invent them, rearrange them, even abuse them.
Unlike school, were you are thought to reproduce them apply them, fire and forget them.
Yes, exactly like the ability to spend unlimited amounts of money on political advertising, campaign contributions, and "political gratuities" is available to all americans. From Elon Musk to the family sleeping under the overpass, the system is available for everyone's money.
Just because something is available, doesn't mean its democratic. Even in a democracy.
Yes, it is a fact the definition exists on Brittanica. This is a positive thing, not a normative value.
But we, together, also shape how words are used. Just because someone uses a word doesn’t mean we have to like it or accept the context. We certainly don’t have to blindly repeat it.
We all put this into practice. We choose to reinforce patterns we find useful. And ignore ones we don’t.
We don’t need to disempower ourselves by acting like we have no power over language.
As for me, I would rather democratize mean something meaningful. So when someone uses it for self-interested purposes, I try to call it out.
I’m not a stickler for no reason. It is because I care — the world is still only marginally and fleetingly democratic. I don’t want marketing speak to ooze into yet another domain. Instead, I want such efforts to cause eye-rolls and backpressure.
But, yes, I will grant the printing press “democratized” books. And the Internet “democratized” information. These kinds of societal breakthrough are worthy of the word. It also so happens that such broad empowerings mutually reinforce democracy.