|The NEXTSTEP/OpenStep FAQ
What is ...
This chapter tries to give you some overview over NEXTSTEP/OPENSTEP software and related software. For a detailed description you should contact the producer's WWW server. E.g. for more information about OPENSTEP contact http://www.next.com/
NEXTSTEP is a complete development and user environment by NeXT it provides an unique GUI (graphical user interface), which currently gets copied by several other OS provider like Microsoft, combined with the currently most advanced and tested OS, named Mach. NeXT applied several changes to the Mach kernel to add special features which makes NEXTSTEP unique.
NEXTSTEP comes with a lot of development kits (bundles of classes to build on), like: Sound Kit, Indexing Kit, 3D Graphics Kit, Database or EOF Kit and Application Kit.
Bundled with NEXTSTEP are several user applications which enhance the daily use dramatically: NeXTMail (a MIME compatible mail application), Edit (a simple but powerful editor), FaxReader (for reading incoming faxes, you are able to send faxes from every application which supports printing), DigitalWebster (Webster's Ninth New Collegiate Dictionary and Collegiate Thesaurus), Digital Librarian (indexing and full text search utility, usable over groups of files) Preview (a PostScript and TIFF display utility), Terminal (UNIX terminal application for VT100 and TN3270 emulation), TeX (a well known compiler for formatted text), SYBASE and ORACLE adapters (to contact to SYBASE and ORACLE databases within EOF applications).
One special thing about NEXTSTEP is the display system. NeXT uses DPS (Display Post Script), which gives you true WYSIWYG on every NEXTSTEP system. The window server supports PostScript Level II, Interactive RenderMan and Photorealistic RenderMan (an distributed engine for fast high quality rendering, based on Pixar's RenderMan).
To be used in networks, NEXTSTEP supports NFS, NetInfo, Novell Netware (as client only), Ethernet and Token Ring and different filesystems (Mac, DOS, ISO 9660, High Sierra, Rock Ridge).
For multimedia purposes NeXT uses Lempel-Ziv compression for text, Audio Transform Compression for Sound (comparable to Sony MiniDisc), JPEG for TIFF and Group 4 for Fax. Of course these are only standard modes and NEXTSTEP is extensible to use other methods too.
For system administration (remember that NEXTSTEP is using Mach as an UNIX derivate), NeXT supplies several administration applications which make it easy to configure NEXTSTEP as needed, like: SimpleNetworkStarter, UserManager, PrintManager, NFSManager, HostManager, NetInfo Manager, BuildDisk, Upgrader and the complete documentation and manual pages online.
Mach is the the basic OS layer NeXT uses for NEXTSTEP. It is a micro kernel, which means it is extensible at runtime. Micro kernel often stands for a small kernel size, too, but due to the compatibility to BSD 4.3 Mach is currently about 1MB in size.
Features of Mach are: loadable kernel services (extensions during runtime), different scheduling algorithms, an advanced messaging system, an advanced memory allocation mechanism (copy on demand, world wide message broadcasting), true multitasking, multi-threading and BSD compatibility.
OPENSTEP is the latest release of NeXT's NEXTSTEP with the ability to be OS independent (NEXTSTEP depends on Mach).
OPENSTEP is currently available for Mach, Windows NT and Solaris and will get available for other operating systems in the future.
The architecture of OPENSTEP was made public in late 1995 and since then GNU is working on a public port of OPENSTEP to e.g. X11 based UNIX systems.
To express the new standard, 'OPENSTEP/Mach' is now the correct spelling for the formerly named NEXTSTEP product by NeXT, but it is known that NeXT itself is still using the same version numbering scheme for at least the Mach product line, so the first release of OPENSTEP for Mach is equivalent to NEXTSTEP 4.0 and in fact the first OPENSTEP product is named 'OPENSTEP/Mach 4.0'.
OPENSTEP is supposed to be an industry standard for developing object oriented, system independent, scalable solutions for client/server architectures. It was adopted by Sun, Hewlett Packard and Digital. It provides distributed applications through PDO (Portable Distributed Objects) and D'OLE (Distributed OLE) based on CORBA. The usage of EOF supplies object persistence with traditional relational databases. And finally with WebObjects, objects are accessible through the internet or in your own private network.
OPENSTEP, like NEXTSTEP 3.3 provides several kits for software developers like: Application Kit and Foundation Kit as well as Display PostScript.
Applications written for OPENSTEP are sourcecode compatible to all other architectures running OPENSTEP, although fat binaries are only available under OPENSTEP for Mach (because the binary format is depending on the operating system). It's rumored, that OPENSTEP applications will also compile fine under Apple's new Rhapsody version.
For the NEXTSTEP user OPENSTEP doesn't take away old known features. In addition with OPENSTEP for Mach you get Mach enhancements, an enhanced workspace manager, Perl5, TaylerUUCP, PPP and Samba.
Old applications will continue to run under OPENSTEP for Mach and need to be recompiled to run under Windows NT, Solaris, and other OPENSTEP platforms. Which goes side by side to become true OPENSTEP applications-
The following are some new advantages/disadvantages over the known NEXTSTEP product:
- documented NEXTIME library for developing
- faster message handling
- handling of disks >2GB in automatically. Paritioning size is still limited to 2GB.
- no Novell Netware support (supposed to be included with OPENSTEP 4.1)
- Renderman still included
- Indexing Kit available by third party (MiscKit)
- no more POSIX! (Hopefully included again in OPENSTEP 4.1)
To develop applications NeXT uses Objective-C as its native programming language. Objective-C is a more strict OO language then C++ but covers C as well as C++. Because NeXT uses the GNU C/C++ compiler, you go with the most spreaded and tested C compiler available for most UNIX platforms of today. (Of course you can use Objective-C on every platform on which gcc is available).
Objective-C is different to other languages in the way it executes code. Objective-C uses a runtime library to dynamically access objects at runtime. This allows you to change objects at runtime etc. All this goes with nearly no speed penalty, because hashing mechanisms are used to access the different methods of an object.
There is also ObjC which is an different product, available as a commercial compiler for different operating systems. Don't mix up things by using the expression ObjC instead of Objective-C. For shortcut purposes the NeXT community also uses the term ObjC/Obj-C but of course thinks of Objective-C by NeXT.
Objective-C isn't standardized, yet.
In Objective-C you are able to mix code. E.g. you can use C++ and C in any Objective-C program.
Objective-C is a simple and concise object-oriented extension to ANSI-C. It has a runtime messaging facility and offers dynamic binding. Distributed objects are supported and the code is optimized for native compilations.
It's syntax and programming technique is much like in SmallTalk. Using Objective-C you can even message objects in other applications, also over a network!
NEXTSTEP/OPENSTEP Developer is currently the only way to develop applications under NEXTSTEP because it includes all the necessary include files and libraries.(Of course you can get any GNU C version precompiled, but it won't help you without the include files and linker libraries).
In addition to a precompiled GCC, include files and the linker libraries you will get the famous NeXT developer tools: ProjectBuilder (your commando center for building applications and managing sources), InterfaceBuilder (for designing the application's GUI and making object connections), an graphical addition to GDB (GNU Debugger) integrated in Edit (NEXTSTEP) or ProjectBuilder (OPENSTEP), MallocDebug (for seeking memory leaks), HeaderViewer (access class information in header files and in documented form in a browser), DBModeler (for building data models, based on Database Kit) (NEXTSTEP only), Yap (an interactive PostScript interpreter and viewer), IconBuilder (a very simple but extensible pixel-based editor for creating icons) and popular UNIX utilities like GNU Emacs, yacc, lex, vi...
D'OLE is a shortcut for Distributed OLE. OLE is Microsoft's standard for Object Linking and Embedding and is currently not distributable across platforms. With D'OLE you can distribute OLE objects across the network like e.g. in SOM by IBM. But D'OLE is more. It uses NeXT's object model PDO (Portable Distributed Objects) from Unix to Windows platforms and enables OLE objects to communicate with OPENSTEP objects natively, which means without changing the application. OPENSTEP objects behave like OLE objects and vice versa.
D'OLE also supports EOF (Enterprise Objects Framework) which enables a distributed computing environment to access database and provides an infinitely flexible choice of application deployment of application deployment strategies.
D'OLE uses the Foundation Framework, Distributed Object Framework and other core classes. It comes bundled with C/Objective-C compiler and GNU make, although Microsoft Visual C++ is required. Further you get a portable nmserver, Mach emulation and on-line documentation.
PDO is a shortcut for Portable Distributed Objects. In the near future PDO will become CORBA 2.0 compliant.
It is the industry's first product to provide a heterogeneous client/server framework on objects. With PDO it is possible to deploy objects on non-NEXTSTEP server Machines and therefore deployed anywhere in a network, wherever they are most appropriate for a task.
PDO encapsulates low-level network protocols, making messaging a remote object as straightforward as messaging a local object. You even don't have to learn new programming tools or techniques, because PDO is a subset of NeXT tools and objects. Because PDO makes object location completely transparent to the application, the application communicates with every object the same way regardless wether it is local, in the local network or anywhere in the world.
Because of the free location of objects, objects may get moved to other locations, e.g. to optimize performance, without modification of the application using it.
PDO also runs on non-NEXTSTEP servers. It comes with it's own set of classes, libraries and even an Objective-C++ compiler, etc. Neverless you can build, maintain, etc. from any NEXTSTEP client connected to a PDO server. The tools used for building the final objects however are native to the server's OS.
PDO comes with Foundation Framework, Distributed Objects Framework, DOEventLoop and other core classes. Bundled tools are: Objective-C++ compiler, GDB, libg++, GNU make, Portable BuildServer, Portable nmserver, Mach Emulation, NEXTSTEP's default system, on-line documentation. Currently supported platforms are: HP-UX, SunOS, Solaris, Digital UNIX.
EOF is the latest replacement for the DatabaseKit and available as an extra product.
EOF bridges the gap between objects and relational databases. With EOF you can bring the advantage of object oriented design etc. to applications which use relational databases. (Therefore you don't need an object oriented database!)
EOF clarifies many things. It supports a three-tier client/server architecture by separating the user interface, business objects and the database. In fact you can simply exchange the database (by changing the adapter) and still use the same application!
Developing under EOF doesn't limit you to e.g. Objective-C. EOF allows the integration of e.g. 4GL code as well as SQL etc. all combined under the advantage of NeXT's developer tools.
EOF includes client and server software. It consists of the Enterprise Object Modeler, runtime libraries and adapters for SYBASE,ORACLE and Informix (other adapters available from the DBMS producers). It currently runs under HP-UX, SunOS, Solaris, Digital UNIX and always requires PDO. For client use you additionally need NEXTSTEP/OPENSTEP.
WebObjects helps you building dynamic Web pages. It is targeted to the server side of the Web and there mostly to the intranets, also most people might find it very useful for the Internet, too. It is operating system independent and runs under Windows NT, Solaris, HP-UX, Digital UNIX and NEXTSTEP/OPENSTEP.
WebObjects contains development tools to build components for your application logic, as well as a set of reusable components to manage the rendering of your application. Because WebObjects is Java compatible, you even can integrate Java applets in your application today. It supports the standard http servers which have to support CGI or NSAPI interface. WebObjects supports database access to Informix, Oracle, Sybase and DB/2.
What's unique about WebObjects is the ability to share the logic of your Web application and your data with other internal applications. It means that you are not required to maintain a dedicated database or write specific application code for your Web application.
Currently there are three versions of WebObjects: WebObjects, WebObjects Pro and WebObjects Enterprise. WebObjects itself is freely available to anybody interested in. WebObjects Pro contains PDO and WebObjects Enterprise contains PDO and EOF with a special license to connect to the Internet. But because WebObjects is a brand new product, look at http://www.next.com/WebOjects/ for further information.
WebObjects is free for academic usage.
Rhapsody is the code name for Apple's new operating system, based on BSD 4.4 and OPENSTEP frameworks. Because it's not released yet, we don't talk about it. (Also we could, of course, spread some details, but it would only produce more noise.) Please refer to http://www.apple.com/, http://www.devworld.apple.com/, http://www.macrumors.com/, http://www.rhapsodyos.com/ for more details
First: There is no Java capable browser.
Several NEXTSTEP browsers are available for NEXTSTEP. The currently most advanced browser is named 'OmniWeb'. OmniWeb is commercial in the way that you need a license to use it in a network. A single user license is free. OmniWeb seems to be continuesly updated and support is known to be good. OmniWeb is also supporting a lot of well known Netscape features.
There is also a public domain WWW browser named 'SpiderWoman'. It's plus is the NEXTSTEP look and feel (e.g. you navigate through the Web like you navigate your filesystem with WorkspaceManager). Anyway SpiderWoman is somehow unstable and it seems as if development stopped.
Another commercial browser is NetSurfer. Demos are available on the ftp sites. This browser is preferred by several people because it integrates ftp access very well. Anyway you have to pay for it.
Netscape isn't available for NEXTSTEP and is unlikely to be ported.
There are currently four well known newsreaders for NEXTSTEP.
First there is Alexandra, a public domain newsreader and second there is NewsGrazer (and unsupported NeXT product). You should test them to get your personal favorite. The only real difference is the support of NEXTSTEP 3.3J (Japanese) and flatfiles in NewsGrazer, while the interface in Alexandra seems to be better for many people.
NewsFlash is a commercial product which adds several features. As RadicalNews it supports article threading, automated posting and extraction of multi-part files. Demos are available on the ftp sites. E-mail inquiries should go to firstname.lastname@example.org. Further info is available at: http://www.wolfware.com/.
RadicalNews is a commercial newsreader. It supports true article threading, quoted text highlighting, japanese and Latin-1 support, URL-support, an interface to Digital Librarian, a sophisticated coloring scheme and much more. Info is available at: http://www.radical.com/.
A note to both commercial versions: the community is very splitted about which version is to prefer. In general it seems as if there are no really 'killer features' so it prefers much to personal taste. Demos are available and don't forget to test the free versions, too!