home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / sys / mac / programm / 13206 < prev    next >
Encoding:
Internet Message Format  |  1992-07-30  |  5.4 KB

  1. Path: sparky!uunet!portal!cup.portal.com!Chewy
  2. From: Chewy@cup.portal.com (Paul Frederick Snively)
  3. Newsgroups: comp.sys.mac.programmer
  4. Subject: Re: MacOberon
  5. Message-ID: <63120@cup.portal.com>
  6. Date: Thu, 30 Jul 92 09:10:34 PDT
  7. Organization: The Portal System (TM)
  8. References: <1992Jul28.231712.27337@fcom.cc.utah.edu>
  9.   <1992Jul29.154809.16204@gvl.unisys.com>
  10. Lines: 97
  11.  
  12. In article <1992Jul28.231712.27337@fcom.cc.utah.edu> kofoid@bioscience.utah.edu
  13. (Eric C. Kofoid) writes:
  14.  
  15. >MacOberon "works" on my Mac (13" monitor).  However, the interface is a real
  16. >show stopper.  Even if you assume the author had no particular reason to
  17. follow >Apple's interface guidelines, it's still a disaster. For example, the
  18. "scroll >bars" work by holding down some modifier key while you click with the
  19. mouse to >move the selected line to the top of the window--but this leaves you
  20. with NO >WAY to scroll backwards! Although MacOberon seems to have quite a bit
  21. of >documentation, you are on your own when it comes to figuring out what to
  22. read >first.
  23.  
  24. Actually, to scroll forward, no modifier key is needed.  Holding down the
  25. Option key will take you to the beginning of the view, and Control will
  26. position the scroller in proportional style.
  27.  
  28. >I downloaded MacOberon because I wanted to find out something about the Oberon
  29. >language, but decided I didn't want to know badly enough to hassle with the
  30. >brain-dead interface.  (My interest was only casual; someone with more
  31. >motivation could probably succeed.)
  32.  
  33. This is a fair assessment, IMHO, if you choose to make the assumption that any
  34. given programming environment on the Macintosh is going to implement the human
  35. interface guidelines.  Since I've used other workstations that implemented
  36. their own interfaces (e.g. Symbolics lisp machines), I guess MacOberon didn't
  37. throw me so much that I just gave it up.  It certainly was tempting at first,
  38. though...
  39.  
  40. >I don't know if the interface is incidental or integral to Oberon.  If
  41. >incidental, then, as you say, you can't fault somebody for making a free port,
  42. >and maybe somebody will someday do a better job.  But it looked as if the
  43. >interface was part of the Oberon design, and in that case you have to wonder
  44. if >the rest of the language is done as badly and with as little regard to
  45. >state-of-the-art techniques.
  46.  
  47. This paragraph is difficult to respond to, because in doing so I find myself
  48. putting myself at odds with a generalization of software design that usually
  49. works for me, namely that `form follows function.'  In some sense I suppose
  50. that that is still true of MacOberon (as another poster pointed out, the
  51. nomenclature in the menus simply reflects the fact that those menu items are
  52. neither more nor less than Oberon commands, which have the form
  53. ModuleName.Command and are parsed and activated when Control-clicked on in any
  54. view).  In answer to your question, `Oberon' names both an operating
  55. environment and a programming language, so it can be difficult from a lexical
  56. perspective to differentiate the two.  Oberon in that way follows the trail
  57. blazed by such dynamic environments as Smalltalk and Lisp.  The most obvious
  58. difference between Oberon (the language) and Smalltalk or Lisp (the languages)
  59. is that Oberon is statically typed, a la Algol 60 and its descendents. 
  60. However, Oberon as a language has a definition in the form of a report that
  61. clearly delineates where the language begins and ends.  Oberon is a very small
  62. language--smaller even than Modula-2.  It retains Modula-2's strong notions of
  63. interface and implementation separation and type safety while adding the notion
  64. of type extension in order to plug the major conceptual gap in Modula-2 that
  65. often led to programmers circumventing Modula-2's type safety by overuse of
  66. Modula-2's low-level system access capabilities.
  67.  
  68. In any case, Oberon as a language supports a number of state-of-the-art
  69. language features, such as:
  70.  
  71. Language
  72.   - Strong type checking
  73.   - Modules with type-checked interfaces and separate compilation
  74.   - Type extension, which provides for object-oriented programming
  75.   - Support for run-time type tests
  76.   - Compatibility between all numeric types (mixed expressions)
  77.   - String operations
  78.  
  79. Compiler
  80.   - Generates native code; no separate linking necessary
  81.   - Very fast compilation
  82.   - Can compile directly from edit window
  83.  
  84. System
  85.   - Single-process multitasking
  86.   - Automatic garbage collection
  87.   - Commands: procedures that can be called like programs
  88.   - Dynamic loading (adding modules to a running program)
  89.   - Text as a built-in abstract data type
  90.   - Tools for text and graphics editing, and for program development
  91.  
  92. >Comments are welcome.  I'd be especially interested in hearing whether anyone
  93. >thinks Oberon itself is neat enough to be worth the trouble of learning the
  94. >interface.
  95.  
  96. Let's put it this way: I'm sufficiently leery of C++ to be spending a fair
  97. amount of my all-too-rare free time searching for alternatives.  Having FTP'ed
  98. MacOberon 2.4(4) and installed it, and purchased the two Oberon books that
  99. Computer Literacy had (The User's/Programmer's Guide and the Language book, but
  100. not the compiler design book), I believe that I can safely say that regardless
  101. of what you think of the pseudo-Ceres- workstation interface, the language
  102. itself deserves a look, and perhaps someone can come up with a development
  103. environment based on Oberon that would be more acceptable to the majority of
  104. Macintosh programmers.
  105.  
  106. >--dave
  107.  
  108. Paul Snively Dissolute Wandering Hacker chewy@apple.com
  109.