Bob Myers (2019-06-23T00:13:12.000Z)
rtm at gol.com (2019-06-23T05:50:37.919Z)
The world is awash in subjectivity. We can nevertheless hope to find broad agreement on at least a transitive ranking of attributes such as readability; if we don't think we can, then we are epistemological nihilists with no criteria whatsoever on which to base our language design decisions and this mailing list would have no raison d'etre, since we would never be able to align on anything. However subjective the notion of readability, I think few would disagree that the first fragment below is more readable than the second. ``` .name ``` and ``` ({name}) => name ``` The first is also more reliable by most measures, because it removes the possibility of misspelling one of the instances of ```name``` in the second, which we would prefer not to rely entirely on type checkers or linters to pick up. Yes, to read the first does require additional knowledge, namely of the fact that the syntax ```<dot>property``` denotes a function to retrieve the value of the property by that name. But this is no more a readability problem than the fact that one must have knowledge of the English words in a sentence in order for them to be "readable". Such knowledge is often referred to by terms such as "cognitive footprint". Yes, this proposal does have a cognitive footprint. But all language features have cognitive footprints, requiring that people writing and reading code using the feature have knowledge of the feature. The issue then becomes the *size* of the cognitive footprint in relation to the benefit--an equation both sides of which involve subjectivity... Of course, I did not mean to imply that readability or reliability in and ot themselves are either necessary or sufficient for a new languge feature, There are many other aspects, as many as a dozen, which have been discussed and defined in earlier threads. Bob
rtm at gol.com (2019-06-23T05:50:19.212Z)
The world is awash in subjectivity. We can nevertheless hope to find broad agreement on at least a transitive ranking of attributes such as readability; if we don't think we can, then we are epistemological nihilists with no criteria whatsoever on which to base our language design decisions and this mailing list would have no raison d'etre, since we would never be able to align on anything. However subjective the notion of readability, I think few would disagree that the first fragment below is more readable than the second. ``` .name ``` and ``` ({name}) => name ``` The first is also more reliable by most measures, because it removes the possibility of misspelling one of the instances of ```name``` in the second, which we would prefer not to rely entirely on type checkers or linters to pick up. Yes, to read the first does require additional knowledge, namely of the fact that the syntax ```<dot>property``` denotes a function to retrieve the value of the property by that name. But this is no more a readability problem than the fact that one must have knowledge of the English worrds in a sentence in order for them to be "readable". Such knowledge is often referred to by terms such as "cognitive footprint". Yes, this proposal does have a cognitive footprint. But all language features have cognitive footprints, requiring that people writing and reading code using the feature have knowledge of the feature. The issue then becomes the *size* of the cognitive footprint in relation to the benefit--an equation both sides of which involve subjectivity... Of course, I did not mean to imply that readability or reliability in and ot themselves are either necessary or sufficient for a new languge feature, There are many other aspects, as many as a dozen, which have been discussed and defined in earlier threads. Bob
rtm at gol.com (2019-06-23T05:49:46.747Z)
The world is awash in subjectivity. We can nevertheless hope to find broad agreement on at least a transitive ranking of attributes such as readability; if we don't think we can, then we are epistemological nihilists with no criteria whatsoever on which to base our language design decisions and this mailing list would have no raison d'etre, since we would never be able to align on anything. However subjective the notion of readability, I think few would disagree that the first fragment below is more readable than the second. ``` .name ``` and ``` ({name}) => name ``` The first is also more reliable by most measures, because it removes the possibility of misspelling one of the instances of ```name``` in the second, which we would prefer not to rely entirely on type checkers or linters to pick up. Yes, to read the first does require additional knowledge, namely of the fact that the syntax ```<dot>property``` denotes a function to retrieve the value of the property by that name. But this is no more a readability problem than the fact that one must have knowledge of the English worrds in a sentence in order for them to be "readable". Such knowledge is often referred to by terms such as "cognitive footprint". Yes, this proposal does have a cognitive footprint. But all language features have cognitive footprints, requiring that people writing and reading code using the feature have knowledge of the feature. The issue then becomes the *size* of the cognitive footprint in relation to the benefit--an equation both sides of which involve subjectivity... Of course, I did not mean to imply that readability or reliability in and ot themselves are either necessary or sufficient for a new languge feature, There are many other aspects, as many as a dozen, which have been discussed and defined in earlier threads. Bob