Subject: FAQ: 3 - What is...


                                3 WHAT IS ...

   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/

3.1 NEXTSTEP

   NEXTSTEP

   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. This will change with OpenStep.

   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.

3.2 MACH

   MACH

   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.

3.3 OpenStep

   OpenStep

   OpenStep will be the next release of NeXT's NEXTSTEP with the ability
   to be OS independent (NEXTSTEP depends on MACH). Therefore OpenStep
   will run on Windows 95, Windows NT, MACH, Solaris, SunOS, HP-UX and
   DEC OSF/1.

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

   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.

   For the NEXTSTEP user OpenStep doesn't take away old known features.
   In addition with OpenStep for MACH you will get MACH enhancements and
   a new GUI as an option as well as all the known advantages of OpenStep
   itself. Old applications will continue to run under OpenStep for MACH
   and need to be recompiled to run under Windows 95, Windows NT,
   Solaris, HP-UX and other OpenStep platforms.

   Because OpenStep isn't already released, this section is just
   speculating and based on information from the usenet community.
   OpenStep is sheduled for quarter two 1996.

3.4 Objective-C

   Objective-C

   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 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 with 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!

3.5 NEXTSTEP Developer

   NEXTSTEP Developer

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

3.6 D'OLE

   D'OLE

   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 which enables a distributed computing
   environment that 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.

3.7 PDO --- Portable Distributed Objects

   PDO

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

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

3.8 EOF --- Enterprise Objects Framework

   EOF

   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 and ORACLE
   (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.

3.9 WebObjects

   WebObjects

   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 (Windows 95 announced).

   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.

3.10 WWW Browser

   WWW Browser Browser OmniWeb NetSurfer SpiderWoman NetScape

   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.
   The current state of Netscape seems to become more and more unclear
   because the latest release with Java support is known to work unstable
   on most systems. Also Netscape supports a lot of features which other
   companies are not going to adopt anymore as it was in the early times.
   Anyway you can use Netscape in the future under the most OpenStep
   platforms.

3.11 Newsreader

   Newsreader Alexandra NewsGrazer NewsFlash RadicalNews

   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 to many people.

   NewsFlash is a commercial product which adds several features. As
   Radical news 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 support@wolfware.com. Further info is
   available at: http://www.wolfware.com/

   RadicalNews is a commercial newsreader. It supports true article
   threadin, 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!