6 ms·
> There are Many Ways to do the Same Thing This is the crux of the problem, and is a problem with many libraries, configuration systems, languages, etc. The a
by kstenerud 6y ago
> There are Many Ways to do the Same Thing
This is the crux of the problem, and is a problem with many libraries, configuration systems, languages, etc.
The author of said tool wants it to be as widely used as possible, so he optimizes for the 100%, going so far up the flexibility curve that it becomes incredibly difficult to do 80% of the things you want.
What these authors should be doing is optimizing for the 80%, which means an opinionated top layer that offers a single way to do everything that 80% of your users would want to do. Then if you're smart, you'll have a layered architecture (which the 80% layer rests upon) that allows the other 20% to learn about how the sausage is made in order to do their complex tasks.
With this, you have a common tool that is at least 80% easily understandable with minimal time investment.
Failure to do this gives you unfriendly systems like CMake, Gradle, OpenSSL, Postfix, and Java's time libraries.
U/X applies to code as well.
- Cwizard 6y agoI agree. When I was a kid I had a camera that had an 'easy mode' in software. If you turned it on, the software would disable most advanced features and the UI would be something incredibly simple. This allowed me a complete novice to get started taking pictures. After some experience I turned the setting off and started to experiment with more advanced features without getting overwhelmed. I always wondered why not more products adopted this type of UX.
- chr 6y agoAlso nice how the built-in Iphone calculator app is plain and simple in portrait mode, and rivals a scientific calculator when rotated to landscape mode.
- Tomte 6y agoThe problem is that this is only discoverable by accident in specific circumstances. I almost never hold my phone in landscape.
- vosper 6y agoApple did the same thing with undo. Such a commonly used feature, hidden behind shaking your phone? That’s not even an interaction. They’ve slightly improved it with three-finger swipe to the side, which at least is a bit like a gesture, but again completely undiscoverable. Apparently under no circumstances will we just be getting an undo button. It’s not just Apple, though: there’s a whole page of useful settings for Instagram’s Hyperlapse app. Guess how you open it? You tap the screen four times with four fingers. Why on earth did they build and maintain a settings page and then hide it like that?
- nmfisher 6y agoYou just blew my mind.
- layer8 6y agoIt should go RPN when holding the phone upside down. ;)
- tjalfi 6y agoRaymond Chen, a Microsoft blogger, has posted[0] about why Windows doesn't use an expert mode. [0] https://devblogs.microsoft.com/oldnewthing/20030728-00/?p=43043 https://devblogs.microsoft.com/oldnewthing/20030728-00/?p=43...
- Hallucinaut 6y agoThey do kinds of have an Expert mode though; all of the original menus and options that they hide behind frustratingly glib, to the point of being useless, "modern" menus, with plenty of whitespace. A recent Windows update even went so far as to proudly boast about how they were adding back menu items that had disappeared in this drive for stupidification of the menus. Hardly progress.
- szatkus 6y agoIt's an old post, they have in Windows 10. Kinda. Many sections in Settings have options for advanced settings that would take you to the old Control Panel.
- merb 6y agoit's getting less and less. well in H20 or however that is called, I had trouble to finding the dialog to join a computer to a domain.
- oblio 6y agoThat's a bit different though. They're rebuilding the airplane mid flight. The long term goal is to replace the Control Panel entirely, it's just a multi-year and possibly multi-decade effort. That's why they keep linking to the Control Panel, they're not there yet. I think they'll soon be done with the System page, for example.
- octopoc 6y ago> What these authors should be doing is optimizing for the 80%, which means an opinionated top layer that offers a single way to do everything that 80% of your users would want to do. Then if you're smart, you'll have a layered architecture (which the 80% layer rests upon) that allows the other 20% to learn about how the sausage is made in order to do their complex tasks. A good example of this approach is MSBuild + Nuke [1]. You can have as much complexity as you want in your Nuke build script (which is plain C# in a normal, debuggable C# project), but MSBuild has to exist to bootstrap the Nuke build script. [1] http://www.nuke.build/ http://www.nuke.build/
- not_knuth 6y agoI think what you are referring to is called a Turing Tarpit [0]. [0] https://en.wikipedia.org/wiki/Turing_tarpit https://en.wikipedia.org/wiki/Turing_tarpit
- vips7L 6y agoWhat's wrong with java.time.* ? I've never found it to be hard to grasp.
- cesarb 6y agoThe java.time.* are the new classes (IIRC, based on joda-time), but there are also the old time libraries in java.util.* and java.text.*. I don't know which ones the parent poster was talking about, but it might be the old ones.
- vips7L 6y agoYes I know they're "new", but the Java time API was released 7 years ago with JDK 8. I don't think its fair to be critical of something that was fixed almost a decade ago.
- charrondev 6y agoUnfortunately a lot of people don’t have access to Java 8 on the largest customer facing Java platform (android). The java.time libraries are available on android starting API level 26 https://developer.android.com/reference/java/time/package-summary https://developer.android.com/reference/java/time/package-su... That is android 11, released in September of 2020 which is not widely distributed. Does anyone know why the delay? It looks like Java 8 language features finally became compatible through some compatibility layer in Gradle 4. Was it because of the lawsuits?
- vips7L 6y agoPersonally, I don't consider Android to be Java and I am quite happy that Google is pushing Kotlin now instead.
- ohgodplsno 6y agoBasically, yes. Google has been awfully slow at implementing some Java 8+ features. Their current solution is D8 desugaring, which basically rewites all the APIs into JDK8 compatible code.
- sn41 6y ago"Simple things should be simple, complex things should be possible" - Alan Kay. Instead, in overthought out systems, complex things are simple, and simple things are possible with unnecessary effort.
- adamc 6y agoThis is a nugget of great wisdom. (I will likely get downvoted for such a useless comment... so be it.) Trying to do everything for everyone makes for very complex systems that are too abstract to be easily used.
- dlandis 6y agoI wonder though, how much is some extra complexity good for the bottom line of companies that make their money on consulting and supporting the tools that they create/maintain?