3 ms·
>Great product designs require no manual, and similarly, great interfaces need no documentation. Imagine having to read a manual on how to use a coffee mug. Th
by eduction 3y ago
>Great product designs require no manual, and similarly, great interfaces need no documentation. Imagine having to read a manual on how to use a coffee mug.
This could not be more wrong.
Not everything is easy. If a library is addressing a complicated domain, solving by definition a complicated problem, it is fine if it requires some learning.
When did expertise and learning become bad things? If software is an engineering discipline, why would people in it ever promulgate the idea that any random cog can step in to any “engineer”s shoes?
Rich Hickey analogizes this mentality to the world of music, where it taken for granted that learning an instrument requires a lot of study:
“ We start with the cello. Should we make cellos that auto tune? Like, no matter where you put your finger, it's just going to play something good, play a good note.
“[Audience laughter]
“Like, you're good. We'll just fix that.
“ Should we have cellos with, like, red and green lights? Like, if you're playing the wrong note, you know, it's red. You slide around, and it's green. You're like, great! I'm good. I'm playing the right song. Right?
“ Or maybe we should have cellos that don't make any sound at all. Until you get it right, there's nothing.
“ [Audience laughter]”
https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/DesignCompositionPerformance.md https://github.com/matthiasn/talk-transcripts/blob/master/Hi...
If something can be made easier without undermining its integrity, great. Not everything can be made as easy as drinking from a cup, something most 3 year olds can handle. If you think hitting dot in your IDE and choosing among the options is as much as you should be required to learn, you are asking to use NERF toys instead of power tools. Sometimes you need to read things, welcome to adulthood.
- 88913527 3y agoOpining that "everything should be simple" is a sign of having been in the management class for too long and not being in the weeds.
- morelisp 3y agoMost people would do well to learn more than they have, but also most things could be a lot simpler than they are. Honestly, the best way to achieve the latter is probably to encourage the former. (Which will never happen as long as companies prefer to hire N interchangable people than M well-trained people, even with M ≪ N.)
- aiisjustanif 3y agoJust to note simple does not mean less complicated [1], easy is an enemy more often. [1]: https://youtu.be/LKtk3HCgTa8 https://youtu.be/LKtk3HCgTa8
- jimmaswell 3y ago> If you think hitting dot in your IDE and choosing among the options is as much as you should be required to learn, you are asking to use NERF toys instead of power tools. It depends. It's really great when that does work out. It's traditionally my first step (copilot frequently beats me to the correct use of an unfamiliar API today), second step being the documentation if that's not enough. Step 1 is almost always sufficient.
- yowlingcat 3y agoI get where Rich Hickey is coming from, but his analogy does have gaps. Not every piece of music is for a cello, and in fact, much of it is for discretized and not continuously pitched instruments such as pianos and guitars, which also take out the variable of bowing. The innovation of discrete pitch was practical -- for many songwriters, the point is to get out the song and not focus on "implementation details" -- and I think there are a lot of similarities there to software.