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."
Re:Call me stupid, but.... (Score:5, Informative)
Another French pioneer... (Score:4, Informative)
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: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:5, Informative)
Re:Call me stupid, but.... (Score:1, Informative)
Doom.
Mathematica.
The first web browser.
And a shitload of others.
Some links about OpenStep/GNUstep/Cocoa .. (Score:4, Informative)
Other links, Objective-C [toodarkpark.org] and Apple Cocoa [apple.com]
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:Colour me ignorant... (Score:1, Informative)
It's a fact that the Java designers had Objective-C in mind. Many of them came straight from Objective-C.
Qt acheived this already (Score:1, Informative)
Qt does this already and is much more powerful, robust, mature and well tested. Not to mention a feature-rich native C++ API that not only includes GUI functionality but useful tools (sockets, threads, containers, xml, and more) that nearly rivals those found in the standard Java libraries. I don't work for Trolltech and this is not an endorsement of their product, but writing multi-platform apps in Qt is really fun! I wonder how OpenStep stacks up to Qt. Moreoever, most developers are arguably more familiar with C++ than with Objective C.
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-c easily.
-Helpful AC
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
NeXT is a good reference too... (Score:1, Informative)
Opera: Excellent code but kinda "non native" on os x
Mozilla: Not native by any means
So I tried Omnigroups Omniweb (www.omnigroup.com), what made me amazed is its perfect integration with system, real modern approach to UI.
No wonder they turned out to be a NeXT development company themselves.
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:Qt acheived this already (Score:2, Informative)
Re:Next (Score:4, Informative)
A couple more links (Score:3, Informative)
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 be wrong. I must confess that I never tried it, as the retain/release/autorelease garbage collector scheme works well enough (and is very flexible) as soon as you understand it (a very good article about it is this one [stepwise.com]).
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 late binding and linking, but it was lightweight enough that a full system ran well in 32 megs of RAM, and for everything I did, you wouldn't even be swapping if you had 48 megs for the entire system. We even had Objective-C in the kernel so you could subclass drivers. I like the syntax of Java, but it's a bloated pig by comparison and I would never use it on a server that I expected to scale, while I wouldn't hesitate to use Obj-C in this manner.
Smalltalk may have been a more pure OO environment or better for rapid turnaround development, but no one has used it for the kinds of applications or system that NeXTstep excelled at 15 years ago (or OSX does of late).
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.
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 excellent feature.
And don't get me started on the fact that scroll bars should be on the left sice of windows since the right side of a large window is the side more likely to be offscreen!
Try GNUStep Live CD Re: Next (Score:2, Informative)
Did no one think of this yet?
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:
This is a very interesting project, though of course not as popular as Knoppix.
Imagine the efforts on Knoppix [knoppix.org] would instead had gone into GNUstep Live CD [gnustep.org]... Imagine the development efforts on Linux [kernel.org] would instead had gone into The Hurd [gnu.org]... Just imagine... The entire computing world as we know it would be completely different. But what do we expect? People have no idea that GNU even exists, let alone the kernel development! Just few days ago Slashdot posted a story [slashdot.org] about the Seattle Times interview with Linus Torvalds [nwsource.com] with this opening paragraph: "Linus Torvalds [pronounced LEE-nus] started a revolution of sorts in the computer industry when he created the Linux operating system and decided to share it with fellow programmer