Slashdot Mirror


10 Years of OpenStep

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."

29 of 338 comments (clear)

  1. Call me stupid, but.... by rwven · · Score: 2, Interesting

    I've been around computers a long time and i've never heard of it. What major application can anyone mention that has been developed on it? A 10th anniversary of something that barely anyone has ever used (in the big scheme of things) is really not any great thing to celebrate... I like the idea of it, but i'm not sure it's as wonderful of a hit as this news article is trying to make it seem.... Or am i off the mark here?

    1. Re:Call me stupid, but.... by DrXym · · Score: 1, Interesting
      Most OS X apps use Cocoa & Objective-C for their front-end. Whether this is through choice, or because XCode compells you to do this is a matter for debate.


      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.

    2. Re:Call me stupid, but.... by Anonymous Coward · · Score: 1, Interesting

      NeXTStep was really popular in the financial industries. Also, ISTR that one of the first clustering -things- for desktops (Godzilla?) was done on NeXT.

    3. Re:Call me stupid, but.... by bnenning · · Score: 3, Interesting

      Most OS X apps use Cocoa & Objective-C for their front-end.

      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.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    4. Re:Call me stupid, but.... by Cobalt+Jacket · · Score: 2, Interesting

      A lot of proprietary systems were developed on it. The CIA had (not sure if they still do) a lot of NeXTstep apps. And First Chicago (now J.P. Morgan) developed a lot of their internal systems using NeXTstep. That stuff is still around in various forms.

    5. Re:Call me stupid, but.... by Anonymous Coward · · Score: 1, Interesting

      You can see some pictures of how NeXT systems were used during the development of Doom and Quake at John Romero's site (here and here)

    6. Re:Call me stupid, but.... by Anonymous Coward · · Score: 1, Interesting

      Zilla.app. It lives on in spirit as Zillion.

    7. Re:Call me stupid, but.... by Altus · · Score: 2, Interesting


      all of the internal tool and editors that produced the content were developed using Objective-C and openstep.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  2. Re:Sorry. by uid100 · · Score: 2, Interesting

    Why is it ugly?
    What's wrong with programming with a standard?
    Doesn't it make sense to write once - compile anywhere?

    --
    ...yup...
  3. What's NeXT? by mrchapp · · Score: 4, Interesting

    Looking back at my old NeXT (we never lose a chance to brag about having one) makes me wonder what's coming in the next 10 years, and how much of that will arrive from Steve Jobs' hand.

  4. to understand this in context by minus_273 · · Score: 5, Interesting

    consider that tin burns lee when developing the www and the original browser gave up on his old projects and got a next box becasue the development of the UI and software was so easy on it. I wonder what would have have happened hsd he not gotten it :).
    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

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
  5. There was never anything so consistent, stable.... by WillAdams · · Score: 4, Interesting

    and productive out of the box as NeXTstep (says the guy who still uses a NeXT Cube as his main production machine at home).

    - 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

    --
    Sphinx of black quartz, judge my vow.
  6. portability by _|()|\| · · Score: 2, Interesting
    It's not their fault, but GNUstep isn't exactly ubiquitous, so it's not a shoo-in for Unix development. After spending some time with the Xcode tutorials, I was eager to try Objective C on Linux. I then realized that a lot of what was cool about ObjC was in the foundation framework, which was part of GNUstep. Since this wasn't packaged for either of my readily available distributions (SuSE and Red Hat), I built it from source, which was routine, but non trivial.

    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.

    1. Re:portability by Abcd1234 · · Score: 2, Interesting

      I built it from source, which was routine, but non trivial.

      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 .bashrc and you're all set to go. Any other GNUstep apps you wish to build are a simple untar and "make && make install".

      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.

  7. PARCPlace's Environment Beat It by Baldrson · · Score: 2, Interesting

    Just shy of 8 years ago I was involved in a startup that was taking an insurance company paperless. Some developers who had been using NeXT since the first beta release of the black cube were there and decided to run a test of development environments. One was NeXTSTEP and the other was PARCPlace's Smalltalk environment. The test involved the same set of forms presented as paper to the developers, whose job it was to make those forms into computer applications updating a database. One developer useed PARCPlace's Smalltalk environment. The other used NeXTSTEP. PARCPlace's environment beat NeXTSTEP by better than a factor of 2.

  8. Objective C by RAMMS+EIN · · Score: 3, Interesting

    The *step development environment is greatly loved by those that use it, and largely ignored by the rest of the world, because they refuse to learn Objective C. Instead, they use Java, which is very much the same idea in a different shape. This is a great pity, because with OpenStep the world could have had it all so much earlier.

    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).

    --
    Please correct me if I got my facts wrong.
  9. Screenshots are dated by idiotnot · · Score: 2, Interesting

    I will admit that very recently, some of the GNUStep stuff was stuff that only a mother could love.

    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.

  10. Re:Next by Daengbo · · Score: 4, Interesting
    OK, suppose I want an OpenStep desktop on a GNU/Linux system... What desktop should I use? GnuStep gives me no good answer!
    GNUstep is development environment, not a window manager Many people have confused GNUstep with WindowMaker. GNUstep, however, is not a window manager. WindowMaker is the most often-used NeXT-looking application on a non-NeXT system. WindowMaker also uses a derivation of the GNUstep logo. WindowMaker is the preferred GNUstep window manager, but GNUstep applications also work with any window manager, although you're most likely, currently, to have a more cohesive desktop experience if you use the two in conjunction.

    Relation to WindowMaker WindowMaker is a window manager, not a workspace manager nor a file browser. It is nothing more. WindowMaker and GNUstep share almost no libraries or functionality. WindowMaker is written in C, and GNUstep is written in Objective-C. WindowMaker does make certain things easier for GNUstep, but it is not GNUstep itself, although it is a part of the project.
    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...
  11. Is Windowmaker dead? (No, I'm not a troll.) by Glytch · · 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?

  12. Re:There was never anything so consistent, stable. by jkujawa · · Score: 2, Interesting
  13. In 1986 NeXT ran fast on a 25mhz processor by walterbyrd · · Score: 2, Interesting

    And without a lot of RAM.

    After nearly 20 years of "progress" we need at least a 400mhz processor, with 256mb of RAM to equal it.

    Why?

  14. Re:Write once run anywhere will *NEVER* happen by Anonymous Coward · · Score: 1, Interesting

    yeah, I don't get why people say it isn't possible. I've been doing it for years .. no prob. Both on the client and the server.

    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.

  15. Ugly menus. by argent · · Score: 2, Interesting

    The big problem with the classic NeXT look is the menus. Whether they're in the corner in classic NeXTstep, or hovering next to the active window in GNUstep, they're just plain inconvenient and obtrusive.

    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.

  16. One reason why... by argent · · Score: 2, Interesting

    After nearly 20 years of "progress" we need at least a 400mhz processor, with 256mb of RAM to equal it. Why?

    High quality rendering and automatic double-buffering. Every window requires megabytes of backing store, and antialiasing slows down the rendering.

    1. Re:One reason why... by mpaque · · Score: 2, Interesting

      The original NeXT Cube, and the various NeXTStation products all did double-buffering of windows by default. Now the Cube and monochrome NeXTStation used only 2 bits per pixel, which helped, but consider the NeXTStation Color:

      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!

  17. Win32 Ports Please! by JPyObjC+Dude · · Score: 2, Interesting

    Although I use Mac at home, I work for a bunch of microsofties. There is so little out there on runing OpenStep Obj-C code on Win32. I'd love to see these frameworks and particuarily ObjC get more usage.

    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]

  18. Re:cocoa/openstep devs... by Anonymous Coward · · Score: 1, Interesting

    It's hard to explain specific advantages without spending an enormous amount of time on any one talking-point. And the way you phrased your question doesn't help either...

    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.

  19. Re:I want Smalltalk on OS X.... by Anonymous Coward · · Score: 1, Interesting

    You might want to look at F-Script, which is a combination of Smalltalk and Cocoa Syntax is Smalltalk (including blocks etc.) and object model is Cocoa. Absolutely wonderful to play with Cocoa objects interactively.

  20. Re:OpenStep vs. KDE and Gnome by muecksteiner · · Score: 3, Interesting

    KDE was started to create a destkop, not an API. The API was merely a pleasant side effect.

    Given that my original claim was that the basic structure of KDE is not nearly as well thought out as it should be I can only say - "and your point is?"

    With a well thought out comprehensive application development toolkit like OS on the one side, and something which started out as one of these retarded "X desktop projects" ("one more kewl way of drawing Xterms" - granted, it's evolved beyond recognition into something genuinely useable now, but still >;-) and added most of the useful stuff as an afterthought, where do you think my sympathies lie?

    I am actually amazed how much the KDE team has achieved, given that the entire software structure is suboptimal compared to e.g. (but probably not only) OpenStep.

    The galling thought which the parent poster wanted to bring across was that if all that precious effort put into KDE had been invested into something with a more solid foundation - like for instance OpenStep - we could be much, much further on now than we currently are. People would in all probability be flocking to Linux due to its RAD prototyping capabilites, like they did with NeXTStep - and as a consequence there would not be such a lack of sophisticated GUI applications for the platform.

    The apathy towards OpenStep stems from two facts. First, until recently there was no Free OpenStep desktop.

    Yes, I agree, that was the thing which broke the back of any widespread OStep adoption. You could download an - arguably buggy and unfinished, but basically USEABLE - version of KDE when the GNUStep guys were still tinkering with the nth unuseable prerelease of their perfect uberdesktop. They did their work well (in the sense of being thorough), and the last sentence was not meant to deride them and their effort. Given the complexity of the project they have fared very well, but they are a bit late to the party now...

    Qt/KDE is not "crippleware". That's below-the-belt FUD that cheapens your whole argument.

    You are right - that was a rather over-the-top comment; apologies to the KDEers out there.

    And I have to add that even if one were in a mood to flame KDE the nomenclature I used would not be entirely correct anyway; KDE is certainly not crippleware as such (this would imply broken functionality, which is generally not the case nowadays), but rather something I would call "conceptual crippleware" - a fundamentally limited design which is being meticulously implemented by a very dedicated team... >;-)

    0.2E-32 EUR

    A.W.