![GNU is Not Unix GNU is Not Unix](http://a.fsdn.com/sd/topics/gnu_64.png)
![Programming Programming](http://a.fsdn.com/sd/topics/programming_64.png)
![Technology Technology](http://a.fsdn.com/sd/topics/technology_64.png)
10 Years of OpenStep 338
tarzeau writes "Today, the OpenStep API celebrates its 10th anniversary. What started out as a joint adventure of NeXT and SUN to define an application development standard that would run on all machines, making 'write once, compile everywhere' a reality, is still unfolding within the vivid and active community of GNUstep, old NeXT and Apple lovers.
The magic 10 appears in GNUstep's current 1.10.x release and in Apple's Mac OS X 'Cocoa' release. Programmers worldwide can develop their programs on Mac OS, Linux, the BSDs, Solaris, and with a couple of hurdles -- even on Windows. This solid and well-defined standard is reaching out to the world of software development, slowly but surely.
Program your applications in days or weeks, rather than years or never. Use the advanced API of a development framework that hasn't needed significant modification for 10 years, because it rocks, is stable and just works."
Next (Score:4, Insightful)
Re:Next (Score:4, Interesting)
Well, then... GnuStep seems to recommend WM as the choice for Gnustep applications, but isn't itself Gnustep in any way.
Is there anything that is? I would like to install and play for at least five minutes...
Re:Next (Score:4, Informative)
Re:Next (Score:2)
The answer is simple: Window Maker is a mockup of the original NextStep desktop look'n'feel, but doesn't use any OpenStep/Gnustep/Cococa libraries or programming paradigms - just like fvwm95 superficially looks like Win95/98, but implements nothing of the underlying Windows API/framework, an infinitely more complex effort pursued, for example, by WINE. So GNUstep is not a window manager
Re:Next (Score:3, Insightful)
Although this is going to sound a lto like flamebait, it is a real question... Is GnuStep a viable platform? Ten years without a wm based on it? It sounds like a perfect match for the Hurd, a technically superior solution that never goes anywhere and never
Re:Next (Score:2)
And the guys who brought you Smalltalk are bringing you more neat stuff; see the story on OpenCroquet earlier.
Re:Next (Score:3, Informative)
The beauty of Objective-C was that it was just enough OO. In practice, you could make your code as efficient as C and you could have full control over your (small) memory footprint, and we made great use of inheritance, reuse, polymorphism, and l
Re:Next (Score:2)
On a lark I loaded GNUstep as the default windowing environment. I like it - but haven't explored all of its capabilities and limitations yet.
Re:Next (Score:3, Informative)
Right on www.gnustep.org it states:
GNUstep itself is not an operating system, window manager or desktop environment, though there are several desktop environments in development that are based on it.
just some info.
Re:Next (Score:4, Informative)
Hm..I thinkg you misunderstand how things are related in fact.. under X-Window, you need a special program, in charge of the window management (ie, to move them, etc.). It's called.. a window manager. WindowMaker is a X11 window manager.
Then you have X11 programs, that are in charge of their window's content. As programming directly using XLib is not fun, there is a lot of X11 "toolkits". Qt and Gtk are examples of toolkits.
GNUstep is an implementation of the OpenStep API. Basically, it's a programming library, a toolkit like Qt and Gtk if you want -- not only for graphic apps, but also for non-graphic apps. In fact, the OpenStep API is divided in two frameworks: Foundation (which deals with non-graphical things such as threads, files, unicode strings, etc.) and AppKit (which provides all the nifty widgets and how you use them). But, additionally to that, GNUstep *also* provides development applications: Gorm, a graphical interface builder, and ProjectBuilder, an IDE.
Actually, GNUstep runs mainly on X11, but the way it is architectured, it's not that complex to use other drawing display. For example, there is 3 backends for X11 -- one using xlib, the other using libart, and the third using Cairo. And there is a backend for Windows GDI. So in fact, it's not tied at all to a X11, and the notion of an independant window manager is specific to X11 (actually, GNUstep apps don't really need a window manager even under X11 -- they can manage themselves..).
But, if you're under X11, chances are that you want to run other programs alongside GNUstep programs -- KDE/GNOME programs for example. You then *need* a window manager. WindowMaker is the "default" window manager recommanded by the GNUstep project, mainly because its look and feel match the GNUstep look and feel. But you can use others window manager.
And WindowMaker itself doesn't use GNUstep.
Not sure if I understood well your questions, I tried to explain how things are related, hopefully more clearly.
Call me stupid, but.... (Score:2, Interesting)
Re:Call me stupid, but.... (Score:5, Informative)
Re:Call me stupid, but.... (Score:5, Informative)
Re:Call me stupid, but.... (Score:4, Insightful)
Re:Call me stupid, but.... (Score:3, Interesting)
all of the internal tool and editors that produced the content were developed using Objective-C and openstep.
Re:Call me stupid, but.... (Score:2)
Re:Call me stupid, but.... (Score:5, Informative)
The first wholescale industrial use of OOP practices?
etc. Do some googling.
Re:Call me stupid, but.... (Score:2, Insightful)
Re:Call me stupid, but.... (Score:5, Informative)
NeXT was bought off by Apple, and was developed into Mac OS X. The OS X Cocoa API is really nothing more than the NeXTStep API set, and is almost 100% source compatible with programs from the old NeXT machines.
More Information [wikipedia.org]
Re:Call me stupid, but.... (Score:4, Insightful)
Poppycock. The cases were a magnesium alloy. The only way the guy got it to burn was to heat it to several thousand degrees so that the alloy broke down. Not to mention that he had to try it with two different cases, AND use tons of lighter fluid to get one to ignite.
Re:Call me stupid, but.... (Score:2)
http://slashdot.org/articles/01/08/10/1646241.shtm l [slashdot.org]
The cases weren't pure enough to burn without being thrown into the surface of the sun (may not be 100% true).
Re:Call me stupid, but.... (Score:4, Funny)
Re:Call me stupid, but.... (Score:5, Informative)
Other things:
- Altsys Virtuoso (this became Macromedia FreeHand)
- Lotus Improv (which lives on as Quantrix or Flexisheet)
- MusicKit
- MiscKit
- Pages by Pages
- TouchType.app
Other more recent developments:
- Cenon - http://www.cenon.info
- GNUmail
- ProjectCenter
- GORM
William
Re:Call me stupid, but.... (Score:2, Interesting)
Personally I think the tools that ship in XCode / Project Builder for constructing UIs are (ironically) the most user-unfriendly and unintuitive I've ever encountered. Part of the blame falls squarely on the interactive help which is awful compared to the MSDN for example.
That's not to say I don't think Objective-C is elegant but I'd still prefer
Re:Call me stupid, but.... (Score:2)
Re:Call me stupid, but.... (Score:4, Insightful)
Interface builder is not intuitive, it's not even discoverable. Joining objects residing in two separate windows with lines doesn't even make sense from a usability perspective. Even when you eventually figure out how to create classes and join them up to buttons, it is non-obvious how that maps onto actual code. On top of these problems you have to learn a new language just to be able to get your UI to do anything. If the documentation & help system were up to snuff it might shorten the learning curve but they're not - it takes seconds to do a search on MSDN, so why does it takes minutes on OS X?
Thus, the new programmer is faced with an unfamiliar language, an unfamiliar metaphor for UI building, and an unfamiliar framework with bad documentation. I haven't seen such an uncompromising and steep learning curve for a long time. And all that to programme a supposedly user friendly OS.
So yes I do think it is non obvious. In my case it was the first time I actually had to buy a book ("Cocoa Programming for Mac OS X") before I could even figure out what was happening. I haven't seen XCode 2.0 it has to be said, but I sure hope they intend to make it easier to use. Even a few wizards with common design patterns might help somewhat.
Re:Call me stupid, but.... (Score:2)
I admit that Objective-C can be slightly painful especially when you get stuff that looks like
[[[[object message] message] message] message]
it rubbed me the wrong way at first but now I can honestly say I'd rather code in XCode than Visual Studio.
Re:Call me stupid, but.... (Score:2)
It's hard to say what environment I'm most comfortable with. It's probably VC98 because it's so uncluttered yet practical. I'm also partial to Eclipse, but the visual editing component (VE) has some wa
Re:Call me stupid, but.... (Score:3, Insightful)
Re:Call me stupid, but.... (Score:4, Interesting)
Or Carbon and C/C++.
That's not to say I don't think Objective-C is elegant but I'd still prefer C++
No, you really wouldn't. C++ just doesn't have the dynamic capabilities that Cocoa apps exploit to substantially reduce code. Simple example: given an arbitrary object, determine if it implements a named method. One line of code in ObjC, and this allows Cocoa apps to automatically enable and disable menu items depending on what actions are valid for the current selection.
Informative background (Score:5, Informative)
Apparently.
In the future, when you so desperately want to learn about something, you can use Wikipædia [wikipedia.org], a free on-line encyclopædia:
OpenStep [wikipedia.org] is an open object-oriented API specification for an object-oriented operating system that uses any modern operating system as its core, principly developed by NeXT. It is important to recognize that while OpenStep is an API specification, OPENSTEP (all capitalized) is a specific implementation of this OpenStep developed by NeXT. While originally built on a Mach-based Unix (such as the core of NeXTSTEP), versions of OPENSTEP were available for Solaris and Windows NT as well. Furthermore the OPENSTEP libraries (the libraries that shipped with the OPENSTEP operating system) are in fact a superset of the original OpenStep specification. The OpenStep API was created as the result of a 1993 collaboration between NeXT Computer and Sun Microsystems, allowing this cut-down version of NeXT's NeXTSTEP operating system object layers to be run on Sun's Solaris operating system (more specifically, Solaris on SPARC-based hardware). Most of the OpenStep effort was to strip away those portions of NeXTSTEP that depended on Mach or NeXT-specific hardware being present. This resulted in a smaller system that consisted primarily of Display PostScript, the Objective-C runtime and compilers, and the majority of the NeXTSTEP Objective-C libraries. Not included was the basic operating system, or the display system. The first draft of the API was published by NeXT in summer 1994. Later that year they released an OpenStep compliant version of their flagship operating system NeXTSTEP running on several of their supported platforms and rebranded it OPENSTEP. OPENSTEP remained NeXT's primary operating system product until they were purchased by Apple Computer in 1997. OPENSTEP was then combined with technologies from the existing Mac OS to produce Mac OS X. Sun never seemed terribly interested in the product, likely a result of the NIH syndrome. In fact it's somewhat unclear why they were ever interested, although it appears it was an attempt to "get in" on the object-oriented operating system market before Microsoft released its plans for the object-oriented Cairo OS (which never happened). Nevertheless they started their port to Solaris some time in 1994, and released it in 1996. When Sun started work on Java just after this point, Solaris OpenStep was never seen again.
NeXTSTEP [wikipedia.org] is the original object-oriented, multitasking operating system that NeXT Computer, Inc. developed to run on its proprietary NeXT computers (informally known as "black boxes"). NeXTSTEP 1.0 was released on 18 September 1989 after several previews starting in 1986, and the last release 3.3 in early 1995, by which time it ran not only on Motorola 68000 series processors (specifically the original black boxes), but also generic IBM compatible x86/Intel, Sun SPARC, and HP PA-RISC). About the time of the 3.2 release NeXT teamed up with Sun Microsystems to develop OpenStep, a cross-platform standard and implementation (for Sun Solaris, Microsoft Windows, and NeXT's version of the Mach kernel) based on NEXTSTEP 3.2. The format of the name had many camel case variants, initially being NextStep, then NeXTstep, then NeXTSTEP, and became NEXTSTEP (all
Is Windowmaker dead? (No, I'm not a troll.) (Score:2, Interesting)
The website hasn't been updated since February, I've gotten no CVS updates since July, there's been no official releases since 0.80.2, there's no working mailing list archives on the site, and my emails go unanswered.
I'm seriously interested in knowing. I'm a big Windowmaker fan, but I'm worried about its' apparent lack of development. Does anyone, anyone at all, know what the heck is going on?
80% of all software is custom built (Score:4, Insightful)
Good question, but the fact that you don't see a lot of programs made with a particular framework doesn't mean it's not widely used. 80% of all software (just a guess, maybe it's even more) that is written is custom built software for a specific customer or purpose.
Re:Call me stupid, but.... (Score:2, Interesting)
Re:Call me stupid, but.... (Score:3, Insightful)
The quality of the designs are evident in the very small number of frameworks that needed to be modified in an incompatible way or completely replaced. (The inadequately designed DBKit being replaced by EOF comes to mind.)
When I compare these attributes to Sun's highly inconsistent
Another French pioneer... (Score:4, Informative)
What's NeXT? (Score:4, Interesting)
Re:What's NeXT? (Score:3, Funny)
Re:What's NeXT? (Score:2)
Jobs did a great job selecting, integrating, and marketing. But what did he or his companies actually invent?
to understand this in context (Score:5, Interesting)
On a side note, it is really quite sad the linux developers are not using/updating openstep. The fact that it is nearly completely compatible with OSX's Cocoa is a huge plus. I discovered this while developing software in Cocoa and have often thought about how cool it would be to have a GL based desktop with a slick Openstep ui ( the current one looks like it is stuck in 1993) on linux.. Then I got a Mac
I don't understand... (Score:2)
If this is the case, then why aren't more commercial OSX applications appearing on the free UNIXen with GNUStep libraries?
If it is so easy to port, then why don't I see Photoshop for Red Hat Linux? This is a big market.
Anything serious use of Objective-C appears to be confined to the Mac platform.
Re:I don't understand... (Score:3, Insightful)
Unfortunately, GNUStep is still a bit immature despite being around for many years. The reason there aren't commercial apps isn't because OpenStep isn't great/easy-to-use. It's more likely because the free OpenStep-like environment isn't stable/mature. QT and GTK are stable and mature but you don't see a plethora of non-niche commercial apps for those either.
If it is so easy to port
Re:to understand this in context (Score:2)
Re:to understand this in context (Score:2)
They are. It's called GNUStep [gnustep.org]. They could use more help, though.
There was never anything so consistent, stable.... (Score:5, Interesting)
- Command= in any app to get a definition in Webster.app rocks
- having all of your man pages, the sysadmin refs, and the works of Will Shakespeare and anything else you wish to add in Digital Librarian ensures one can look up what one needs at will.
- Being able to improve the functionality of _any_ app by installing a Service or an app which provides a Service provides a synergy one doesn't get in Mac OS X where it's hit-or-miss whether or no an app supports Services (Cocoa apps do, Carbon and Java apps have to be specially coded)
- having total control over the screen (you can drag off-screen and hide all but one pixel of the vertical menu, one tile of the Dock)
- The vertical menu makes tear-off sub-menus make sense, which allows effortless customization of one's working environment for a given task w/o inscrutable toolbars
- the pop-up menu means that the menu for the current app is always instantly available --- some commands can even become gestural in one's access to them, e.g., ``Punch'' in Altsys Virtuso, right-button-menu click, down a bit and straight over and release
I could go on, and I have, check my rants on groups.google.com in comp.sys.next/mac.advocacy
I've got a little bit more on my site, http://members.aol.com/willadams look for my nascent gnustep pages, or the NeXT brochure in my portfolio
Or of course, visit http://www.gnustep.org or http://www.stepwise.com for some good programming info
William
Re:There was never anything so consistent, stable. (Score:3, Interesting)
http://www.omnigroup.com/applications/omnidiction
Re:There was never anything so consistent, stable. (Score:2)
I've been using the WordNet front-end which is okay, but different, and the folks at Nisus did a decent thesaurus a while back.
To further exacerbate the problem since there's no default client to secure the Command= key combination some apps make use of it, so one loses the synergy and consistency which NeXTstep afforded.
William
Re:There was never anything so consistent, stable. (Score:2)
Annoying menus. (Score:2)
The vertical menu, however, is enough to keep me from using any of the GNUstep apps I installed on my computer, before I switched to OS X. I really wanted to like it, but it was just too annoying to use. I've got a Nextstation, had it for a while, and it's annoying there as well.
If anything should have been configurable from the start, it's the
Sounds great!! (Score:2, Funny)
Also, since you are talking about GNUstep as one of the creators of this, I assume this is open source?
And finally, is is language agnostic? I personally would want to use C++.
Yes, I did not RTFA. Sorry.
Re:Sounds great!! (Score:2, Informative)
GNUStep's version of the Application Kit (GUI classes) is still pretty much unusable on Windows. Even if it were usuable, it's insistence on being a holistic "environment" with various services running, rather than just an API, is annoying.
No, it's not language agnostic. You'll need to use objective-c, or some other langauge like python that can bridge to objective
Re:Sounds great!! (Score:2)
GNUstep is LGPL.
And finally, is is language agnostic?
Sort of. There are bindings available for many languages such as Perl, Python, and Ruby. C++ won't work because it doesn't have the necessary dynamic and introspective capabilities.
Some links about OpenStep/GNUstep/Cocoa .. (Score:4, Informative)
Other links, Objective-C [toodarkpark.org] and Apple Cocoa [apple.com]
portability (Score:3, Interesting)
After GNUstep was finally installed, it took a few trips to Google to figure out how to actually compile a program. It turns out that GCC for OS X has some options that are not present on Linux, such as (IIRC) -framework. The other problem had something to do with having to add code to enable garbage collection.
The final annoyance I encountered, before moving on to other projects, was the lack of autoconf support for Objective C. Again, it's not their fault, but ObjC/*Step feels like a second-class development environment on Linux.
Re:portability (Score:2)
And this is a negative, how? Autoconf/automake create a sucking sound that threatens the doppler shifting of galaxies. Anything that helps you escape from their grip is a good thing.
Re:portability (Score:3, Interesting)
Well, my first question is, what was non-trivial about it? You download four packages (gnustep-make, gnustep-base, gnustep-gui, gnustep-backend) and build them (in the order I listed them) just like any other application. Then, just source $GNUSTEP_ROOT/System/Makesfiles/GNUstep.sh in your
It turns out that GCC for
Re:portability (Score:3, Informative)
Actually, the "import" versus "include + ifdefs" is not a problem. It's not even really a GNUstep problem -- more a gcc one. At one point, they deprecated the "import" (but the support was still there..). Now, the "import" is no more deprecated in the current gcc. So... if you want to use import, go on, it works with the apple gcc and the fsf gcc..
The automatic garbage collection support (using boehm library) in GNUstep is, afaik, only available for -base (Foundation), not -gui (AppKit), although I could b
Colour me ignorant... (Score:2)
(Disclaimer: The most programming I have ever done was 10 line batch file. That gave you a few options.)
Yes (Score:2)
PARCPlace's Environment Beat It (Score:3, Interesting)
Objective C (Score:4, Interesting)
Oh, and I wanted to mention that GNUStep is pretty universally percieved to be ugly, but support for theming is being worked on (it already works, but appears very limited).
Re:Objective C (Score:2)
OpenStep vs. KDE and Gnome (Score:5, Insightful)
Imagine the massive development efforts on KDE and Gnome, including the massive rewrites of their codebases, would instead had gone into GNUstep, so that the GNU/Linux and *BSD desktop would be OS X/Cocao source compatibile today [and companies developing for OS X port their software to Linux basically with one more compiler run]...
Comment removed (Score:5, Insightful)
cuts both ways (Score:2)
I agree to the degree that C++ has always be
Re:OpenStep vs. KDE and Gnome (Score:4, Insightful)
The apathy towards OpenStep stems from two facts. First, until recently there was no Free OpenStep desktop. There was a Free OpenStep API, but not a desktop. And that API wasn't complete at the time Qt/KDE and GTK+/GNOME became popular. The second reason is Objective C. Despite the good things about the language, you must admit if you have any honesty that it is not a common language. Until the release of OSX is was almost a dead language. People starting with a new API prefer to use a language they know. The most common systems languages are still C and C++.
Qt/KDE is not "crippleware". That's below-the-belt FUD that cheapens your whole argument. Even if you have a small enough mind to truly believe that, stating will only hurt your "cause".
Re: (Score:3, Interesting)
Re:OpenStep vs. KDE and Gnome (Score:2)
GNUstep Live CD (Score:3, Informative)
Very true...
It is interesting to note that the new GNUstep Live CD [linuks.mine.nu] was announced on GNUstep Core News [gnustep.org] in June:
so where is SUN? (Score:2)
annoyed (Score:4, Insightful)
it seems a bit arrogant to me that something needs its own directory in the root of my home directory.
I don't even use GNUstep, but its always there. It keeps coming back too, after I remove it.
Sunny Dubey
Re:annoyed (Score:3, Insightful)
No gnuSTEP link in the writeup? (Score:4, Funny)
Seriously, next time there's a story that has GNUstep [gnustep.org] in the writeup, they should probably link the text "GNUstep [gnustep.org]" to the GNUstep [gnustep.org] website, which is (of course) www.GNUstep [gnustep.org].org.
Slab & G5...thanx NeXT for taking over Apple (Score:2)
blakespot
In 1986 NeXT ran fast on a 25mhz processor (Score:3, Interesting)
After nearly 20 years of "progress" we need at least a 400mhz processor, with 256mb of RAM to equal it.
Why?
Re:In 1986 NeXT ran fast on a 25mhz processor (Score:2)
One reason why... (Score:3, Interesting)
High quality rendering and automatic double-buffering. Every window requires megabytes of backing store, and antialiasing slows down the rendering.
Re:One reason why... (Score:3, Interesting)
16 bit per pixel color with alpha channel
1120 x 832 pixel display
25 MHz 68040 processor
16 Mbytes of memory
Double-buffered windows, compositing in the Display PostScript drawing engine, color correction, and a clever dithering scheme to improve color quality. It's still pretty snap
Ugly? (Score:2)
Re:Ugly? (Score:2)
GJC
Ugly menus. (Score:3, Interesting)
Windows-style title bars work better. Apple's "all menus at the top of the screen" are OK, if you have good and consistent context menus (unfortunately Apple doesn't). But the big grey box is obtrusive and needs to change. It shouldn't be too hard... they could be made as configurable as you want without c
Re:Ugly menus. (Score:3, Informative)
Also, the ability to tear off a sub-menu (say the font menu) and leave it (like a readable tool bar) hovering next to where you were working was an excelle
A couple more links (Score:3, Informative)
Re:Sorry. (Score:2, Interesting)
What's wrong with programming with a standard?
Doesn't it make sense to write once - compile anywhere?
Re:What is the point? (Score:2)
Re:What is the point? (Score:2)
They aren't getting 5% of the market. No matter what they do, not all of their target audience will use the product.
Assume that you expect 20% (being generous) of the users in your target audience to use your product. Do it in Windows and have 19% of the total market or have 1% of the total market. It's not a hard choice.
Re:What is the point? (Score:2)
Re:What is the point? (Score:2)
Re:What is the point? (Score:2)
Re:Write once run anywhere will *NEVER* happen (Score:2, Insightful)
With device drivers? You're right again.
However, some class of applications can be written once and run anywhere. I've written enterprise apps on Linux that just ran fine the first time they were tried on Windows, Solaris, etc.
Technologies like Java, Python and Ruby make it real. And I'd bet that in the not-too-distant future, games for mobile devices will be "write once run anywhere". J2ME is a good stab at it, but I don't think it's quite there yet.
Re:I'll be the 1st one to say *iirrk*, take it awa (Score:2)
GNUStep may have a crappy look, but that's hardly inherent to the APIs. I'm sure fixing this problem wouldn't hurt adoption, though.
Re:I'll be the 1st one to say *iirrk*, take it awa (Score:2)
and BTW.. (Score:2)
I NEVER commented on the APIs them self, all I said it (gnuStep/OpenStep) looked awful on linux/unix vs Mac Os X ... a comment more on 'how the/a widge(s) look(s/ed)' ... rather then 'programming interface...'
Re:I'll be the 1st one to say *iirrk*, take it awa (Score:2)
Your aesthetics are certainly not universal. I think the GNUStep stuff on linux looks far better than Aqua, which looks like something a radioactive clown threw up. And I'm writing this on my mac, which I love - I'm not slamming it, it's a great machine, but it's always pissed me off how they fucked up the single best looking system on earth with all this pulsating gumdrop bullshit.
And you can theme GNUStep stuff pretty easily to make it look more like what you want, anyway.
Screenshots are dated (Score:3, Interesting)
However, in the past few months, the interface has come a long way, and things look much better now. No, it doesn't have the eye-candy of Gnome, KDE, or OSX, but it's not really ugly anymore.
FWIW, the real thing, NeXTStep looks very nice on my low-res monochrome NeXT monitor, in much the same way old MacOS looks okay on an old Mac.
WindowMaker, the WM most people use for GNUStep is kind of in need of help,
Come on, 'Flamebait'? ... (Score:2)
Re:Qt acheived this already (Score:2)
... and expensive.
Re:Qt acheived this already (Score:5, Insightful)
Re:Qt acheived this already (Score:2, Informative)
Re:NeXT is a good reference too... (Score:2)
http://www.mozilla.org/projects/camino/