[–] Morbo 0 points 3 points (+3|-0) ago 

If you have to employ a search function for a menu system, then you have failed to design a proper menu system. There are lots of programs that are switching to search systems and leaving menu systems off entirely. Microsoft is doing this in Visual Studio 2019 and the Visual Studio Code editor. I don't like it because you have to memorize what the "actions" are in order to search for them. The wording can be very specific which makes it difficult to know what actions are available if you are new to the program. A proper menu system would be a lean, well organized and structured grouping of common functions and features. You would only need to know what the top level menu items might do to find the specific functions in that grouping. For example, the Edit top level menu item would contain functions like Copy, Cut, Paste and Select All since those are all editing type functions. You wouldn't include Save or Open under the Edit top menu item because those are not editing functions. The File top menu item is better suited for Save and Open since those relate to the files rather than the content.

Menus and toolbars used to be well designed and organized. Too many amateur programmers started making up the rules as they went along and poisoned the well defined menu and toolbar concepts. Too many top level features were introduced and the whole thing became chaotic. The Microsoft Ribbon concept was a compromise solution for menus and toolbars, but it seems to be universally hated by developers who would rather make a mess of things instead of organize and simplify their features. Now that programs are more bloated than ever, search functions are taking over, but that really does defeat the point of the GUI. If I wanted to type every damned thing to make a program run, I would simply not use a GUI OS. We seem to be devolving in our interface technology. The growing use of voice commands and assistants is also making things convoluted. A voice system is just a search system that requires you to memorize what functions are implements and then to fight with the system until it understands what you want to do. It's not elegant or simple and will ultimately waste your time. A good GUI menu and toolbar system driven by a mouse will beat it any day on efficiency and logical organization.

I don't know where we're going with human-machine interfaces. I've been programming a long time and I see today's programs and OSes sliding us backwards. We're not innovating so much as rehashing the mediocre parts of programs with new paradigms. The more advanced systems become, the worse the interfaces for them are. Mobile apps are the worst. They suck at UI and UX and generally seem to be thrown together. I'm sure this has a lot to do with the pajeets who build them, but even White app developers are making shit interfaces. If you have to think about how to use an interface, well then it's a shitty interface. I want to go back to when programmers cared about UI/UX and actually made intuitive and fast user interfaces. Fuck this modern shit with buttons that don't seem like buttons, lack of labels for confusing icons and gestures that you have to experiment with to find out if they are implemented. Like I said, if you have to think about how to use an interface than that interface is bad and you should feel bad.

[–] i_scream_trucks 0 points 1 point (+1|-0) ago 

TOO....

MANY....

OPTIONS....

MUST....

FIND...

WAY...

OUT!

[–] Morbo 0 points 1 point (+1|-0) ago 

This is pretty accurate. Too many functions makes a program less useful. Programmers used to limit the features in their programs to keep the user experience as optimal as possible while still accomplishing the main purposes of the program. We've strayed from that and now live in the "too many options to find the way out" hell. If you need a search function for the functions of your program, well then maybe, just maybe you have too many functions in the first place. Many of those functions will not be used by common users so is it really important to give those features first class standing? If they are little used, move them to a sub menu or a dialog or panel that is not part of the main interface. If a user needs that function, well then the user has a motivation to learn where it is and how to use it. All common functions should be accessible and in the main interface so users can easily find and use them. Searching for functions is the lazy way to implement user interfaces. We have too many lazy programmers these days. We should not encourage the spread of lazy methods any more than we do now. Bad programmers should be left to die off. We won't miss them.

[–] JonReed [S] ago 

switching to search systems and leaving menu systems off entirely. Microsoft is doing this in Visual Studio 2019 and the Visual Studio Code editor. I don't like it because you have to memorize what the "actions" are in order to search for them

I think the search system is the most optimal thing I can think of for most things. Now there is always the scenario where you don't know/remember what the function is that you're trying to do, and the first thing that comes to my mind there is to restructure the context menus (however leave a search function there too, it can only speed things up once you do know what you're looking for). This made me think of something that I haven't seen done before; in the main menu bar if you search for a function that requires an object selected (which normally would be grayed out if you went into the menu, since the object isn't active) it should go into an "object select" mode, and allow you to select it. I think these ideas cover most, if not all, things a user would want to do.

...reading the rest of your post now...

menu system would be a lean, well organized and structured grouping of common functions and features. You would only need to know what the top level menu items might do to find the specific functions in that grouping. For example, the Edit top level menu item would contain functions like Copy, Cut, Paste and Select All since those are all editing type functions.

Right, was creating a GUI for a program I made years ago, and when I went to do the menus I realized that I was just following the structure of my program; i.e. I was taking the function names and using those to create the tree for the menu.

The Microsoft Ribbon concept was a compromise solution for menus and toolbars,

oh i hate this so much. the design isn't intuitive and nothing else uses it. no thank you..

If I wanted to type every damned thing to make a program run, I would simply not use a GUI OS.

I think my vision takes care of what you're trying to get at here. I think what's happening is we're reaching a new stage in computers, to extend your train of thought, where the command line and GUI need to each take over when appropriate. There are always things I do with the GUI, and never the command line, and visa versa. I have my ~40 button mouse set up even to have commonly used keyboard functions so that if I'm ever on the mouse I can refrain from switching to the keyboard, and it helps A LOT, i can go large periods of time without touching the keyboard since my mouse has all the common functions mapped to its keys.

speaking of all this here's a video very related to what we're talking about. it's worth watch all the way through at least once https://www.youtube.com/watch?v=AItTqnTsVjA

I don't know where we're going with human-machine interfaces. I've been programming a long time and I see today's programs and OSes sliding us backwards. We're not innovating so much as rehashing the mediocre parts of programs with new paradigm

I believe 100% this is due to people who do not care about computers, but rather just wanted a job, being in the programming field. There are sooooo many people who just do not fucking belong, and they've come in such large numbers and from so many different angles that it's nearly impossible to weed out the bad apples.

They suck at UI and UX and generally seem to be thrown together.

This rages me. I've been telling those fucking faggots at google, through their feedback function, for years to undo that stupid ass sliding menu from the left of the screen. Just so you know who started that, it was this street shitter Vic Gundotra who was working on the google plus app, and what he was doing at google forced that cancer into everything, in the same fashion that google+ got forced into youtube and other things... oh god that street shitter took a big dump at google before he went to work for huawei in china. google was never the same afterwards

I'm sure this has a lot to do with the pajeets

LMAO! I didn't even read this part of your post before I posted my last paragraph!! hahahaha!

but even White app developers are making shit interfaces.

Back to what I said about people who don't belong being in the programming field.

[–] Morbo 0 points 2 points (+2|-0) ago 

Now imagine how difficult it is to design a hardware user interface using only a few buttons and other tactile controls like rotary encoders or wheels. Since we've long abandoned using discreet switches and knobs for specific functions like volume and mode selection, physical user interfaces have become nightmares. Digital music synthesizers mid-80s through today suffer from this badly. Analog synthesizers used to have dozens of knobs and sliders dedicated to doing one thing and one thing only. Digital synths started slimming down on controls and opted for a menuing system where the various sound parameters were buried pages deep and their values were entered with either an encoder wheel, slider or worse yet up/down buttons. Programming sounds on these synthesizers is a complex and monotonous exercise in maintaining one's patience. You could easily fiddle around with knobs on analog synths and happily explore sound changes all day long, but doing this on a digital synth would lead to hair pulling and teeth gritting. Modern synths, whether analog or digital, are returning to the use of individual knobs and sliders for as many functions as possible. It's a much more pleasant and creative process than diving down five menus deep to tweak one parameter only to find that the next parameter you want to tweak is six menus down from another part of the menu tree. Frustrating.

Yeah, things are changing and interfaces are changing with them. I don't know or like where we are heading, but we can't simply hang on to the old ways and advance forward. There needs to be some revolutionary and fundamental innovation to get us out of the rut of UI/UX design. I don't think voice is the answer, but for normies and non-programmers, the voice concept seems appealing and effective. Ultimately we need to better evaluate the complexity of our programs and design towards their best use scenarios. Perhaps we have too many features and functions. Microsoft and Apple used to limit the features and functionality of their programs not to cheat out users but instead to streamline the program and keep the usability threshold at the optimal level. We don't seem to limit ourselves any longer and that has bloated programs with little used features and others that simply get lost in the sea of functions available. We need to refocus and actually optimize things to make the most of the features that are important. We also need to get rid of pajeets and other should-not-be-programmers-ever dumbasses as they are not helping the situation at all. I don't think we can really do that effectively at this point, but we do need to at least try before it's too late.

Until things take a turn for the innovative and brilliant, I will continue to use my long time knowledge and experience to make the programs I build intuitive and efficient. I don't write for the outside world, but for the internal users I write for, well let's just say I haven't had to write any help documents, user guides or other user level explanations of how to use the software. I learned years ago to write code in such a way that users can see the logical flow of the system and also to write code that doesn't require me to trap for errors every step of the way. If you guide the user through your interface in such a way that they cannot get into trouble or click the wrong buttons, then you don't have to write defensive code to catch their stray and errant actions and inputs. Keep them away from the dangers and you won't have to write error handling code everywhere. These combined techniques have made my systems and programs mostly maintenance free and with good user experiences to boot. It has enabled me to avoid building search systems for functions and keep search solely for content and data purposes. I'm a dying breed now. My replacements will not be able to do these things. The future is going to suck more than 2020 has so far. Yay.

[–] AltUserMe 0 points 1 point (+1|-0) ago 

Main reason I can think of is it adds even more bloat to an already bloated ecosystem. A program doesn't need to be able to do 10 different things. And if it does 10 different things I should be able to navigate 10 things without a search bar.

[–] JonReed [S] ago 

See other comments for my thoughts

[–] libman ago 

The ideal way to design a program interface varies with the user's IQ level, prior experience, willingness to invest in a learning curve, etc.

Since programmers enjoy making their own text editors, there are hundreds of text editor choices, including Vim, Emacs, Kakoune, VS Code etc. But no one wants to create and maintain a competitive alternative to LibreOffice or PhotoShop that only appeals to a small fraction of users...

[–] hedidnothingwrong 0 points 1 point (+1|-0) ago 

Only when I had to use windows did I start to hate user interfaces. Like you said there are many tunable powerfull softwares that are amazing on linux, but then you have to use windows/MS visual studio and you want to kill yourself. How long did it take windows to have a functional dark mode? Well I can't say because it's still not functionning properly. The user interface is a nightmare, the search function doesn't work properly, from one update to another things will have moved, there are tons of missing features, etc...

I hope that someday people will ditch windows altogether.

[–] DukeofAnarchy ago 

The only reason you would need a search function is if the menus are horribly ill-designed.

[–] JonReed [S] ago 

Or if there are many options or you're new to the program.

[–] GenderPronoun ago 

They had something like this on Ubuntu Linux a few years back but they abandoned the Unity platform and went to Gnome 3 and now it all sucks and they lost such functions as far as I know.

[–] JonReed [S] ago 

yeah i guess one could build something like that into the OS, couldn't they?