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

22 of 338 comments (clear)

  1. Next by 2.7182 · · Score: 4, Insightful

    I was a really big Next user, and for me OS X seems to be the natural extension of it. But it was amazing to be using Next machines in the early 90's. They were remarkably ahead of their time.

    1. Re:Next by Anonymous Coward · · Score: 1, Insightful
      you're typing (and you've got the mouse) most of the times on the left?
      Normal people have the mouse on the right. It would be nice to have the scrollbars switchable though, at least for those genetic mutants known as "southpaws".
    2. Re:Next by Daengbo · · Score: 3, Insightful

      I appreciate the long explanation, but I understood that part and was looking for a wm (not WM, haha) that was based on GnuStep, but there doesn't appear to be anything like that, though several attempts have been made and a distro (Linux-Step?) aborted.

      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 dies. (OK, maybe the last sentence WAS flamebait)

  2. Re:Call me stupid, but.... by oudzeeman · · Score: 2, Insightful

    Most OS X apps...

  3. Re:Write once run anywhere will *NEVER* happen by animaal · · Score: 2, Insightful

    With leading-edge games like Doom3? You're right.
    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.

  4. Re:Call me stupid, but.... by AKAImBatman · · Score: 3, Insightful

    and the cases burned really well due to the fact that they were cast magnesium

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

  5. OpenStep vs. KDE and Gnome by Florian · · Score: 5, Insightful
    It's a pity that, at the peak of the Linux desktop hype in the late 1990s, when evangelists predicted the near death of Microsoft, KDE and Gnome were rushed out of the door, and GNUstep development remained obscure. It was the first time that distributed free software development defected from its proven practice of implementing standardized, proven APIs and technology (like POSIX) and created major APIs of its own. The result is that KDE and Gnome have created APIs that nobody uses for serious large-scale software development projects [except those companies who have large investments into KDE/Gnome themselves, like Ximian with Evolution]. Now KDE and Gnome have a long way to go to clean up and standardize their APIs (via freedesktop.org), usability (via UI guidelines) and code, solving issues that adherence to an existing open GUI specification like OpenStep would have prevented in the first place.

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

    --
    gopher://cramer.plaintext.cc http://cramer.plaintext.cc:70
    1. Re:OpenStep vs. KDE and Gnome by muecksteiner · · Score: 5, Insightful

      The main trouble - then and now - is that the majority of folks simply "don't get it" why OpenStep is superior to crippleware APIs like Qt/KDE.

      KDE is "trying to do an improved Windows on Linux" (and taking a lot of its bad design choices with them in the process), while OpenStep is something entirely different. And for an average, M$-infected programmer using something like that would require some re-thinking of some of one's own assumptions how apps should be coded, so most simply don't bother. Sheep, that's what I call them... ;-)

      I guess the apathy towards OpenStep also stems from the fact that most people have never seen NeXTStep development in action - it left most witnesses drooling for more - and/or because they're too conventionally-minded to try anything outside their mainstream C++/Java box. To paraphrase a famous quote, "nobody was ever fired for choosing C++", right? And who's ever heard of Objective C - apart from geeks, that is?.

      If you're particularly uncharitable you could argue that the selection process which gave us Linux itself followed a similar pattern. There were technologically more advanced and initially cleaner OS projects out there at the time, but somehow the crowd choose a less-than-cutting-edge project they could at least *understand*.

      I used NeXTStep for years, and I'm still doing my software development in ObjC - luckily I work in a niche where this is possible. If all others want to make their life difficult - well, that's their choice... ;-)

      Just my two euro cents

      A.W.

    2. Re:OpenStep vs. KDE and Gnome by Brandybuck · · Score: 3, Insightful

      You are making gross mischaracterizations about KDE. KDE was started to create a destkop, not an API. The API was merely a pleasant side effect. We're not all a bunch of ex-MFC programmers. Some of us have NEVER written native Windows software.

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

      --
      Don't blame me, I didn't vote for either of them!
  6. Re:Call me stupid, but.... by NoMoreNicksLeft · · Score: 3, Insightful

    Both good examples, but you missed one. Mac OSX.

  7. Re:Call me stupid, but.... by DrXym · · Score: 3, Insightful
    Don't be facetious. Any programmer unfamiliar with the interface builder would sit there boggling at the screen for minutes in total incomprehension. I've used all kinds of UI development tools over the years running the gamut from horrible to sublime. XCode definitely falls near the bottom. Certainly not as bad as trying to visually design a Swing app but close.

    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.

  8. annoyed by phoxix · · Score: 3, Insightful

    why does GNUstep need to have a top devel dir in my home directory ? Why couldn't it be a freaking dot-dir like every other program ?

    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

    1. Re:annoyed by drinkypoo · · Score: 2, Insightful

      As long as Unix lacks a flag or ACL to hide files, the dot-convention is absolutely necessary. It is quite simply the way one hides files on Unix systems and it would be better to do so. If you're so worried about the user's experience, leave it to the user whether they need to see those directories or not.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  9. Re:Qt acheived this already by OmniVector · · Score: 5, Insightful

    any program worth his shit should have no trouble picking up objective-c (a far simpler and more powerful language than c++). the language barrier really isn't an issue. it's more an issue of mindshare. there are a lot of things that are better in the computing world by design but get largely ignored due to lack of marketing.

    --
    - tristan
  10. 80% of all software is custom built by KamuSan · · Score: 3, Insightful

    OpenStep was really popular with several large banks for their internal applications.

    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.

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

    Uh...Doom 3 pretty much was written with that in mind. Once you get their resource/WAD/bytecode/whatever files onto your system, all that matters is the executable and a few library files. I downloaded those from id's site, and had it running on Linux in minutes. Sure, it was primarily designed to work on Windows boxes (or more likely consoles), but with a smart design you can leave your doors open to many markets.

  12. Re:Call me stupid, but.... by FuzzieNorn · · Score: 2, Insightful

    Xcode 2 does fix the documentation/help system. And, yes, Xcode does take a bit of getting used to, but you certainly don't have to buy a *book*. Just reading the online tutorial, which just consists of a few pages of text, was more than enough to get me to understand everything except the language (and you can't possibly call an unfamiliar language a problem with Xcode, any new language is going to be unfamiliar, shock).

  13. Re:I don't understand... by Seanasy · · Score: 2, Insightful
    If this is the case, then why aren't more commercial OSX applications appearing on the free UNIXen with GNUStep libraries?

    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, then why don't I see Photoshop for Red Hat Linux? This is a big market.

    Photoshop, I believe, is still mostly Carbon, not Cocoa. And, Photoshop on Linux is not a big market. If it were, there would be a QT or GTK Photoshop.

    Anything serious use of Objective-C appears to be confined to the Mac platform.

    OpenStep has been popular in niche areas like banking and scientific apps. Swarm is developed mainly in cross-platform Obj-C. GNU gcc is still relatively behind in Obj-C support but I think Apple is helping to change that.

  14. Re:PARCPlace's Environment Beat It by Anonymous Coward · · Score: 1, Insightful

    I don't think the issue here should be Objective-C versus SmallTalk, because they really are two variants of the same flavour of OO language. The shame is that SmallTalk and Obj-C have been marginalized by the C++ approach to OO (with Java being a variant).

    I highly encourage anyone who has a chance to try one of these languages out, as this can lead to some new ways of approaching your code.

    In particular I am thinking about dynamic binding at runtime. How sweet.

    Anyways, cheers to the OpenStep community, and may there always be diversity in programming paradigms.

  15. Re:GnuSTEP, OPENSTEP, NeXSTEP, MacOSX... by Anonymous Coward · · Score: 1, Insightful

    Well, PostScript has flow control constructs (if/then,loops,etc.), and PDF does not. Personally I think this makes PDF better than PostScript. Want to view page 799 of an 800 page document that's PostScript? Guess what, you have to render the first 798 pages, because there could be state somewhere in there that affects page 799. PDF avoids that.

  16. Re:Call me stupid, but.... by Kplusplus · · Score: 2, Insightful

    I have to admit that I did the same when I first launched Interface Builder, but guess what I opened the help and it told of connecting objects to code and I was done, I understood.

    You seem to speak ill of IB because its not like everything else you used, you seem unable to realize that this is a GOOD thing, a strength, not a weakness. Interface Builder doesn't generate crappy code for you, instead it generates real objects that are instantiated at runtime then bound to your code. Show me a pre-existing GUI designer that does that and then your point makes sense.

    Interface Builder is unilke everything you have ever seen in every way, but every way is better. There is no craapy code generated, there is no retarded boxes nor grids to lay things out with, but instead struts that decide the resizeMask of widgets, and almost all the setting can be made in IB, much more powerful than all teh other GUI editors, and so much easier once you udnerstand.

    Unfamiliar framework, yes, bad documentation, no. I mean come on, its new to you so your not familiar with its ins and outs, but just because it doesn't do something like API or library foo doesn't mean it is somehow limited. The docs and the API itself has a clear seperation of tasks and responsibilities, all you need to do is glance through the API docs, or if thats not clear enough for you, start at the Conceptual Docs that explain things without introducing the code involved in detail.

    Also as to searching the OS X developer resources, your not doing it right, since the ADC library consolidation makes looking up info generally work the first time and finds exactly what I was looking for when I search not related documents, or documents that will lead me to teh answet, but th answer itself.

    The language, lets not cry foul there either, ObjC is blindingly simple to learn if you already know C. It's a few extensions and a CLEAR way of handling objects. The entire reason for teh bracket syntax is to clearly dileaneate object interaction from just memory manipulations of other functions.

    You bought a book to introduce you to something new that you didn't know and had to learn, what is surprising about this? Some buy books, some read example code, some just get it. No shame in not understanding, seeking out the knowledge doesn't hurt anyone.

    --
    -"I'm one of those Mac people that will break a bottle on the bar and hold it to your throat for bad-mouthing my system"
  17. Re:Call me stupid, but.... by Brett+Johnson · · Score: 2, Insightful

    The NeXTstep and OpenStep APIs are extremely well designed. The are both comprehensive and consistent. Even as new "kits" (now call frameworks) were created, they shared a great deal of consistency with existing frameworks.

    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 Java APIs and Microsoft's frequent replacement of frameworks with a completely different "improved yet incompatible" API, I just groan. Even though Sun and NeXT had a relationship, I couldn't figure out why Sun didn't copy some of NeXT's obviously better designs for its own Java frameworks.

    I used the high quality, ease of use, and consistency of the NeXTstep/OpenStep APIs as examples that help me significantly improve my own OO design skills.