I was blown away by Geoworks. Using a 25MHz 286 felt like a power machine. I remember printing a page with a Giant lower case e on it to see if it scaled it up to full page nicely. It printed two pages. The second just had a tiny triangle of black on it. Looking at my document I saw the end of the e had just clipped past the edge of the page.
At the time WYSIWYG was a bullet point promise that never delivered. Seeing it actually happen was amazing. That it was in a product that had the feel of "Of course it does it that way, because that's how it should be done"
I often lament that it was never an Open Source project. It got passed around companies looking to use it in some niche or other while it slowly decayed. It had enough enthusiasts that as an open project it would have developed.
Acorn delivered proper WYSIWYG that actually worked on RiscOS around the same time. Everyone else was still playing with WordPerfect. TechWriter depicted below and impression were ridiculously powerful:
So while your peers were just about getting a 386 with DOS/windows 3, you had a 32-bit ARM workstation with full anti aliased font rendering and production grade print capability.
Shame the kernel was poo and the file system so disparate to everything else or it may have taken off.
I (briefly) had to write code to run on GeoWorks GEOS. The code was written in a dialect of C with object oriented features that was compiled from .goc and .goh files to .c files in a manner similar to cfront. It was not a pleasant experience.
Edit: This was in 1997. We were writing a web browser for the Brother Geobook which was a device with late 90s PDA capabilities in the form factor of a late 90s laptop. I don't think that it was a particularly successful product.
Steve Yegge had an interesting take on what it was like to work at GeoWorks:
> OK: I went to the University of Washington and [then] I got hired by this company called Geoworks, doing assembly-language programming, and I did it for five years. To us, the Geoworkers, we wrote a whole operating system, the libraries, drivers, apps, you know: a desktop operating system in assembly. 8086 assembly! It wasn't even good assembly! We had four registers! [Plus the] si [register] if you counted, you know, if you counted 386, right? It was horrible.
> I mean, actually we kind of liked it. It was Object-Oriented Assembly. It's amazing what you can talk yourself into liking, which is the real irony of all this. And to us, C++ was the ultimate in Roman decadence. I mean, it was equivalent to going and vomiting so you could eat more. They had IF! We had jump CX zero! Right? They had "Objects". Well we did too, but I mean they had syntax for it, right? I mean it was all just such weeniness. And we knew that we could outperform any compiler out there because at the time, we could!
> So what happened? Well, they went bankrupt. Why? Now I'm probably disagreeing – I know for a fact that I'm disagreeing with every Geoworker out there. I'm the only one that holds this belief. But it's because we wrote fifteen million lines of 8086 assembly language. We had really good tools, world class tools: trust me, you need 'em. But at some point, man...
> The problem is, picture an ant walking across your garage floor, trying to make a straight line of it. It ain't gonna make a straight line. And you know this because you have perspective. You can see the ant walking around, going hee hee hee, look at him locally optimize for that rock, and now he's going off this way, right?
> This is what we were, when we were writing this giant assembly-language system. Because what happened was, Microsoft eventually released a platform for mobile devices that was much faster than ours. OK? And I started going in with my debugger, going, what? What is up with this? This rendering is just really slow, it's like sluggish, you know. And I went in and found out that some title bar was getting rendered 140 times every time you refreshed the screen. It wasn't just the title bar. Everything was getting called multiple times.
> Because we couldn't see how the system worked anymore!
I was all ready to complain about this quote. Specifically, it seems somewhat silly. MS didn't win by having a better operating system. They "won" by having products people were buying. A revenue stream is a valuable thing.
That said, I encourage everyone to fully read the section that is pulled from. The whole article, actually. Very nice talk and I think it contains some very insightful points. In particular, the idea to keep the system small and the rest will fall out of that.
> I mean, actually we kind of liked it. It was Object-Oriented Assembly. It's amazing what you can talk yourself into liking, which is the real irony of all this. And to us, C++ was the ultimate in Roman decadence. I mean, it was equivalent to going and vomiting so you could eat more. They had IF! We had jump CX zero! Right? They had "Objects". Well we did too, but I mean they had syntax for it, right? I mean it was all just such weeniness. And we knew that we could outperform any compiler out there because at the time, we could!
Assembly has if. It has JL, JLE, JG, JGE. Sure you had to calculate the compound statement yourself, and do a CMP BX, 0
And this is way more registers than the Z80 load store machine had. Coming from that it was awesome.
I loved Geoworks. It did things on my 386 that Windows 3.1 had no hope of doing ever (like loading and working). Also, the banner program wasn't just useful with dot-matrix printers. I had an inkjet and remember many birthdays printing out banners for my family (we used Scotch tape to put them together). Good times.
Inkjets printed pages have to dry or the ink will smudge, so printers (at least those of that era) have a mechanism that holds the page for a few seconds before dropping it on the stack of completed pages.
There's a million ways you could make it work but the default way will lead to a big mess so the printers don't allow you to use continuous paper feed. It's kind of a niche feature anyway.
Never really thought about it, but the banners were rare (about four a year) so it wasn't a big deal. Also, the inkjet paper was conveniently around. :)
Back in those days, Windows had an absolute lock on the industry for several reasons:
1: it was the incumbent
2: there were no hardware drivers for any other operating system
3: there was software for Microsoft operating systems, and no useful software for any other OS
4: Microsoft has legal contracts with the hardware manufacturers which required that a icense fee be paid regardless of whether or not Windows shipped with each machine.
5: probably more reasons
As an outcome of the above it turned out to be impossible for any other OS to get a foothold on the PC. It's hgard for people to understand now, but there was still an opening for some other OS to get a foothold.
In the end, another OS turned up and started making major headway on the PC. It succeeded against Windows in the way that such battles tend to be played out - by playing to a different set of rules. That OS of course was Linux and its rules were to be free, to have a collaborative development model, to be server focused, and to have the fortunate timing of being at the start of the era of connected computing. I remember being startled that I could get a free operating system by buying an issue of a computer magazine at the newsagent with a CDROM on the front containing Linux.
Eventually the seemingly impossible happened and an OS came along that beat Microsoft on the desktop, or at least competed effectively with Microsoft Windows - and that of course was OSX. And OSX against succeeded by playing to its own rules. No need for hardware drivers for every device under the sun because they it only ran on Apple hardware. It had applications from the Macintosh user base (and Microsoft), and turned out to be a really nicely integrated and functional OS (IMO).
Its a pity GEOS didn't make headway, at the time I really wanted SOMETHING, ANYTHING to give Microsoft effective competition because it looked back then like it was going to be 1,000 years of Microsoft in first place with no second, third or fourth place runners up.
BeOS also gets points for having a try at competing with Microsoft.
Back in those days, mostly nobody cared about driver support. In Windows 3.1, there were three classes of things that you could even install driver for: graphics cards (if you wanted more than 640x480, which most people didn't care about), printers (windows had ~70 different drivers, on the other hand most printers were compatible with some defacto standard) and other devices which effectively were sound cards.
Both windows and geos mostly relied on DOS and BIOS for things like filesystem and block device access, so for scsi disks, zip drives and similar you either needed DOS driver or just correct BIOS ROM module on the card.
This only changed with Windows 95, which still could use DOS drivers, but reliability and performance suffered in that case. Native 32bit windows drivers were built on top of Plug and Play model, which has the unfortunate feature that given device is either recognized by windows automatically or needs specific driver for that specific device (surprising amount of these "drivers" are plain text files that just map the device id onto some standard windows driver).
While I agree with you, saying that nobody cared for driver support because it was provided by DOS leaves out some people: other OS vendors :)
Microsoft sidestepped the issue at first by building Windows on top of DOS but even they had to tackle it head on for Windows 95, as you say. Everyone else, though, was basically doomed to be locked out of the market because of this issue.
I'm still struggling to think of what drivers would actually count here, depending on what time period we're talking about. Early 80s? Late 80s (Win3)?. INT 21h file services?
It was the era when DOS games didn't use "video drivers", they all wrote directly to the VGA registers. Similarly for sound cards: you could buy a Soundblaster or (if you were rich enough) a Gravis Ultrasound, and other manufacturers cloned the hardware API directly. Games later tended to come with "DOS4GW", which was effectively a 32-bit operating system that could load from and return to DOS.
Essentially all 86/286 PC OSes have some level of compatibility with MS-DOS drivers (either because they are compatible reimplementations of DOS or CP/M derivates with some level of DOS compatibility).
Also for many hardware devices in DOS days there simply were no "drivers", but each program that wanted to use given piece of hardware had to communicate with said device directly.
DOS itself provided interface for block devices (with weird extension mechanism for things like ATAPI), semi-documented API for installable filesystems (meant for network drives, but also useful for ISO 9660), mostly unused abstraction for some character devices and print spooler which included exactly one printer driver (for some IBM printer that most people didn't even ever see).
The 32b windows VxD/WDM PnP model seems like perfect (and probably unintentional) marketing for MS, because it exposes the fact that there are drivers and that said drivers are not available for OS XYZ to the users, while it can be perfectly the case that there are no third party drivers for given device for OS XYZ because they are not needed (either OS XYZ already contains drivers for such device or the device simply implements some standard interface).
That is true, but GEOS predates these times by quite a lot of time. IIRC the last Geoworks-branded release was few months before release of Windows 95.
Office. The parts of Office basically killed off everything that competed with it. Office helped sell Windows and vice versa. Anyone who tried to compete had to do something radical and only Apple had radical (once Steve returned) since they had their own hardware. Competing with Microsoft back then is something I had a lot of experience of, and the failures to prove it.
GeoWorks was pretty cool on the 386 but GEOS on the Commodore 64 was just unreal -- it was slow and required some tedious disk swapping but even the idea of selectable, proportional fonts at different font sizes among its many other features was amazing on a 1MHz CPU, 64k RAM system.
I picked up my first C64 at a garage sale in the late 90s, and one of the disks it came with was GEOS. It really surprised me when it loaded and I realized what I was looking at.
The Game Boy has a Z80-like processor, though. Generally, Z80 instructions take more clock cycles to execute than 6502 instructions, so the clock speeds are not directly comparable.
I remember running geoworks on an 8086 with 1MB of ram. ran reasonably well and came with the proto AOL (for some reason I thought it came with a Quantum Link client that looked like an AOL client, but according to wikipedia Quantum Link was already renamed to AOL at this time).
It was a pretty amazing piece of code that made that 8086 very usable for a few more years.
It was a panasonic of some sort. Don't remember the details that clearly. Remember the turbo button, and I remember being upset that Wolfenstein 3D required a 286 and wouldn't run on it. I'm also positive it came with more than 640k of ram, as would go through the tricks to load things in the upper portion to have more "normal" ram for games and the like.
I’m surprised that it came with a turbo button; those were a hack to downclock the bus to a lower speed to get old software that had assumed a specific clock speed to work correctly. Would be unusual on an 8086.
Some of them just enabled/disabled the cache to achieve slowdown; the 7-segment display on the front of the case was all a ruse! A set of jumpers controlled what value to show depending on the state of the switch.
I used GEOS often on my C64 as a child. It was my first experience with a graphical desktop interface and seamlessly segued into the Amiga, for me.
I recall the paint program, with its textured fills, and all the simple bitmap tools everyone is familiar with today in MS Paint. The word processing app, really more like desktop publishing. The general file management and window system...
It seems all rather forward thinking for 1986. It seems like the concepts for most of our software tends to be around for long before we have the technology to do it properly. All the pre-internet machines I had later just did what my Commodore 64 and GEOS did, but faster and with more colors.
I used GeoWorks for serious work in 1994, because the place I was working was too stingy to spring for a Windows 3.1 licence. Fabulously easy to use, and crashed at the drop of a hat losing all unsaved work ... frickin' Win3.1 WordPad would have been superior, certainly in stability at least ...
On the other hand, in the same era (~1993) you could have had what was effectively Mac OS X (NEXTSTEP) which ran on x86 clones at that time (though with a fairly narrow set of supported hardware). Absolutely blew away anything offered by Microsoft, Apple, or IBM at that time.
You could also have had an Amiga which AIUI blew away NeXTSTEP as far as price/performance?
Not really speaking from a position of expertise on the matter, since I've only ever seen (and never used) a Video Toaster and the only NeXT machine I've ever used is the one in the computer museum in Google's NYC office.
amiga was no longer particularly cutting edge by the time VGA and 386s became common in the 90s, its advantage was astonishing mostly during the 80s and very early 90s (8088-286 era).
> That computer wasn’t super-fast—what, with its 40-megabyte hard drive and one megabyte of RAM—and, as a result, it really benefited from the lightweight, object-oriented approach of GeoWorks.
…am I the only one that made a double-take at this? I don't associate OOP with being lightweight. It's either oxymoronic or irrelevant.
Object-oriented in those days referred also to other things than programmming. How do you cut-and-paste? You select, then cut. You work with the selection as an object, that you can cut, delete, make bold, move. This is "obvious" today, but actually not. Some programs then worked such as you execute the command ("cut"), then enter select mode, and confirm to cut. Kind of like vi.
Another example:Drag a file to trashcan was object oriented.
I remember reading about (or at least seeing cool looking ads) for GeoWorks, DESQview (and DESQview/X!), and GEM in magazines like Byte in the early 90s. I was always sad that I never got to try out any of them on my machine.
I used them all. They all lost to windows because of "Developers Developers Developers". i.e. no one really wrote apps for them (besides AOL for Geoworks).
Desqview was neat it allowed you to multitask dos apps, but dos 5 basically included same functionality in a more restricted forms (basically how MSFT did to all of Quarterdeck's stuff). Desqview/X was nice if you were in an unix environment, but vast majority of users were not.
GEM was along the same lines as geoworks, but recall it being less usefull.
At the time WYSIWYG was a bullet point promise that never delivered. Seeing it actually happen was amazing. That it was in a product that had the feel of "Of course it does it that way, because that's how it should be done"
I often lament that it was never an Open Source project. It got passed around companies looking to use it in some niche or other while it slowly decayed. It had enough enthusiasts that as an open project it would have developed.