home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / sys / mac / oop / misc / 16 < prev    next >
Encoding:
Text File  |  1992-11-17  |  4.5 KB  |  106 lines

  1. Newsgroups: comp.sys.mac.oop.misc
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!caen!batcomputer!munnari.oz.au!bruce.cs.monash.edu.au!tim
  3. From: tim@cs.monash.edu.au (Tim Shimmin)
  4. Subject: Re: trying to remember...
  5. Message-ID: <tim.722074104@bruce.cs.monash.edu.au>
  6. Sender: news@bruce.cs.monash.edu.au (USENET News System)
  7. Organization: Computer Science, Monash University, Australia
  8. References: <1992Nov17.162711.4166@umbc3.umbc.edu>
  9. Date: Wed, 18 Nov 1992 08:08:24 GMT
  10. Lines: 94
  11.  
  12. gseidman@math14.math.umbc.edu (gseidman@math14.math.umbc.edu) writes:
  13. >I have been trying to remember what it was called, but there was a
  14. >programming utility (pro-something? I don't recall) reviewed in a
  15. >professional math journal..... 
  16.  
  17. Could you be meaning Prograph ?
  18. Prograph is an object-oriented language written using graphical 
  19. icons and links.
  20.  
  21. Object-oriented wise:
  22.  - single inheritance
  23.  - hierarchy displayed graphically as a tree
  24.  - has a methods window and data window
  25.  - it is not quite your typical object calling system:
  26.       Normally one must specify the object first and then the message
  27.       such as "object.message arguments".
  28.       In prograph, you CAN do it that way but you can also just mention the
  29.       class the method is in: "Class:message arguments" and this can
  30.       be done anywhere and the arguments do not have to include an
  31.       object from the "Class". I.e. it can be more like a call to a
  32.       procedure in a module/package.
  33.  
  34. Basic theme:
  35. - code is a graph with nodes as operators and arcs as data flows. Data
  36. flows in at the top thru all the nodes and out the bottom.
  37. This is the dataflow model where control flows by operations waiting for
  38. their inputs before outputting. Since program is represented by a graph
  39. structure it isn't clear in which order operations will actually proceed
  40. unless one hits the space-bar and the next node is hightlighted.
  41. However, operations can be explicitly ordered by attaching a special
  42. "synchro" link.
  43.  
  44. Data types:
  45. - standard primitives char, int, string,...
  46. - list (like lisp) BUT no arrays
  47. - classes
  48. - access to Mac Types -> so can allocate dynamically
  49.  
  50. Compatability with Mac:
  51. - it does this very well
  52. - support for all the system 7 stuff
  53. - uses standard Mac windows and Menus
  54.  
  55. User Interface Programming:
  56. - quite good
  57. - interface objects are represented in simple class structure
  58. - has a good old graphical interface builder where one chooses the type
  59. of widgets one wants to place - this can be extended with the
  60. programmers own subclasses
  61.  
  62. Speed:
  63. - when running the interpreter I found that it was quite reasonable
  64. except when I wrote some interactive graphic stuff and then it was a bit
  65. slow. I then compiled it all and the code was a lot faster.
  66. - the compiled code runs faster (surprise:-) and worked ok for me.
  67. However it compiles all the code in one hit because all the classes are
  68. in the one file - which makes compilation slow.
  69. - I did have trouble with saving my code/prographs. In an earlier
  70. version it could take ages to save my program ! With the newer version
  71. one can compact the code (graphics) and this makes things reasonable.
  72.  
  73. Learning curve:
  74. - although I had done object oriented programming before (Think C &
  75. Smalltalk) it took me quite a while to get use to this style of
  76. programming. Handling conditionals (if then) is rather odd and takes a
  77. bit of thinking sometimes as it is non-conventional. Instead of if-then
  78. or case-stmt one tests a condition and decides whether to go on to the
  79. next case which is in another window - thus all alternatives are in
  80. separate windows !
  81. Once you get used to it by writing a few of your own designed programs
  82. and not just the tutorials - it's quite easy.
  83.  
  84. Good features:
  85. - there are anotations for operation inputs which allow one to go thru
  86. an entire list, divide a list up depending on a boolean function, etc.
  87. - if one thinks a hunk of code should be abstracted into a produre then
  88. one just selects it all and issues a command - it will be stored in a
  89. procedure and all the code of nodes is now represented by just one node.
  90. This is very handy. The procedure can be set as just local or a class
  91. method.
  92. - seeing all the code,classes,GUI and heirarchy in graphic form is
  93. rather neat ! 
  94.  
  95. Contact:
  96. - TGS Systems
  97.   2745 Dutch Village Road, Suite 200
  98.   Halifax, Nova Scotia, Canada B3L 4G7
  99.  
  100. Any specific questions that you have, I'd be happy to answer.
  101. --
  102. ------------------------------------------------------------------------
  103.           Name:        Tim Shimmin 
  104.           Net Address: tim@bruce.cs.monash.edu.au
  105. ------------------------------------------------------------------------
  106.