codethesaur.us
codethesaur.us copied to clipboard
[Idea] Language/Concept List Picker
Description
Right now, selecting languages and concepts involves trial and error since a user can't really tell what's available and what's not available.
The Learn a Language
panel should consist of three side-by-side list picker panels, with unavailable options grayed out. When the user selects a language-from / concept / language-to in the list picker, the other pickers should automatically update so that we can quickly know what options are available
Requirements
- List picker UI element
- Dynamic UI updates
- Knowing what language-concept combinations we support
Additional Notes
This is a totally valid idea! I've even thought of it too just didn't make an issue from it. I appreciate you doing it!
I imagine an API call that determines what languages are available for a concept, or possibly it's all loaded in when the page loads and uses JS to show/gray out ones that aren't there?
@INeedAUniqueUsername but why the 3 side-by-sides and in a different order?
Choosing language and concept should work in any order. I just forgot that the website currently picks the concept first.
| FROM | CONCEPT | TO |
| Java | Classes | Java |
| C++ | Strings | C++ |
| C# | Functions | C# |
| ... | ... | ... |
Yeah, the side-by-side list pickers would show all the options that are currently (un)available. Picking something in FROM or TO would update the CONCEPT picker to gray out any concepts not supported by FROM or TO. Likewise, picking something in CONCEPT would gray out in FROM / TO any languages that don't support the concept (this might get hairy with languages that have very different implementations). This should definitely be possible with some JS.
I think the language/concept availability would be hardcoded or determined by checking for the existence of certain thesaurus files.
Oh I see what you're trying to do. Hmm, interesting. It takes up a lot more space, and then you'd have to do similar for the reference part too. There might be a way to try this, but this sounds large as it is, but as it grows it might be hard to think about.
I'll ask some UX friends I know what they think about this and if there's a way to streamline it a bit better.
I think I have a solution to get a better user experience on the compare functionality: however, I don't know if he comes to supplant the current compare functionality.
Here are the steps I suggest :
- On the home page, two
<select>
are available to select the languages to compare. - Before getting the comparison page, the system selects the implemented concepts in both languages. For example, Javascript hasn't had immutable lists, so these entries will not be shown on the comparison page.
- While on the comparison page, a toolbar will be there to select the concept to show.
What do you think about this idea?
Hmm, I kind of like that button/tab idea on the comparison page. (Similar for reference page.) I kind of don't want to get rid of structures/concepts on the home page because it can help guide them to the right page in less time. It also shows what the site is capable of from the home page too.