11 votes

If you could rewrite 1 element of modern computing, what would it be and why?

The question mostly says it all, but I will give one of my ideas. I would replace the concept of a holistic app and instead replace it with a loose collection of features. The point would be to allow the end user to build a GUI from elements of multiple apps. You could have buttons that perform multiple functions in multiple apps. It would allow you to streamline and remove remove annoying elements; you could lock interface elements so you don't have to relearn the interface when the devs randomly decide to change it.

42 comments

  1. [2]
    Akir
    Link
    Get rid of frickin' software patents. They are a joke, and they allow large companies to bully their way around. The fact that anyone believes the current Oracle Vs Google case has any merit is a...

    Get rid of frickin' software patents. They are a joke, and they allow large companies to bully their way around. The fact that anyone believes the current Oracle Vs Google case has any merit is a disgrace to us all.

    37 votes
    1. teaearlgraycold
      Link Parent
      Back in college a professor of mine brought up an interesting idea (I'm sure it wasn't original). He said that given how quickly the software world moves, existing intellectual property constructs...

      Back in college a professor of mine brought up an interesting idea (I'm sure it wasn't original). He said that given how quickly the software world moves, existing intellectual property constructs may make no sense in the scope of software. That includes patents and copyrights. IIRC he wanted there to be no patents and your only copyright-ish option would last 10 years at most.

      It seems like a nice idea to me.

      5 votes
  2. tindall
    Link
    I want a law requiring that any electronic product that contained an interface between two components, or an interface to the outside world, provided reasonable and freely available documentation...

    I want a law requiring that any electronic product that contained an interface between two components, or an interface to the outside world, provided reasonable and freely available documentation of how to use that interface. Imagine the possibilities for innovation if people didn't have to reverse engineer everything.

    17 votes
  3. admicos
    Link
    Remove (and forbid) any client-side scripting from HTML (or any other "remote content" formats). Makes web browsers a lot lighter and we can direct the effort needed to make JS and such work (and...

    Remove (and forbid) any client-side scripting from HTML (or any other "remote content" formats).

    Makes web browsers a lot lighter and we can direct the effort needed to make JS and such work (and be secure), into creating completely free and open cross-platform UI libraries that are easy to work with.

    If you want your content to be accessible, you either generate it server-side, or it's completely static. If you have a valid reason to need the flexible interactivity that would require client-side code, use one of the (hypothetical) cross-platform UI libraries.


    (as a bonus)

    Operating systems or other frameworks must be built with openness in mind. Someone interested should be able to inspect (and modify) not just the base, but any program built on top of it to work as they wish.

    15 votes
  4. [9]
    joplin
    Link
    This has been tried. It was called CORBA, or more specifically, OpenDoc. It was an interesting idea, but I question whether users want to build GUIs at all.

    I would replace the concept of a holistic app and instead replace it with a loose collection of features. The point would be to allow the end user to build a GUI from elements of multiple apps.

    This has been tried. It was called CORBA, or more specifically, OpenDoc. It was an interesting idea, but I question whether users want to build GUIs at all.

    11 votes
    1. [2]
      vakieh
      Link Parent
      It's even been tried in the devspace with microservices. Bottom line: it's usually a pain in the arse and not worth it in the slightest, except when scale makes it worth it. For the bottom line...

      It's even been tried in the devspace with microservices. Bottom line: it's usually a pain in the arse and not worth it in the slightest, except when scale makes it worth it.

      For the bottom line for consumers, the people paying the development bills don't want you to have that UI control, even if it was effortless to provide it.

      8 votes
      1. ShroudedMouse
        Link Parent
        Another example within devspace might be visual programming languages or the intent system in Android. Arguably Apple and Google are developing this idea with their voice-interfaces.

        Another example within devspace might be visual programming languages or the intent system in Android. Arguably Apple and Google are developing this idea with their voice-interfaces.

    2. [2]
      Arshan
      Link Parent
      I was vaguely aware of CORBA, but not OpenDoc. Neither are quite what I had in mind with the difference being the target user. I am not interested in the "average user" or devs, but the skilled,...

      I was vaguely aware of CORBA, but not OpenDoc. Neither are quite what I had in mind with the difference being the target user. I am not interested in the "average user" or devs, but the skilled, but less technical, professional. Think video editors, lawyers, accountants, people who likely have a fairly static, but complex workflow. I do understand real-world implementations would be real difficult, but this is my fantasy world :D.

      5 votes
      1. joplin
        Link Parent
        Well I say go for it if you have a good idea. Learn from what failed for these other projects and show us how to make it work! I do a lot of work with video editors and they range from wanting...

        Well I say go for it if you have a good idea. Learn from what failed for these other projects and show us how to make it work! I do a lot of work with video editors and they range from wanting everything to be as simple as possible to being willing to write code to get exactly what they need. So it's possible there's a niche in there for an idea like this.

        1 vote
    3. [2]
      novov
      Link Parent
      Such an invention would also be a nightmare to develop for, at least compared to current paradigms, as you'd constantly have to account for all sorts of unknown unknowns. The current model of an...

      Such an invention would also be a nightmare to develop for, at least compared to current paradigms, as you'd constantly have to account for all sorts of unknown unknowns. The current model of an "app" creates a silo that the developer has knowledge and relatively complete control over.

      2 votes
      1. tindall
        Link Parent
        You'd also be developing something much smaller, though. A small component, as general as you wanted.

        You'd also be developing something much smaller, though. A small component, as general as you wanted.

    4. [2]
      moocow1452
      Link Parent
      Seems more like Labview or App Inventor is the better realized version of the make a GUI do a thing version of programming. Maybe Godot as well, but I don't have first hand experience with that one.

      Seems more like Labview or App Inventor is the better realized version of the make a GUI do a thing version of programming. Maybe Godot as well, but I don't have first hand experience with that one.

      1. tindall
        Link Parent
        Godot isn't really this. A successful system of this kind requires massive buy-in from software vendors, which isn't possible when most of them exist primarily to promote lock-in.

        Godot isn't really this. A successful system of this kind requires massive buy-in from software vendors, which isn't possible when most of them exist primarily to promote lock-in.

        1 vote
  5. [4]
    Kremor
    Link
    Tangentially related but I wish e-ink monitors were a thing.

    Tangentially related but I wish e-ink monitors were a thing.

    9 votes
    1. [2]
      cfabbro
      (edited )
      Link Parent
      I went looking for these a short while ago, and it turns out there actually are a few on the market. They're just pretty pricey for their size. E.g. DASUNG 13.3" E-ink Monitor - $999 Onyx Boox Max...

      I went looking for these a short while ago, and it turns out there actually are a few on the market. They're just pretty pricey for their size. E.g.

      DASUNG 13.3" E-ink Monitor - $999

      Onyx Boox Max 3 - $860, 13.3" too, and while it's mostly meant to work as a tablet/e-reader, it also has a "secondary monitor" screen mirroring mode.

      And there are also some new oversized panels from Eink, though they are mostly meant for signage:
      EPS2-C07 (32inch) - $3,000
      EPS2-C06 (42inch) - $4,000

      But give it a few more years and we may start seeing some more affordable and better options for use as computer monitors. As @Tardigrade mentioned, the refresh rate is an issue, though the DASUNG's refresh rate is actually not bad, all things considered... so I imagine even that will improve with time as well.

      3 votes
      1. Tardigrade
        Link Parent
        I guess I'm a little out of date. It's good there's some stuff in the market, hopefully the price improves as well as the refresh rate.

        I guess I'm a little out of date. It's good there's some stuff in the market, hopefully the price improves as well as the refresh rate.

        1 vote
    2. Tardigrade
      Link Parent
      There's hacky ways of doing it but I'm sure you know that and it always boils down to not a good enough refresh rate. It's a shame.

      There's hacky ways of doing it but I'm sure you know that and it always boils down to not a good enough refresh rate. It's a shame.

      2 votes
  6. entangledamplitude
    Link
    Lol, I just gave a presentation on my perspective on this a few days ago. I think the desktop/apps/files metaphor sucks, because it doesn’t help us organize computer usage in terms of what we’d...

    Lol, I just gave a presentation on my perspective on this a few days ago.

    I think the desktop/apps/files metaphor sucks, because it doesn’t help us organize computer usage in terms of what we’d like to accomplish. We’re forced to think in terms of somewhat arbitrary primitives/interfaces. Most computer usage is actually CRUD data wrangling (and not really “computing” as in transformations) In a similar spirit to what you suggest, I wish that computing interfaces made manifest that everything from a file through a file system, a hit repository, the web, etc is “just” a database and gave a sort of uniform content & metadata search / tags-based access. I think it would definitely simplify computing if we could think of everything as “content” (backed by a database) + “views”.

    7 votes
  7. [9]
    Pistos
    Link
    I would make GUI toolkits across all major OSes make it impossible to steal keystroke and mouse click focus. That would mean any new UI elements (in particular, modals, tooltips, toasts,...

    I would make GUI toolkits across all major OSes make it impossible to steal keystroke and mouse click focus. That would mean any new UI elements (in particular, modals, tooltips, toasts, notifications) brought on screen without explicit user action should never receive keyboard focus, and they should never appear underneath or even near the current mouse cursor location.

    The main point of doing this is to prevent the infuriating user experiences of (a) typing and having your keystrokes go somewhere (app, tab, window) you do not intend, and (b) being about to click something, but something else pops up under the mouse cursor and receives the click.

    Any new UI element should come up non-modal (i.e. receive no keystrokes or clicks), unless it is obvious that the user explicitly intended to bring it up, such as when launching an app. If trying to get the user's attention, use things like systray or taskbar blinking or animations, or coloured dots or badges (e.g. number of unread messages).

    3 votes
    1. [7]
      tindall
      Link Parent
      This is not a good idea. While these things are commonly misused, Wayland used to not have this ability, and it broke a lot of useful paradigms. For instance: I bind my app launcher to my META...

      This is not a good idea. While these things are commonly misused, Wayland used to not have this ability, and it broke a lot of useful paradigms. For instance: I bind my app launcher to my META key. I do not want to tap META and then click into my launcher; if I'm touching my mouse, I may as well just click Activities and click the application I want to launch.

      8 votes
      1. [6]
        Pistos
        Link Parent
        I'm not really following. If you tap a key with the explicit intention of bringing something up, then it doesn't meet the criteria I outlined; i.e. it would not prevent the UI widget from either...

        I'm not really following. If you tap a key with the explicit intention of bringing something up, then it doesn't meet the criteria I outlined; i.e. it would not prevent the UI widget from either appearing or having input focus. Or perhaps I'm not accurately grasping the use case you're describing.

        1. [5]
          tindall
          Link Parent
          I might misunderstand what you're saying, but, the main way to do this technically is to have the display server itself be responsible for setting focus based on mouse/keyboard events, and that...

          I might misunderstand what you're saying, but, the main way to do this technically is to have the display server itself be responsible for setting focus based on mouse/keyboard events, and that kind of precludes a program specifying "when the user presses this button, open a new window and switch focus there".

          2 votes
          1. [4]
            Pistos
            Link Parent
            My main point is that the input target should only change when the user has taken an explicit action to cause that to happen. Some examples: A current window is open, user taps/clicks an app icon,...

            My main point is that the input target should only change when the user has taken an explicit action to cause that to happen. Some examples:

            • A current window is open, user taps/clicks an app icon, new app launches and presents its new window to receive input (keystrokes, clicks). This is an acceptable case.
            • A current window is open, user is typing into a text field. A different background app receives some event (say, a pushed notification payload via network), and this background app brings up a modal window, which steals the keyboard focus, and causes the user's keystrokes to target the modal window. For example, pressing spacebar (as you would when typing a multi-word sentence) would cause the default selected UI element (say, an OK button) to be unintentionally pressed. This is an unacceptable case.
              • The acceptable way for that background app to operate is to receive the network payload, and then do something like bounce its systray icon, or add a red badge to its icon, or flash a[n existing] taskbar item. Then the UX should be that the user must take explicit action (e.g. click on the systray icon) to bring the background app into the foreground to see what the app is trying to get their attention for.

            Are you saying you know of a counterexample where it's okay to become the new input target without user action causing that to happen?

            1 vote
            1. [3]
              tindall
              Link Parent
              Ah, I see. I was just saying that I think this is essentially impossible to implement as an API constraint in an environment where you also want global shortcuts. If that's the case, any...

              Ah, I see. I was just saying that I think this is essentially impossible to implement as an API constraint in an environment where you also want global shortcuts. If that's the case, any application wanting to circumvent this issue can just register a lot of global shortcuts (mouse move, every key press, etc) to call an event handler that checks if it wants to steal focus. Similarly, unless you don't want to let applications resize or move their own windows, this is really difficult to accomplish.

              It would be very interesting to see what a desktop environment with all these restrictions would look like. You could do this by building a Wayland compositor that implements very few of the additional protocols for things like input stealing and focusing - that would be easier, actually, in some ways. But it would break some non-malicious applications.

              2 votes
              1. [2]
                Pistos
                Link Parent
                I agree that it's probably a tough problem to solve all cases for. There may even be a few edge cases where it should be allowed. As such, it's really more of a matter of etiquette that app...

                I agree that it's probably a tough problem to solve all cases for. There may even be a few edge cases where it should be allowed. As such, it's really more of a matter of etiquette that app developers should make their apps behave. But, human greed and psychology being what they are, ithat seems really unrealistic to ask or expect.

                1 vote
                1. tindall
                  Link Parent
                  Yeah, this would be a great norm to set. It would definitely be possible in a different kind of desktop paradigm.

                  Yeah, this would be a great norm to set. It would definitely be possible in a different kind of desktop paradigm.

                  1 vote
    2. joplin
      Link Parent
      This was one of my favorite features of macOS 9 and earlier. It is so irritating, 2 decades later, to still not have this feature be part of the OS again.

      I would make GUI toolkits across all major OSes make it impossible to steal keystroke and mouse click focus. That would mean any new UI elements (in particular, modals, tooltips, toasts, notifications) brought on screen without explicit user action should never receive keyboard focus, and they should never appear underneath or even near the current mouse cursor location.

      This was one of my favorite features of macOS 9 and earlier. It is so irritating, 2 decades later, to still not have this feature be part of the OS again.

  8. [8]
    Rocket_Man
    (edited )
    Link
    I would vote that we re-write CLI's, I think they're very outdated and could benefit from being able to support more modern interactivity. Also let's re-write git, it was good but I think we...

    I would vote that we re-write CLI's, I think they're very outdated and could benefit from being able to support more modern interactivity. Also let's re-write git, it was good but I think we desperately need something to build upon how people are actually using it and move version control systems forward.

    3 votes
    1. [3]
      wycy
      Link Parent
      Rewrite CLIs how/to support what kind of interactivity?

      Rewrite CLIs how/to support what kind of interactivity?

      3 votes
      1. [2]
        Rocket_Man
        Link Parent
        I can't define the specifics as it'd be large project with a ton of discussion. But in general I'd want them to retain their text focus and overall power. However simple things like being able to...

        I can't define the specifics as it'd be large project with a ton of discussion. But in general I'd want them to retain their text focus and overall power. However simple things like being able to display images, video, and accept mouse input would be great.

        I'd also like for us to re-think how discoverability of commands usually works. I think Powershell made a small amount of progress by focusing on verb-noun commands. But often CLIs are still too difficult for even motivated people to use well. It can take years before someone becomes truly proficient and I think with the right design decisions I think usability could be increased significantly.

        2 votes
        1. Diff
          Link Parent
          Some of that exists in some form. On Linux under Xorg or the framebuffer, w3m can display images. And while mouse events AFAIK are limited to the character grid rather than the full pixel...

          Some of that exists in some form. On Linux under Xorg or the framebuffer, w3m can display images. And while mouse events AFAIK are limited to the character grid rather than the full pixel resolution of the terminal, mouse support is pretty good. Mapscii is almost entirely mouse-driven. But even though many things are possible, they're usually not pleasant to use. A richer, less hacky terminal experience would definitely be a wonderful thing to have.

    2. [4]
      tindall
      Link Parent
      Fortunately for you, people are doing this actively! Especially in the Rust community. Adoption may take a while, but it'll happen!

      Fortunately for you, people are doing this actively! Especially in the Rust community. Adoption may take a while, but it'll happen!

      2 votes
      1. [3]
        Rocket_Man
        Link Parent
        Do you have any more information on that?

        Do you have any more information on that?

        1 vote
        1. [2]
          tindall
          Link Parent
          Sure. I would check out the #100Binaries series on Twitter, which is an effort to bring attention to a lot of awesome projects, mostly CLIs, that are really modern, slick, and powerful.

          Sure. I would check out the #100Binaries series on Twitter, which is an effort to bring attention to a lot of awesome projects, mostly CLIs, that are really modern, slick, and powerful.

          1 vote
  9. [3]
    cardigan
    Link
    If I'm really dreaming, I would go back in time and save Lisp machines, making truly user-programmable, integrated, and extensible operating systems the norm.

    If I'm really dreaming, I would go back in time and save Lisp machines, making truly user-programmable, integrated, and extensible operating systems the norm.

    3 votes
    1. [2]
      Akir
      Link Parent
      How are Lisp Machines more user-programmable or extensible than current PCs?

      How are Lisp Machines more user-programmable or extensible than current PCs?

      1 vote
      1. tindall
        Link Parent
        If I may hazard a guess at what cardigan means, because a high-level language was used at almost all levels of the stack, a user could learn that language, as well as a few common APIs, and...

        If I may hazard a guess at what cardigan means, because a high-level language was used at almost all levels of the stack, a user could learn that language, as well as a few common APIs, and program just about anything. Currently, just as an example, it's much more difficult to program a GUI app on desktop than just pinning down the algorithms and exact behavior of the app, because OS APIs and GUI toolkits are so complex and, often, not readable by the programmer.

        5 votes
  10. thismachine
    Link
    I'd breathe life back into Palm or HP and webOS, along with Nokia's Maemo, and even Windows Phone. Apple and Google both abuse their monopolies on both mobile OSes and mobile app distribution, and...

    I'd breathe life back into Palm or HP and webOS, along with Nokia's Maemo, and even Windows Phone.

    Apple and Google both abuse their monopolies on both mobile OSes and mobile app distribution, and they could use some real competition.

    3 votes
  11. [3]
    tomf
    Link
    MacOS needs another meta key! I mapped my caps to HYPER, but I want a 'super duper' key for an extra layer that is purely my own shortcuts. And this shouldn't be limited to MacOS. Every OS would...

    MacOS needs another meta key! I mapped my caps to HYPER, but I want a 'super duper' key for an extra layer that is purely my own shortcuts.

    And this shouldn't be limited to MacOS. Every OS would benefit from it.

    2 votes
    1. [2]
      novov
      Link Parent
      Good idea. I believe some third-party keyboards provide such options using custom firmware and software.

      Good idea. I believe some third-party keyboards provide such options using custom firmware and software.

      2 votes
      1. tomf
        Link Parent
        yeah, some of those tiny ones are insane. For MacOS, we can probably do it with Karabiner by taking over the right super or using ESC. Going between MacOS and Linux (using tiling window managers...

        yeah, some of those tiny ones are insane. For MacOS, we can probably do it with Karabiner by taking over the right super or using ESC. Going between MacOS and Linux (using tiling window managers for both) always has my fingers forgetting where I am :)

        1 vote