[comp.sys.ibm.pc] Zortech C++, the Turbo Pascal of 1988

bob@imspw6.UUCP (Bob Burch) (09/01/88)

From my buddy Ted Holden over at HTE:




 
 
 
          Prior to  the arrival  of Turbo  C and the new generation of
     compilers, which are heavily influenced by Turbo Pascal, I had no
     difficulty  telling  people  that  Turbo  Pascal  was  the single
     niftiest animal which lived in the  DOS world.   Turbo  Pascal is
     one  of  the  key  products  which  made the PC, as are also such
     things as 123, WordPerfect etc.
 
          Recently, I have been  playing with  a product  which I have
     come to  regard as the Turbo Pascal of 1988, a product which will
     heavily influence all future  compilers and  cast a  giant shadow
     over the  landscape:  the Zortech C++ compiler.  C++ is the first
     thing I  have seen  which has  made me  WANT to  change the basic
     style of  programming I  use, which  has not  really changed much
     since 1977 when I began using  the  Univ.  of  Oregon  FLECS pre-
     processor for Fortran.
 
          C++  adds  the  entire  object-oriented  paradigm  to  the C
     language without sacrificing anything  at all.   All  of the low-
     level power  of C  is still  there.   All of your C libraries are
     still usable, you still  have an  open system.   C++  is a larger
     language than  C, but  still far smaller than Ada;  C++ therefore
     lacks the most noticeable feature of  Ada, Lisp,  and one  or two
     other "languages  of the future": it is not slow.  Unlike Modula-
     II, C++ has a powerful base of support;  AT&T  is fully committed
     to it  and is  writing the kernels of the next generation of UNIX
     systems in it and it appears that C++ will be billed as the major
     systems language with these new versions of UNIX.
 
      In addition, the following kinds of things are possible:
 
     1.   You can devise classes for matrices, complex numbers, all of
          the animals which populate the realms of math,  physics etc.
          and, using  the facility for overloading operators which the
          language  provides,  have  them  behave  properly,  defining
          adequate meanings for multiplication, addition etc. both for
          matrices amongst  themselves, say,  as well  as for matrices
          times  scalers  etc.  and  have  the language function as if
          these features came with it.  C++ can  be viewed, therefore,
          as having  all the  power of, if not more power than APL and
          is still  readable.    Mathematicians  and  scientists could
          leave Fortran and/or APL for C++ with no regrets.
 
     2.   You can  devise classes  of visual  objects along with class
          functions for moving, turning  them  etc.,  and  then simply
          declare them the way you would integers or strings.  You can
          thus  populate  your  screen  with  multitudes   of  ghosts,
          aircraft,  bears,  windows  or  whatever with less code than
          you've ever  seen.    Unlike  Ada,  C++  has  inheritance of
          classes;    you  could  have  a  generic  class  of aircraft
          containing 80%  of what  was needed  to put  aircraft on the
          screen, and inheriting subclasses for F-16s, F-18s, MIG-27s,
          etc. with a minimum  of  code.    Anybody  writing  games in
          anything other than C++ from now on has to be nuts.
 
     3.   Beyond that, polymorphism is the killer feature in the object
          -oriented  paradign  which  was left out of Ada.  Using it in
          ordinary   business  programming,  you  can  write  large and
          complex programs to  which modules can later be added without
          changing  any  of  the  existing code at all!!!!!  Pinson and
          Weiner give   an example  of this  sort of thing in chapter 6,
          which should be read by anybody concerned with maintainability
          of large programs.
 
      4.  You can  devise classes  of strings which behave as in Turbo
          Pascal, a simple plus sign serving to concatenate  them, and
          generally devise  ways to make the language more to your own
          liking, adding your features.   You  can  devise  classes of
          counters or  indices which  stay within set ranges and, with
          very little effort, using similar techniques,  eliminate all
          of the mechanisms with which programmers come to grief using
          C, especially in large, multi-man-year efforts.
 
          The new  $100 Zortech  C++ compiler  for DOS  machines is as
     neat as  can be.   It can roll up C, C++, and MASM modules in all
     the various memory models.  It appears slightly faster than Turbo
     C for  ordinary C  compiles, and easily compiles several examples
     of Berkeley type code  which  I  regard  as  difficult  tests and
     which,  specifically,  I've  seen  the  Mark-Williams  and  Aztec
     compilers break on.  It comes with a global optimizer, a good TSR
     on-line help  facility, more  like the Peter Norton or Santa Rita
     products than the on-line stuff from Borland products, a graphics
     package which  isn't worth  writing home about but which is free,
     and a very strong editor with many of  the features  of the Turbo
     interactive systems.
 
          The list  of bugs  turning up  for the Zortech compiler is a
     short one, more like Turbo C than like  Microsoft products.   The
     company is fixing them as they turn up and has recently shipped a
     version 1.05 as a  free upgrade  to customers.   A  very readable
     manual is included which, along with the Pinson/Weiner book, will
     provide a most people with a very warm and fuzzy  feeling for C++
     (I am among those who regard Stroustrup's book as unreadable).
 
          As far  as I can tell, this product is one or two iterations
     away from being for future programming  what Turbo  Pascal is for
     today's programming and, given the industriousness and grace with
     which Zortech  is  handling  upgrades,  I  have  no  problem with
     spending  the  money  now.    The present version, 1.05, compiles
     everything but one or two of  the more  exotic examples involving
     polymorphism from  the Pinson/Weiner  book and,  as I have heard,
     everything from the Stroustrup book.   I have  gotten polymorphic
     graphic  applications  to  work  using  my  Turbo  C  version  of
     MetaGraphics which,  incidentally, links  straight in  as if made
     for Zortech  i.e. examples with a "graphic Object" main class and
     subclasses involving circles, rectangles etc., moving  numbers of
     them around simultaneously on an EGA screen.


Ted Holden
HT Enterprises