A Non-Dogmatic History of the GUI
Zoxed writes "Jeremy Reimer provides an 8-page history of GUIs from the early 1930s to the present day. For example, from the conclusion: 'the truth of the story is that the GUI was developed by many different people over a long period of time. Saying that "Apple invented the GUI" or "Apple ripped off the idea from PARC" is overly simplistic, but saying that "Xerox invented the GUI" is equally so.'"
After reading this, I noticed one thing, seems like the idea has been stuck into the same idea this whole time, a simple 2d screen. Even vr googles use two 2d screens. Hopefully this will change more as the development of layered LCD's and other technologies start comming up. True 3d gui's are what I am waiting for now.
I know. I am a bit strange to think GUI is over-rated. And in very many cases, GUI does the best job. But CLI, text-based, is my preferred choice for a broad variety of applications. Text-based simply gets the job done quicker and more smoothly in many cases. Actually, unless I am working with something that actually requires graphics I prefer text-based..
9/11: Never forget it was a false-flag operation
How about, "Apple bought some ideas from Xerox for millions in cash and stock?"
This "Apple ripped off PARC" thing is nonsense. Just because the PARC group didn't like that their company sold the GUI rights doesn't make it a rip-off.
Bought and paid for.
Slashdot "libertarians": Small government for me, big government for those I disagree with. -1, I disagree with you
We now have a simple place to point the trolls who insist that Xerox invented the mouse, NEXT invented the dock, and so on.
It's actually worth it to RTFA, even if (as pointed out) it's not textbook-thorough...
DN
What is true is that MS helpd mov the market from IBM and mainframes and minis to micro computers. The computers were not advanced. The CLI sucked, when compared to what one could do on a mainframe. Command completion, complex pipes, etc. MS Dos and Apple DOS and ProDOS, even CP/M, were terrible inadequate. For anything but spreadsheets and writing, my micro was a dumb terminal.
And MS was gaining market share and Apple had failed to reach the public with the Apple ///. They had to do something. That something was to find the next big thing and bring it to market. Yes, Xerox did a lot of the initial work. We owe Xerox for much in technology, even beyond computers, and I think everyone knows that.
But Apple bought some of the technologies, designed a machnine, and brought it to market. And let me tell you, compared to the shit CLI before it, it was wonderful. There were still things you could not do, which previously could be done with a simple .bat or basic program, but what could be done overshadowed all of it. I was still running some stuff on remote minis using CLI.
Once Apple proved the technology, MS developed a competing technolgy over the next 5-10 years, and took over the market on commodity computers. In that time, we enjoyed a GUI honeymoon. We were in a world with computers limited by the GUI interface and binary files, and layers of technology to compensate for those limitations. MS is thriving in that enviroment, minimizing the command line, and creating random file formats. Just like they were doing in the early 80's.
And now, just like back then, Apple is in trouble. So one again it looked outside itself to find the solution, in the form of BSD. In creates a hybrid of the GUI and CLI interface so the user can choose. The big guys have always done this, just look at the old Sparc stations. They were doing 10 years ago what the Mac does now. But, once again, Apple has put it into a box that is accesible to much of the population. It is not groundbreaking, it is just that the technology has become affodable, just like 20 years ago. And in 5-10 years MS will create a similiar system that 'costs' half as much.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
But you never know how useful it might get. When the computer systems were first created, no one thought or them to be used for wordprocessing, or surfing the web or games. Same with arpnet, who would have though a couple of decades later it would be used daily by millions to read news, play games, listen to music, download movies, and waste time reading random sites. The possibilities are unlimited, we just know the potential of it yet, as technology progresses, it will come clear. (Same with USB, at the time, they didnt think it would be used so widely)
It's a nice historical piece on GUIs. It lacks lots of the drivers for things: vector graphics and math co-processors; how CPU and bus design influences graphics; multi-tasking/multi-threading and its impact on GUI design; the advent of the (awful) browser; the Unix schisms and X developments; other window managers and their designs; how the awfulness of small, low-res monitors impacted GUI design; memory mapping, bit mapping vs drawing real lines in the kinescope fashion.
Also glossed: Desqview, RHM, and other neo-GUIs. MIA: sub-PC GUIs in monochrome (Palm and Newton) and other non-traditional form factors. But overall-- good article. I guess he needs a book to do it all justice.
---- Teach Peace. It's Cheaper Than War.
- Increasing cost of change - Both users and vendors have lots invested in their current systems, in training, software, and installed base. Both have more to lose in case of failure. In the older days, if it didn't work, each box was a new platform, and you could trash that box if it failed.
- Reasonably Good - For what people expect out of computers, the current generation of GUIs are decent at providing just that. People can often learn in a few days what they need to know to use what they want out of a computer.
- Increasing difficulty for innovation - Major shifts in the way a GUI is done is going to require some strong cognative leaps (e.g. 3D UIs, if they're going to be more than a cute gimmick, will need lots of R&D before they get as straighforward, efficient, and easy to use as 2D GUIs). The next generation of user interfaces will be a significant jump forward, and until someone can make that leap, the rest of the industry will just evolve the status quo. Not a bad thing, just a normal part of a technology's evolution.
So yeah, we'll have lots of evolution until the next revolution. Looking to Tiger or Longhorn for anything more is a waste of effort.Care about electronic freedom? Consider donating to the EFF!
And little has changed. The poor foundations of the original MacOS haunted Apple until they finally had to throw out MacOS and start over again with OS X. And what do they do? They base it on NeXT and Objective-C, a system that was pretty nice in the 1980's, but that has never been technologically cutting edge and is pretty much obsolete today as far as software technologies go.
Now Objective-C I'll grant is a bit of a mixed bag - primarily because of the lack of garbage collection, though autorelease pools are not too bad...
But the NeXT foundation and Objective-C together are actually very pertient to the world we live in today. The very heavy message-passing style of calls actually mirror the growing populartity of message passing in large enterprise systems, such as JMS.
Objective-C is actually where the industry should have gone instead of C++. It's easier to learn and use than C++ (I've done both) and might be a little behind Java or C#, but then again it's also not really been overhauled for a while.
The rapid degree of progress Apple has managed to make in the OS and with other programs is a good demonstrator for how efficient Objective-C can be.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Anything that gets them to change the current file manager is a good thing.
Essentially, "Tabs" were little name tag like devices a user could wear, and via RF signals, other devices near the user could know when and where a user was within the environment, and change/react accordingly. Simple things like finding out where a person in an organization was, as well as turning lights on and off, was one use. More complex tasks, like phones having special ring tones and ringing that phone near the user in his ringtone, as well as computer systems the user sat down in front of becoming active with the user's last state (from the last machine he was at?) were also ideas bandied about.
Pads were essentially the same thing as today's PDAs - wireless input/output devices linked to the network via RF links, which could share information with other users. Thus, a scribble could be made and saved, or "beamed" to another user(s), perhaps in a business meeting or such.
Finally, boards were something like an "electronic whiteboard" - where a user could draw on the board (actually a large screen display with a light pen) and save the data - or beam it to other user's Pads - or recieve scribbles from others Pads...
Ultimately, the idea was a ubiquitous and pervasive, network aware computer-aided collaboration system for (mainly) office use - possibly with the goal of eliminating paper from the office. With everybody having a Tab, a Pad, and access to Boards - collaboration and meetings could become real idea brainstorm and learning sessions. All data generated during the meeting, as well as viewed during the meeting, would be electronic, so the idea was that nothing would be lost, misinterpreted, mistyped, or any number of other things that could occur...
Today, do we have any of this technology? The obvious answer is that we have all of the technology available, for a price: Tabs are simply RFID tags of a sort (and one could even add a real LCD or OLED display to have them show messages as well), Pads are today's wireless PDAs and cellphones, and Boards exist today as (albeit expensive) electronic whiteboards. All the wireless networking system exist as well, we also have IP phones and such...
Basically, we have everything available, except for an integrated software solution to tie everything together so that it operates as a cohesive whole - as well as a price point that makes it affordable for regular businesses to make them switch to it over what is currently done (standard whiteboards, flipcharts, maybe a projector and powerpoint).
I would be so grateful to have PARCs vision be the norm - the savings in time and hair pulling alone from losing information (either purposefully or accidentally) from regular whiteboards, to having it all be electronic, would be worth it...
Reason is the Path to God - Anon
Ok, so we have a history of GUIs for windowing systems. It's a shame because there is just much more GUI out there. I'd like to see more on modern GUI than highlighting the start menu, and double buffered windows. .net, MFC, the webapp, the thinclient, up to the modern day.
I want to learn about tk, QT, java GUI,
The benefit being so much more use of the word GUI!
"That man was Bill Atkinson, and he came up with region drawing code that Apple patented. It's the reason that Apple's GUI was brutally faster than any other GUI out there. What was great about it was that it not only did rectangular regions, it was able to handle arbitrarily complex regions."
But, but! We hate software patents!
Java and C# are *not* message-passing architectures. Smalltalk and Obj-C are. I can't speak for Python.
In a message-passing architecture, when a method call is made, the specifics of the method call (type, number of arguments, method name, etc.) aren't checked until at the very last second: when the receiver receives the method call at runtime. Only then is it determined which method to use. If no such method exists, and there's no alternative handler for unknown messages, the sytem will issue a runtime exception.
This ultra-dynamically-bound method-call approach is what enables magic like Interface Builder, a sheer work of beauty designed by Jean-Marie Hullot originally in Lisp and then ported to Objective-C by NeXT. I'm no fan of XCode (I think it's an absolute disaster of a bad interface), but I have yet to see Interface Builder's equal.
Message-Passing also enables Objective C's Portable Distributed Objects (PDO), the most elegant distributed objects mechanism I've ever seen. In Objective C, when a method call results in a message sent to an object which has no idea what to do with it, the message is wrapped up and resent to a special method called forward: . By overriding forward: an object can manage its own last-ditch handling of wacky incoming messages before the system croaks out with an error. Hmmm, can't seem to do that in Java or C#! Why would you want such a beast? Because in PDO, processes could issue calls on each others' objects by receiving 'proxy' objects which looked and smelled like the other processes' object, even if it was located in another country. The proxies looked and smelled the same because they implemented NO methods at all -- except for forward:! When an incoming message, it'd get rerouted to forward:, which would in turn ship it over the net to call the remote object. Neither application would need to know that one was talking to the objects of the other. A work of beauty.
No, you can't assemble something even REMOTELY as pretty in Python, Java, or C#.