4 ms·
> where T is a type parameter are known as homomorphic mapped types, which means that the mapped type is a structure preserving function of T. I work in PL and
by titzer 3y ago
> where T is a type parameter are known as homomorphic mapped types, which means that the mapped type is a structure preserving function of T.
I work in PL and this type of language is pervasive. It is motivated by wanting PL terminology to be precise, meaning it always means the same thing to everyone, because there are agreed upon, robust, mathematical definitions for specific terms.
The problem is that laypeople don't know PL terminology. It's incumbent on PL people to explain using words that people understand what they are trying to say. Those words that people understand can be made clear (but maybe not robust or precise) but it takes a really excellent command of language to do so.
I have my struggles with this. I have learned (and now occasionally teach) formal PL notations--semantics, inference rules, type systems. Occasionally I review papers in research fields (like POPL). Research papers are constantly pushing the boundaries and too-often flaunt complexity as a substitute for technical difficulty or depth. I fear PL has entered a spiraling Tower-of-Babble situation where only experts can understand what is in the field. And while that's true of practically any field, PL is particularly bad because it keeps inventing at best intimidating and at worst impenetrable mathematical notations that make reading PL papers impossible for the uninitiated. (Granted that the OP was just about jargon, not notation, but the wider point is that it is rampant in PL). In systems papers, one can read the words because there are fewer jargon words and generally no new weird notations.
The language in this documentation is self-serving to PL nerds and needs to be rewritten to target normal people. Anything else is just needless elitism and wankery, IMHO.
- kristopolous 3y agoIn the service of trying to be clear and not confuse anyone they actually create things that are confusing and obtuse. Some technical people get past this stage and realize the flaw while others clutch onto it as a virtue and double down. Also, it's usually done sloppily. They'll mix in the imprecise with precise and you'll scratch your head trying to find what this particular documents special definition of a word is because you assume that they're trying to be excessively formal and must not just mean something informally when in fact they do. Other times they'll just toss something in like "observer functoid" and assume that you know what they think it must mean. It's just bad writing. In my head I just visualize a green college aged kid writing it thinking this is the big league. When you peal back the jargon curtain you invariably find it's just a couple basic ideas all dolled up strutting down an 8 1/2 x 11 catwalk in a word pageantry.
- rickstanley 3y agoWhat is PL?
- mrkeen 3y ago> I work in PL and this type of language is pervasive. It is motivated by wanting PL terminology to be precise, meaning it always means the same thing to everyone, because there are agreed upon, robust, mathematical definitions for specific terms. > The language in this documentation is self-serving to PL nerds and needs to be rewritten to target normal people. Anything else is just needless elitism and wankery, IMHO.
- tubthumper8 3y ago> The language in this documentation is self-serving to PL nerds and needs to be rewritten to target normal people. Anything else is just needless elitism and wankery, IMHO. Which documentation are you referring to, the TypeScript documentation? That's very much written for normal people without math jargon. Or are you referring to the documentation for other languages (ex. Haskell)?
- saghm 3y ago> The problem is that laypeople don't know PL terminology. It's incumbent on PL people to explain using words that people understand what they are trying to say. Those words that people understand can be made clear (but maybe not robust or precise) but it takes a really excellent command of language to do so. This is the perfect description of why "a monad is a monoid in the category of endofunctors" is such a meme-worthy statement. There's pretty much nobody who knows what a "monoid" or "endofunctor" is that needs the concept explained to them in the first place.