I’ve been periodically keeping up with GNUstep’s progress since 2004, when I first learned about it as a high school student brand new to Linux and Mac OS X (I grew up on Windows at home and on classic Macs in elementary school). I even wrote a report for a community college class on the history of Mac OS X.
I’ve wanted to see GNUstep succeed, but unfortunately it never got as much attention as the KDE/Qt and GNOME/GTK ecosystems. I have some theories as to why, but I think the biggest barrier is those who really wanted OpenStep/Cocoa in the 1990s and 2000s could’ve used readily-available NeXT/Apple software instead of waiting for GNUstep. It’s the same issue ReactOS and Haiku have; they’re competing against Windows NT/2000/XP/Server 2003 and BeOS, respectively. Even FreeDOS, which is architecturally much simpler, took quite a while to reach version 1.0; people could just get MS-DOS 6.22.
Of course, the Linux kernel and the GNU ecosystem are counterexamples, though I believe it’s easier to reimplement Unix due to its modular nature than to reimplement entire GUI toolkits, especially if source- and/or binary-level compatibility are required.
A GNUstep that was ready around 1998 or 1999 to capture the attention of former NeXT developers and deliver ports of NeXT software to Linux would’ve been the ideal opportunity, though it still would’ve been quite an effort to bring over other things that made the NeXT special, such as Interface Builder. I’ve noticed that most commercial Mac OS X software in the early days were Carbon applications, not Cocoa applications. Many legendary NeXT software products did not make the transition from NeXTstep/OPENSTEP to Mac OS X. They could’ve had a home on Linux or one of the BSDs via GNUstep had GNUstep been ready.
Actually, GNUstep has always had an Interface Builder:
https://www.gnustep.org/experience/Gorm.html
My own take is actually that GNUstep spent too long trying to be an OpenStep successor instead of being a way to run Mac apps on Linux.
It took them ages to even clarify if it was a desktop environment or an SDK (and I am not sure it is even clear now).
There has never been a tonne of love for Objective C either. Pretty much the only reason to use it for most people has been because you had to for access to Apple APIs. Which would be the only reason to use it on Linux too.
It always amazed me that Darwin + GNUstep did not result in a macOS clone. Neither of them really went anywhere.
Have you seen Gershwin?
https://github.com/gershwin-desktop/gershwin-desktop
>It took them ages to even clarify if it was a desktop environment or an SDK
Yes. In my eyes it’s both. I mean that in a good way, relative to the way Oberon is both an OS and a language or that Smalltalk is both a language and its authoring environment. Or how Bash is an interactive command shell and a language.
Some people might not like that tight coupling, but sometimes it can be really powerful.
I think there was a funding campaign once where a developer offered to re-implement the missing Apple APIs, but since they basically put up a standard salary it didn't reach the funding target.
> It took them ages to even clarify if it was a desktop environment or an SDK (and I am not sure it is even clear now).
Yes they still have no idea what they are trying to do.
> I have some theories as to why
Curious what those might be.
I think might not have been so simple as well "Jobs = Le Bad". There might have been some oldskool unix thinking about linking. (Both commercial and gnu.) And *Step was a dynamic message API, so it "didn't fit their model". Total speculation I have to admit. It also seemed like a commercial dead-end pre-iphone.
> I’ve noticed that most commercial Mac OS X software in the early days were Carbon applications, not Cocoa applications
I think it’s a safe bet there were many more Mac applications than NeXT applications (that’s one of the reasons Carbon was created), so I don’t see how that’s surprising.