While playing around with the GUI on OpenVMS I was looking for CDE documentation and I found out CDE is still being developed and can be installed on modern linux. This quick post shows you how to install CDE on Debian 10 and includes a bit on compiling GENERIC TETRIS, the same program I installed on OpenVMS.
I will forever stand by my article from 14 years ago and you can put on my gravestone that I truly think CDE is one of the best graphical user interfaces ever conceived. CDE was released as open source software about nine years ago, and is still being developed.
Haha I don’t even have to click the link to know which article that is! I have quoted and linked it countless times over the past 14 years, it’s one of my favorites! Not only do you make great points, but I love the way it makes people say “…what?” XD
I first used CDE back in 2005 in college. We had to remote into a SunOS 4 server in order to use I-DEAS (a CADD software). Then again I ran into it at work circa 2009/2010 where a long running project used software only available for HP-UX workstations. The concepts in CDE are very interesting, and it is obvious a lot of thought was put into every single piece of user interaction. It is also clear that it was the designed by committee, which was it’s downfall.
To me, the major problem with CDE is the Motif toolkit. While it was extremely cohesive and innovative in the early 90s, it quickly became outdated due to its strict adherence to backward-compatibility. All you have to do is open up any screenshot of CDE over the last 2-and-a-half decades to see what I’m talking about: Absolutely nothing changed during that time. While that sounds great if you’re looking for compatibility and familiarity, the reality is that concepts and preferences never stopped evolving, and so Motif got left behind. You can come to the same conclusion simply by reading this excerpt from the CDE Wikipedia article:
It’s just crazy to think that it took them 15 years after “their last major version” to release version 2.2 as open source. At that point, it was too little, too late and the world had moved to greener pastures.
In my opinion, had Motif and CDE been released from the very beginning as free software, or something similar, it would have likely dominated. In hindsight, Motif could have been successful by following a similar path as Qt which started out as proprietary, then move to a semi-open license and finally became free software. The need for a free, pure C widget toolkit was obvious, but was filled by GTK+ instead.
I seem to remember “Motif was proprietary” as part of the original story of one of the DEs. Gnome or Xfce?
I remember using CDE when I got my hands on a Solaris box. It was an odd experience coming from GUIs with a taskbar. It grew on me later via Xfce’s CDE mode, but at the time, I felt the taskbar was the better idea. Having something like Gnome3’s overview to easily get to the minimized windows might have made CDE less clunky to work with. CDE might have had this at the time and I didn’t know about it.
Motif was very proprietary.
People love to complain about linux and gnu, but I have been told horror stories from back in the day where Unix vendors expected thousands of dollars for a buggy C compiler or the “privilege” of adding 5 accounts to the system at a time. Even the filesystem had a separate license, ugh.
While the original CDE is still maintained to some degree, most people who want the CDE look and feel are probably better off running NsCDE, which emulates CDE closely while playing more nicely with modern apps, and even slaps Motif themes with matching colors on GTK and Qt apps.
https://github.com/NsCDE/NsCDE
https://www.youtube.com/channel/UCk6d6b9koeHP3infg0R3Lrw/videos
NsCDE needs an easier and more straightforward installation – perhaps a simple PPA or COPR – or even a basic ISO. It’s far too much effort and hassle to install and set up at the moment.
At least in Arch, installing it is as simple as “yay -S nscde”. Some parts of configuring it are kind of a hassle, though.
Those build instructions are out of date. CDE has since moved from imake to autoconf, so the process is slightly different.
Updated instructions for your distribution are available here.
I was going to take issue with the title but the most recent commits are a week ago and in the last release ( earlier this year ) one of the highlights was “Preliminary risc-v support”. So “still developed and modern in 2021” is not as off-base as I thought.
And here is me, who thinks CDE is one of the worst graphical user interfaces ever conceived.
– First of all, it uses the obsolete “iconify” concept for managing windows. Which means there is no taskbar. Which means if you have a text editor and 3 maximized browser windows on top, there is no easy way to reach the text editor at the bottom of the stack other than minimizing all your browser windows or pushing all your browser windows to the bottom of the stack.
– Maximized windows can be resized. This means that the “maximized” position can be made to be smaller than the “non-maximized” position, which means you have to remember which is which.
– It has a dock, but the drawers don’t automatically close. So, you have to manually close them. Once you have seen what each drawer contains, it’s just a chore.
I mean, it’s different than anything else so it’s got that going for it, and I personally like the “chiseled” Motiff look. But I always hated using the thing (just don’t use Sun’s ugly purple-grey combination). But to me, CDE looks like someone put minimal effort on top of X and Motiff, which is probably what happened considering how IBM, Sun and HP don’t really care about UIs in their workstations in the same way SGI and NeXT did.
kurkosdr,
It’s been two decades since I’ve used it at school, Motif always looked dated to me, even back then, haha. Still, the theme isn’t that critical for me as long as it gets the job done. On that note though CDE’s launcher always felt awkward and I really like having task bars, so it’s not my favorite. Maybe it’s because I grew up with windows and I have a subjective preference for that kind of UI.
Motif has a “timeless elegance” feel, much like Windows 95 or Windows Vista do (each for its own reasons), so I like it. Compare with the Windows XP theme, Gnome 2, KDE 3 or even OS X’s brushed metal look, which all have aged not-so-well, to see what I mean.
The suckiness in CDE is the window management imposed by CDE.
kurkosdr,
What you call “timeless elegance” is very subjective and I don’t share that opinion, haha. For me, CDE’s motif appearance may be my least favorite. The adjectives I’d use to describe it are clunky, dreary, faded…again it’s all just subjective, maybe it’s just a bad color scheme, but it doesn’t “pop” like other desktops do. Ironically it should pop given the heavy use of pastel colors, but it’s so de-saturated that it looks rather gray and miserable.
https://sourceforge.net/p/cdesktopenv/screenshot/CDE-6.png
https://guidebookgallery.org/screenshots/gnome220redhat9
https://guidebookgallery.org/screenshots/macosx103
https://guidebookgallery.org/screenshots/winxppro
The MacOSX 10 desktop seems a tad too skeuomorphic to me, but honestly I still prefer it to CDE. I feel the new windows XP theme wasn’t as good as classic. To me win classic remains a high point in terms of UI. More recently the modern flattening of interfaces is worse not only in terms of appearance, but also in terms of context and visually distinguishable borders. I find many modern desktops have regressive characteristics that sacrifice clarity, which is problematic because it can be hard to find UI elements, manipulate window borders, etc, This of course was not a problem with CDE and others that used to emphasize clarity.
Going off-topic a bit, but “flat” interfaces are not designed to be ergonomic or even good-looking, they are designed to showcase high-DPI displays.
An interface like Windows Aero, with its beautiful three-dimensional UI elements, looks good even on a 1024×768 screen. On the contrary, a “flat” UI needs a high-DPI display in order to not have its sharp edges (aka where two completely flat surfaces abruptly meet) look like a blurry mess. It’s why non-square UI elements on Windows 10 look so ugly on conventional displays. There is no three-dimensional effect to hide the imperfect edges.
Basically, “flat” UIs encourage the purchase of high-DPI displays not because they look good on them (they look bad regardless and are an ergonomic train wreck), but because they look completely hideous on conventional displays. Yay progress!
Regarding Motiff, I like the chiselled shapes, but you have to pick a good colour combo. Most default themes are designed to match some corporate logo or case design and are awful.
kurkosdr,
That’s an interesting thought, I’ll have to take a closer look to see if it makes a difference for me. I agree with you on the cons though. I find it ironic that high DPI devices are being used for such low information density interfaces. UI designers are making window frames so thin as to be practically invisible and yet they waste so much resolution on empty white space. Oh well.
Speaking of resolutions, I’m surprised it’s taking so long for the industry to abandon low resolutions like 800 pixel tall displays. HD should be standard now. I mean, we’re cramming pixels into HD phones, it should be the baseline for computer laptops and projectors too.
HP 15-dy2021nr-Plus Home & Business Laptop
https://www.newegg.com/p/1TS-000D-0HZ25
“15.6 HD (1366×768)”
Such low DPI was normal in the 90s, but come on guys it’s two and half decades later…there’s no excuse for this. It’s a pain to use (and develop) many applications with so few pixels. 1000 vertical pixels should be a hard minimum for entry level devices.
@Alfman
You have different perspectives of users, manufacturers, and developers. It also depends what you want to show on the screen. I agree IHV’s should bump resolution as standard but then you have price points and the fact the factories cut panels from large sheets as well as supply different grades which helps keep everything affordable.
I don’t find low to high resolution displays a problem. You just make sure your framework is well abstracted and scalable and your template mechanism allows for targetting the end use. There’s no rule saying you cannot support fixed sized bitmaps through to SVG etcetera with corresponding different layouts. If your framework is flexible you can target it however you want even allowing for software versus GPU rendering, small size versus large size, low end CPU versus high end CPU, and different memory sizes. With the graphic furniture aspects of your framework you can chose between a 3D design or flat design. or even match the house style of different OS. It just requires work up front. It’s better you design it in at the stage because refactoring later is too much of a headche.
The reason why this is not done as standard is nobody bothers to put the work in up front or throws out one API for another and repeats the same mistakes all over again.
Now maybe you begin to understand where I was coming from with my GUI development.
HollyB,
I don’t think it would change prices all that much at scales of economy, it’s mostly a matter of changing the norms and expectations.
What resolution do you use? At low resolutions UI development starts to become a pain. We’ve faced these kinds of problems with web development between mobile and desktop for eons. But even just on the desktop I’ve seen graphics card utilities that have a height that’s higher than the minimum display resolution. The very tool that one would use to to change graphics settings has the “apply” button cut off. This fail is comedic and tragic at the same time, haha.
While you can make a point that designers should focus on supporting the lowest resolutions, a counter-point is that such low resolutions should be phased out so that we can stop compromising interfaces to support 90’s era resolutions.
Well, some things scale far better than others. 3d rendered games scale well. Images lend themselves to scaling fairly well naturally. Text and controls can become far more complicated. Trivially resizing fonts doesn’t produce good results with such a huge variance in devices. Fonts that are just about readable on small screens can become wastefully large on a large screen. Sometimes text wrapping is enough, but complex interfaces are more than a sequential list of controls that are trivially wrapped. They can have visual relationships that can’t be maintained with wrapping. Some toolkits have self-sizing containers that adjust scale by adding whitespace, but still when the UI is designed to be suitable for a small screen small, information density on larger screens tends to become worse.
These are very common challenges that developers have faced over the years. Browsers have done a lot to support responsive design with HTML/CSS but even so there’s no magic API or solution that elegantly handles everything. At some point a designer has to make compromises to support hardware differences as necessary.
What are some specific examples for you that you think does it right?
@Alfman
Work through the problem. You have enough information.
HollyB,
You’re vagueness tells me that you don’t.have specific examples yourself. It is super easy to be the one to criticize, but it’s much harder to be constructive and actually solve it in a universally robust way that doesn’t compromise the experience for some. This is why I think we should up the resolutions available to everyone. Enough decades have passed that we should be dropping 700-800 vertical pixel displays in normal consumer products. This way UI designers won’t have to compromise so much as that holds back high-dpi interfaces.
CDE was awful. The whole stack was just awful, starting with the motif widgets.
It was from a time were these workstations were running one CAD application maximized and maybe a couple of terminals.
Fun fact, the timelessness of Motif may be due to the fact that it was supposed to be a common window handling paradigm between unix, Windows 3, and OS/2: the menu bar box on the top right corner, the min/max on the top left corner, and the 4 border resizing corners.
I believe Microsoft was a founding member of the motif consortium.
I think symbolic abstraction leds itself to be more timeless than skeudomorphism.
I was fond of CDE on HP/UX but a colleague of mine had a Sun workstation with Solaris/OpenStep and it reminded me how much I loved my Atari ST whereas my neighbor had an Amiga.
I liked the original VUE better than CDE. We had some ancient HP-UX systems at a lab I did some research. I only used CDE in some Solaris boxes we had to use for some assignments in the early 00s, but it was fascinating how little had changed from VUE, which I think was from the late 80s.
NextStep had pretty icons, but it was also awkward as hell as a GUI.
Exactly this. It was awful, even in the mid 90s. I especially hated how dreadfully slow it was even on modern SUN hardware, and how much time you would spend looking at that blinking i am busy “LED light”. Despite CDE looking a bit more like a modern UI, i much preferred Open Windows because while archaic it at least did not slow you down.
Here we are talking around the time Windows 95 was released, and CDE kinda felt like a very slow version of Windows 3.0 with virtual desktops.
CDE felt like a regression from OpenWindows. I have no idea why SUN moved away from it.
Of all the unix vendors, it seems that only SGI actually cared about the desktop user experience.
CDE isn’t modern. It looks like an 80s throwback, which is what it is. It looked odd even for the time, with its big chunky window borders, gaudy colour schemes and titles you had to squint to read. There was no great clamour to get CDE released as open source in the 2000s and although you could buy it, I don’t recall there being much interest. You could configure some desktops of the time to look a bit like CDE (XFCE was a good example) but you could configure them a whole bunch of other ways as well while CDE always looked like CDE.