I have a NeXTcube coming. A real nice 25MHz 68040 model.
So, it has NeXTstep 3.3 I believe user developer.
I wonder if I should update to OpenStep 4.2 though. So, what are the Pros & Cons of updating black NeXT hardware from NeXTstep 3.x to OpenStep 4.x?
Is it a No-Brainer to update to OpenStep. Is it backward compatible?
Also wondering if there is a chart someplace comparing NeXTstep to OpenStep that shows features and what one offers over the other, etc...
Thanks
tj
Caveat emptor: I do not currently own any black hardware, so I could easily be wrong.
Quote from: "NeXTsociety"I have a NeXTcube coming. A real nice 25MHz 68040 model.
So, it has NeXTstep 3.3 I believe user developer.
I wonder if I should update to OpenStep 4.2 though. So, what are the Pros & Cons of updating black NeXT hardware from NeXTstep 3.x to OpenStep 4.x?
Pros: OpenStep.
Cons: OpenStep (it's a different beast, programming-wise... and it'll take slightly more disk space)
I'm not trying to be deliberately obtuse here, but that's pretty much it.
From a users perspective, there's practically no discernable difference between OPENSTEP and NEXTSTEP other than the ability to run both NEXTSTEP and OPENSTEP applications. All the differences are under the hood -- e.g. the differences between the NEXTSTEP AppKit and OPENSTEP AppKit/Foundation.
Quote from: "NeXTsociety"
Is it a No-Brainer to update to OpenStep. Is it backward compatible?
As far as the runtime goes, it is backward-compatible. One can take pretty much any NEXTSTEP app and run it on OPENSTEP.
If one looks in depth on OPENSTEP, one can see this in action:
Mail.app on OPENSTEP uses NEXTSTEP libraries (and is a NEXTSTEP app, too):
CWD: /Users/asmodai
asmodai@nova $ otool -L /NextApps/Mail.app/Mail
/NextApps/Mail.app/Mail:
/usr/shlib/libdbkit_s.A.shlib (minor version 62)
/usr/shlib/libIndexing_s.A.shlib (minor version 1)
/usr/shlib/libMedia_s.A.shlib (minor version 12)
/usr/shlib/libNeXT_s.C.shlib (minor version 89)
/usr/shlib/libsys_s.B.shlib (minor version 62)
vs
ProjectBuilder.app on OPENSTEP uses OPENSTEP libraries:
CWD: /Users/asmodai
asmodai@nova $ otool -L /NextDeveloper/Apps/ProjectBuilder.app/ProjectBuilder
/NextDeveloper/Apps/ProjectBuilder.app/ProjectBuilder:
/NextLibrary/PrivateFrameworks/HTML.framework/Versions/A/HTML (compatibility version 1.0.0, current version 423.0.0)
/NextLibrary/PrivateFrameworks/NeXTApps.framework/Versions/B/NeXTApps (compatibility version 36.0.0, current version 107.0.0)
/NextLibrary/Frameworks/ProjectBuilder.framework/Versions/A/ProjectBuilder (compatibility version 1.0.0, current version 32.2.0)
/NextLibrary/Frameworks/AppKit.framework/Versions/B/AppKit (compatibility version 45.0.0, current version 120.0.0)
/NextLibrary/PrivateFrameworks/DevKit.framework/Versions/C/DevKit (compatibility version 322.0.0, current version 374.3.0)
/NextLibrary/Frameworks/Foundation.framework/Versions/B/Foundation (compatibility version 129.0.0, current version 191.0.0)
/NextLibrary/Frameworks/SoundKit.framework/Versions/A/SoundKit (compatibility version 1.0.0, current version 115.0.0)
/NextLibrary/Frameworks/System.framework/Versions/A/System (compatibility version 1.0.0, current version 117.17.0)
From a programmers perspective, AppKit and Foundation in OPENSTEP are OpenStep, so NEXTSTEP code that uses the non-OpenStep AppKit will not compile.
Installation-wise, Upgrader.app does a decent job.
I guess the choice will be down to personal preference -- and whether you want to run OmniWeb 3.1 ;)
Having the more recent Omniweb would be nice.
I am getting NeXTstep Developer CD with my system and am also getting various NeXT programming guides. Although I am no programmer, it would be nice to start learning. Without guides in front of me, I wonder if learning to program and compile apps in Openstep will be harder then... unless I score the manuals for that also someplace.
tj
You get electronic copies of the manuals in /NextLibrary/Documentation/NextDev/ on both platforms :)
If you have the Nebula or Nova (Walnut Creek) CDs, there's a heap of programming examples that you can use -- most are for NEXTSTEP, however.
NeXTstuff.info and NeXTcomputers' FTP archives also contain a heap of OPENSTEP examples, though :)
It is worth noting that most NEXTSTEP programming resources are utterly useless when it comes to OPENSTEP, due to the huge number of differences in the programming toolkits.
Also, older guides for OSX will also apply (stuff that deals with stuff older than Objective-C 2.0 at least.)
Early OS X references generally apply to OpenSTEP with the exception of writing graphical objects using Quartz. Next- and OpenSTEP both use display PostScript. Writing to the Display PS Buffer is very different than using Quartz. The preferred method is to embed your PS code in a C function using the tool pswrap. Quartz on OS X (imho) is easier to program and a lot less clunky. But I learned how to program on Next when it was still new, so I have a softspot for PS and pre- Foundation coding.
Brian Moore
agreed re Quartz... it's a much better toolkit than DPS.
On the subject of DPS... on OPENSTEP, the documentation for that is hidden away. It's available in /NextLibrary/Documentation/NextDev/Conversion/3.3_Reference/GeneralRef/05_DisplayPS/
There are also some cute Adobe examples that show just what DPS + PSwraps can do :)
To be honest, the best way to learn how to code on both NEXTSTEP and OPENSTEP is to start with the Objective-C reference that ships with both, then venture into the AppKit (and Foundation on OPENSTEP) references et al using the examples as a guide.