You see this shit SO much more often than you would think. And the infuriating thing is, it seems to be most common among programs that are INCREDIBLY complex and sophisticated.

It’ll be like this:

“What does my program do? Glad you asked. It simulates stress patterns in glass and ceramics, after they come out of a kiln. You can specify any melting temperature, adjust the composition of elements in the glass, and the ambient temperature of the cooling and tempering stages.”

“Wow, can you show me how it works?”

“Sure! <opens a command line and starts typing commands>”

“O-oh. Do you have any plans to add a graphical user interface?”

“HAHAHAHAHHA, no. That’s never happening. And here I thought you were serious about using advanced software, and being an intelligent person.”

Obviously, that last part is just kinda implied. But sometimes, when users request a GUI, the goddamn developer will kinda get in their face, like that.

They always fall back on the position of “well, I developed this shit for free, for your ungrateful ass. So you can build your own fucking GUI.”

But the thing about that is…no. And fuck you. I shouldn’t have to be two-thirds of a fucking developer, in order to use the fucking software.

If you can figure out how to simulate molecules, or draw 3D stereograms, or translate hieroglyphics, or any other RIDICULOUSLY COMPLICATED SHIT, making a graphical user interface should be nothing to you. You should be able to do it in a fucking afternoon.

IT DEFINITELY SHOULD BE THE EASY PART, FOR YOU.

All the rest of us, who aren’t programmers? We envy programmers, and their ability to really connect with computers, on that deep logic level.

If we could do that shit, we would. But a lot of us have tried, and we realize it’s not a good use of our time. We can do cool stuff with software, but it’s just not ever going to be worthwhile for us to struggle through the act of creating software.

Also, I hasten to add that I have put in my time, using command line interfaces. I used DOS, I used BBS systems, I have used modern command-line-only programs. I know how to do it, but I DON’T WANT TO.

I don’t want to have to memorize commands. I don’t consider a GUI workflow to be some kind of weird luxury. It has been a basic part of modern software, for around 40 years at this point. Literally get with the program, guys.

If you’re serious about making software, get your shit together and implement a fucking GUI from the very first release. Nobody ought to be taking you seriously, if you refuse.

  • Chill Dude 69OP
    link
    fedilink
    -19 months ago

    You make good points. Also, people have informed me of just how much things have changed, since the Visual Basic days.

    One question, though: why are things so different in the game development space, versus productivity or specilized-use-case software?

    Game developers use game engines to develop graphical environments VERY QUICKLY. There are game jam contests that involve people creating graphical applications in literal hours. Also, every tutorial and course for game development involves drawing characters and interactable elements on the screen, in the second hour of study.

    Why can this not be done for non-game software? Are engines frowned upon, outside of the gamedev space? For that matter, why not use actual game engines, like Unity (or Godot, as a free alternative) to easily establish GUIs for non-game software, instead of reinventing the GUI wheel, from scratch?

    I realize these may be naïve questions, but I’m asking sincerely.

    • Badabinski
      link
      fedilink
      39 months ago

      Game devs specialize in writing code that gets displayed on a GUI. They also have to learn how to do scripting and some decision tree stuff for AI, but from day 1, they’re writing for a GUI. Plus, game engines contain a tremendous amount of code that makes it very fast to make GUI. That game engine is huge and complicated and you have to spend a bunch of timing learning how the hell it all works. Software devs outside of the games industry haven’t done that, and it would increase the size of a small and simple script from 200 lines of code and a few kilobytes to thousands of lines of code and multiple megabytes or gigabytes.

      • Chill Dude 69OP
        link
        fedilink
        -19 months ago

        You make a lot of good points, but here’s one thing you need to understand, about the difference between users and developers. Especially in 2024.

        multiple megabytes or gigabytes

        Yeah. Thaaaaat’s fine. The program can be 10 gigabytes. Or 100. That’s normal. If the thing does what I need it to do, I don’t give a shit. I realize that non-game developers want their whole app to still be able to fit on a 3.5" floppy disk, but from where I’m sitting, that’s just a learned preference that can be traded off, in favor of modern solutions that are massively easier to implement than reinventing the GUI wheel, every time you make an app.

        People have so many terabytes of space, now. Keeping specialized productivity apps tiny is just a weird flex, at this point.

        • @[email protected]
          link
          fedilink
          29 months ago

          I feel that’s more of an unpopular opinion than the original post. I absolutely care about the size of a program, especially if there is no reason for that size.

          • Chill Dude 69OP
            link
            fedilink
            1
            edit-2
            9 months ago

            especially if there is no reason for that size

            Yeah, but we’ve established that this would be a good reason. It’s a tradeoff of size and loading time, versus modern GUI development which is being described as cripplingly onerous.

            I absolutely care about the size of a program

            But why, actually? If your answer is “I have filled my hard drive with huge games and movies,” that’s also fine. That’s a good answer. But we’re making the assumption that the large-install-footprint app in question is a useful one.

            Only install the stuff you find useful or fun. That’s my philosophy, and I don’t think it’s half bad. I’m never going to say “I find this application to be woefully lacking in utility, but it makes up for that by being really tiny.”

            That’s pretty much just going back to my original post. If I am going to be using a piece of software for productivity, I will be fine with a substantial installation and a moderate loading time. Conversely, if it’s so non-useful that I’m not even using it, why would I care about how big it’s not?

            For an actual example, look at Adobe Premiere. It’s got an 8 gig install size and takes about 15 seconds to load into memory. For people who think in backend terms, I realize that’s, like, upsetting. But, again, I’m a user. I installed the application once, literally years ago, and it auto-updates. I run it once or twice a day, and leave it open for hours.

            No user is ever really spending any time fantasizing about “oooh, but what if that executable could be smaller.” As long as I can scrub through the video without it lagging, it’s all good. It’s just a matter of different priorities.

            • @[email protected]
              link
              fedilink
              19 months ago

              Fair enough there is a reason but you’re still trading ease of development for the dev with something on the side of the end user, who might not consider it a good tradeoff. I haven’t filled my hard drive with games and movies, I’ve filled it with programs that bundle a bunch of libraries for things I may not use. A user won’t say that the program makes up for functionality by being small but they may not install it at all if it’s too big (which I’ve definitely done).

              You’re right it’s about priorities but I don’t think ignoring size and loading times is a tradeoff most people would accept.

    • etrotta
      link
      fedilink
      29 months ago

      Game engines have their own tools and languages, which can be very different from non-game software, and needless to say require a completely different skill set from your average software without a GUI.

      Most of the time, they cannot easily interoperate with the languages people use for other things. When you are building a game, you will be using the engine’s tools and language from the very start, but porting an existing software to work inside of a game engine is unrealistic, and building normal software inside of a game engine would be completely absurd for most cases, both for performance reasons and also for developer convenience.

      In theory you might be able to pack the original program on its own with no changes and just make the GUI interact with the actual program, but at that point it’s already a completely separate project from the original software - a project that the original developer likely has no interest in, assuming that the original program already fulfills their own needs.

      In other words: While it is possible to use Godot and alike to create a GUI, for most cases you would have to either do some extremely complex things to run the original program inside of the engine or (re)write the entire program from scratch inside of the engine, and odds are the engine will not have direct equivalents of third-party tools the program relies on.