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."
Call me stupid, but.... (Score:2, Interesting)
Re:Sorry. (Score:2, Interesting)
What's wrong with programming with a standard?
Doesn't it make sense to write once - compile anywhere?
What's NeXT? (Score:4, Interesting)
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
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
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: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 C++ and a conventional GUI editor for all the alleged 'pain' that would entail.
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).
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, too. There have been a couple of GNUStep/Cocoa WM projects, but nothing's ever really gotten off the ground.
Re:Call me stupid, but.... (Score:1, Interesting)
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.
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...
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?
Re:Call me stupid, but.... (Score:2, Interesting)
Re:Call me stupid, but.... (Score:1, Interesting)
Re:There was never anything so consistent, stable. (Score:3, Interesting)
http://www.omnigroup.com/applications/omnidiction
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:Call me stupid, but.... (Score:1, Interesting)
Re:Write once run anywhere will *NEVER* happen (Score:1, Interesting)
I routinely write on Windows and deploy on Linux. I never think twice about it.. I even test only on Windows and it has never caused me a problem.
So WORA is here.. whether you choose to acknowledge the fact or not.
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 changing the API... but they've been enough to make me shy away from GNUstep apps.
The best alternative, I think, might be to attach them to the title bar of the active window, but in a horizontal menu-bar layout.
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.
Win32 Ports Please! (Score:2, Interesting)
I've been avoiding any c'ish programming on win32 since I generally don't like C++ and hate using M$ frameworks. Anybody know of and REAL projects to bring ObjC to win32?
JsD
[Use Firefox or Die]
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 OS X has some options that are not present on Linux, such as (IIRC) -framework.
Yes, there are some issues with OSX compatibility (in particular, the "import" versus "include + ifdefs" issue), but they're fairly easy to work around (just ask the GNUmail folks). (BTW, the answer is "include + ifdefs", if you want your code to be portable.
And as for garbage collection, GC in GNUstep is still experimental, AFAIK, and isn't really necessary (though very convenient). The OpenStep way is to use NSAutoreleasePools and the related retain: release: and autorelease: messages in NSObject itself. It's an odd paradigm to get used to, but once you understand it, it works fairly well (aside from it using straight reference counting which, as well all know, breaks in the face of circular dependencies).
The final annoyance I encountered, before moving on to other projects, was the lack of autoconf support for Objective C.
Why, dear god, would you ever *want* autoconf support? The whole point of the Makefiles package is to take care of all your build requirements for you. All you have to do is create a simple Makefile for your project, and voila, the system does everything else for you. All you have to do is a basic "make && make install" to build and install your package. Frankly, I consider this a *far* superior solution to the mess that is autoconf. The fact is, autoconf has no place in the world of GNUstep (other than to, of course, build some of the GNUstep packages, themselves, before the Makfiles package is available)... and it's a better world as a result.
Re:cocoa/openstep devs... (Score:1, Interesting)
Do you want workflow advantages? That's a hard thing to talk about. I will say that Interface Builder is simply amazing. There's something about being able to drag and drop a GUI together in a matter of minutes that brings a smile to my face.
API design advantages? Just browse the docs (google is your friend).
Language advantages? Objective-C is plain amazing in its simplicity, flexibility and design. I literally taught myself Objective-C over a weekend. Do remember, it's still C and you can use C++ (and Java through the bridge) if you want.
Etc.
I'd suggest finding a friend with a Mac. Borrow/Use it for a day or two and run through some of the tutorials you can find here: http://www.cocoadevcentral.com/
Even without sitting in front of a Mac, running through the steps, you can see how nice and easy it is.
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: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 snappy by today's standards, especially when porked out with a huge 64 Mbytes of memory. Woo hoo!
Re:I want Smalltalk on OS X.... (Score:1, Interesting)
Comment removed (Score:3, Interesting)