4 ms·
My only worry with the HCI community is that they seem to over-focus on beginners and prioritizing systems that are intuitive rather than powerful. I am absolut
by tikhonj 9y ago
My only worry with the HCI community is that they seem to over-focus on beginners and prioritizing systems that are intuitive rather than powerful. I am absolutely not worried about whether they write proofs or not!
This might just be an issue of perception on my end, although it seems consistent with the HCI-conscious PL work I've seen.
Personally, I have two priorities in PL design: expressiveness and aesthetics. Both of these seem perfectly suited to a design-oriented approach. But are they a good fit with the sort of work regularly done in HCI? I genuinely don't know.
- kd0amg 9y agoHCI's methods in particular are too expensive to test the conjectures we normally offer about our designs though. A sizeable team of experienced programmers designing, building, or maintaining a significant software product can't be paid for on anyone's research budget, so everyone uses small, short-term projects written by undergrads (or maybe MS students) instead. The results may be real enough, but they won't address our actual questions. Looking in the other direction, I would like to think that even the most theory-obsessed PL people can appreciate that "intuitive" and "powerful" can both arise from clean design, but I've also been told, "your proofs are boring" as though that's a bad thing.
- munin 9y agoIt might be my cynicism, but in the PL literature I find "intuitive" to be a very low calorie word. Obviously you would describe your own system as "intuitive" what are you going to do, write a paper that says "we have a complicated and difficult to understand system S that..." "intuitive" is very subjective, I think. I know lots of PL people that think that functional programming, for example, is intuitive. After many years of study and practice, I too find functional programming intuitive, but I can remember a time when I did not, but I could still program. From this I conclude that something being "intuitive" is very subjective. Expressive power, on the other hand, I think we can put an objective definition on. My favorite take of this is Felleisen "On the Expressive Power of Programming Languages." Of course, what use is something being powerful?
- Pete_D 9y agoIt always felt to me like when people use words like "intuitiveness" or "usability", they're all pointing at slightly different things. Matt Fuller's partitioning of user-friendliness into "easy to use", "easy to learn", and "easy to use without learning"[0] feels like it might be easier to set objective criteria for. For your example, you might say functional programming tends to be easy to use, but hard to learn and hard to use without learning. (I'm not current on PL/HCI literature, so it wouldn't surprise me if they already have these concepts, just with different labels.) [0] https://www.over-yonder.net/~fullermd/rants/userfriendly/2 https://www.over-yonder.net/~fullermd/rants/userfriendly/2
- zzzcpan 9y agoI don't think you can define an objective criteria for any of these terms, since they depend on previous experience and are inherently subjective. Instead more commonly used terms to more precisely describe "intuitiveness" or "usability" are: simplicity, consistency, universality, familiarity and flexibility.
- imtringued 9y agoWho cares about power? Squeezing out 20% more expressiveness is only going to reduce that million line code base down to 833k lines. At that scale a single human simply can't keep every spooky possible action at a distance inside their head. And not every line has been written by that single human so understanding the code someone else has written is far more important. What pisses me off the most is the emphasis on reducing constant overhead at the expense of adding more linear overhead after a certain threshold has been reached and that threshold isn't very high.
- kd0amg 9y ago20% more expressiveness … reduce that million line code base down to 833k lines I'm not convinced language expressiveness can really be quantified that way. emphasis on reducing constant overhead at the expense of adding more linear overhead after a certain threshold has been reached Who exactly is emphasizing this?