Subject: Borland's Turbo Pascal upgrades 8. ***** Q: Should I upgrade my Turbo Pascal version? A1: Depends on what version you are using, and for what purposes. If you are using version 3, the answer is a definite yes. There are so many useful additions in the later version, including the concept of units, and a great number of new useful keywords. The only reason that I can think of for using TP 3 is that it makes .com files (which reside in one memory segment only) instead of .exe files. As an accounting and business finance teacher and researcher I've been somewhat surprised to see postings stating that some users still have to program in TP 3.0 because their employer doesn't want to take the cost of upgrading. I find this cost argument ridiculous. How about some consideration for cost effectiveness and productivity? If you are currently using version 4.0, the most important point in considering upgrading is the integrated debugger in the later versions. It is really good, and useful if you write much code. There are some minor considerations, as well. Later versions contain some useful routines which 4.0 does not. I have programmed many of them to be available also for 4.0 in my units collection ftp://garbo.uwasa.fi/pc/ts/tspa3440.zip (or whatever is the latest when you read this). Furthermore, I find somewhat annoying that the executables will always end up in the default directory. If you are currently using version 5.0 the rational reasons for upgrading are needing objects, and a better overlay manager. I have also version 5.5 myself, but switched back to version 5.0 after I had some problems with its linking of object files. (This is a false statement from me, since it turned out that I had made a mistake myself. My thanks are due to bj_stedm@gould2.bristol-poly.ac.uk (Bruce Stedman) for questioning this item). Anyway, I don't use nor need OOP objects (don't confuse linking object files and object oriented programming here). One further point for 5.5. It has a better help function than 5.0, and a few more procedures and predefined constants. The TP 5.5 help includes examples, which can be even pasted into your program. This is handy. The real snag in upgrading (waiving the reasonable cost) is the fact that the units of the different versions are incompatible. If you have a large library of units (as I do) you will have to recompile the lot. This is something that has caused a fair amount of justifiable flak against an otherwise excellent product. A tip. Don't throw away your Turbo Pascal version 3.0 manual, if you have one. It is of use if you resort to the Turbo3 and Graph3 compatibility units. They give you access e.g. to turtle graphics. At the time of first writing this Turbo Pascal 6.0 version had just been announced. I didn't have it yet myself, but I had been (correctly) informed that its units are not compatible with the earlier versions. I now have Turbo Pascal 6.0, and I must say that my reactions have been disappointment and frustration. This is probably partly (but not entirely) my own fault, since Turbo Pascal seems to be headed from a common programming language into a full professional's specialized tool, with many features I don't know how to utilize. The only advancement from my point of view really is the multiple file editing, but I have long had alternative programs for that. If I used assembler (I don't) I am sure that I would find useful TP 6.0's potential to include assembler code as such instead of having to use the cumbersome Inline procedure of entering the assembler code. There is also a Windows Turbo Pascal, as the latest addition to the plethora. Since I don't use Windows at all, I have no further information on it. I think a pattern is emerging here. Rather than being different versions of the same product, the consecutive Turbo Pascals are really different products for different purposes. Version 3.0 was a simple programming language. Version 4.0 extended it into a full scale programming modular platform. Version 5.0 introduced the debugger. And there an advanced hobbyist's path ended. Version 5.5 introduced object oriented programming, which I'm sure is important for the initiated, but personally I just don't need it even if I write a lot of programs. And with the 6.0 we go completely out of the realm of conventional programming into Turbo Pascal visions. And Windows Turbo Pascal is for a different platform, altogether. I find the new integrated user interface of TP 6.0 awkward in comparison to what was used in the 4.0, 5.0, and 5.5 versions. The IDE of TP leaves less free memory than the previous versions. Furthermore TP 6.0 IDE performs frequent disk accesses which cause slowdowns making it virtually unusable from a floppy. And I wonder why Borland didn't at once go all the way to Windows, because that is what 6.0 really is. An intermediate, incomplete step in that direction. This means that we have a 5th upgrade in line with incompatible units. This is aggravating even for a TP fan, isn't it? For information on Turbo Pascal version 7.0 and Borland email contact numbers see ftp://garbo.uwasa.fi/pc/turbopa7/bp7-info.zip. Also see ftp://garbo.uwasa.fi/pc/turbspec/bp7bugs2.zip by Duncan Murdoch. Turbo Pascal 7.0 or more extensively Borland Pascal 7.0 is a full professional's tool, and far beyond for example my moderate programming needs. To list only a few of the features are protected mode programming, handling of large programs, very fast compiling, and a daunting amount of material elbowing its away on one's disk space if one ever has the patience to look through it all. I would use the word "overwhelming". But for a serious programmer this is an impressive and a very worthwhile tool. One should not be misled skipping it because of my comments which were written from a hobbyist's point of view. As a general trend in programs, the well-known columnist John C. Dvorak calls this increasing product complexity trend "featurism" in PC Computing, May 1993. But TP 7.0 (7.01) has some important features also from a hobbyist's point of view. So much so that I have finally succumbed to 7.01 myself. I particularly like the color coding of the keywords, and the TPX version enabling compiling very large programs (utilizing extended memory). A very welcome addition are the new keywords break and continue to exit or recycle a for, while or a repeat loop are. Besides they make using the outcast goto statements virtually unnecessary. A2: From: dmurdoch@watstat.waterloo.edu (Duncan Murdoch), Newsgroups: comp.lang.pascal. Included with Duncan's kind permission. [Duncan is one of the most knowledgeable and useful contributors to the comp.lang.pascal UseNet newsgroup (later replaced by comp.lang.pascal.borland for TP)]. One other reason: there's a bug in the code generator for 4.0 and 5.0 that makes it handle the Extended (10 byte) real type poorly. The code generated makes very poor use of the 8 element internal stack on the coprocessor, so that expressions with lots of operands like e1+e2+e3+e4+e5+e6+e7+e8+e9 always fail, if all the e's are of type extended. (The generated code pushes each operand onto the stack, then does all the adds. It's smarter to push and add them one at a time.) This makes it a real pain translating numerical routines from Fortran, especially since constants are taken to be of type extended. The bug was fixed in 5.5. A3: From: Bengt Oehman (d92bo@efd.lth.se): A difference between v4.0 and v5.5 is that you can calculate constants in tp55, but not in 4.0. I see this as a big advantage. For example: CONST MaxW = 10; MaxH = 20; MaxSize = MaxW*MaxH; { or } MaxX = 100; HalfMaxX = MaxX DIV 2; cannot be compiled with 4.0. --------------------------------------------------------------------