bart@reed.UUCP (Bart Massey) (08/06/86)
Well, I've made fairly extensive use of both the 1.1 TML and Beta MPW compilers. It's hard to talk about them authoritatively though, since neither is the final version. If TML really does support full object Pascal, seperate units, and good code generation in the 2.0 release, it's practically a different product. And I have no idea how long it will be before Apple releases MPW. But here's a few comments on the two... TML: I was very impressed with this compiler, especially as a basically one-person job done quickly. Nothing really important was left out, and I used it to write several good-sized programs. There were a few annoying features, most of which have been presumably fixed in the 2.0 release, so I won't go into it... The lack of units and the poor code generation were actually my two biggest objections to this compiler, and they're apparently gone now -- I'm sure the upgrade will be well worth $25.00, even if you only use it for a couple of months before the release of... MPW: This is pretty much the definitive language standard for the Mac -- just the name Apple on it alone would probably guarantee that, so it's good to see that they've done a *very* nice job of it. The Pascal compiler supports everything I've ever seen Pascal compilers support, generates reasonable code, and is well adapted to building obscure things (CDEFs, frinstance). The biggest drawbacks right now are the compile-time error checking and recovery, which will hopefully be fixed in the release version, and the "speed" (yawn) which I suspect won't be. On the plus side, any time you lose over TML on a shortish program is gained back by not compiling all the interfaces every time... :-) (or is that fixed too?) And the error checking and recovery aren't that bad -- I was just annoyed by such things as the compiler not noticing that I had assigned no return value to a function (understandable, but not too hard for the compiler) and undeclared identifiers generating cascades of errors (not so easy to understand -- as near as I can tell, the compiler never tries to figure out what type a variable was supposed to be, or sets it to an infinitely compatible type, either one of which would be acceptable -- thus you get an error on *every* reference to the identifier...). But the best thing about the compiler is the surrounding Mac Programmer's Workshop. It's got a make utility (which unfortunately does all its work before anything is compiled, thus allowing the possibility of phase errors -- no real workaround, as the manual says, given no multitasking), a *nice* standalone linker, an assembler, a disassembler, a resource compiler, a resource decompiler, a librarian, a resource file consistency checker, and more!* All of which are callable from the MPW "shell" which is very Unix-shell-like (but single-tasking, of course :-) and supports scripts, regular expressions, etc. In sum, both Pascals are complete, robust, and *very* pleasant to work with. For projects of enormous size, I would definitely wait until MPW comes out -- it's hard to imagine using anything else once this is available. On the other hand, for small projects, TML2.0 may even be superior -- MPW doesn't fit very comfortably (read "barely works") on 2 DS drives, and there's some overhead associated with its development process... and, sight unseen, TML is definitely worth the upgrade price in my mind. Besides which TML code ports *very* readily -- a friend and I got up a TML DA in literally 15 or 20 minutes -- not bad for a *DA*! You know, it's hard to believe that, one year ago, I had the choice of writing Pascal in the infinitely obnoxious "Lisa Workshop", using Rascal, or paying $200 minimum for a C compiler with an atrocious interface to the Mac. Or I could keep using Turbo Pascal on my IBM-PC (what an icky machine! (but Turbo wasn't bad -- whatever happened to their Mac compiler??)). Happy times indeed for a confirmed Pascalite... Bart Massey ..tektronix!reed!bart * I couldn't resist the "more": a Pascal prettyprinter, a Pascal cross-referencer, an optional C compiler, the shell is built with amazing cleverness to double as a *very* effective program editor (something one has to see to believe, I suppose -- I know I wouldn't have), MacApp (a way to use object Pascal to put up applications *fast*), magic beans that will grow a beanstalk all the way to the sky (just kidding about the beans, the rest is honest-to-someone true)...