tingo
Veteran Member
@CP/M User: why are you formatting the text of your messages to have a different font / style than the default? Here (on my side) it comes out as "extra small" which makes your messages hard to read.
@CP/M User: why are you formatting the text of your messages to have a different font / style than the default? Here (on my side) it comes out as "extra small" which makes your messages hard to read.
Well I don't know, that post above this one looks completely normal to me, but the post you edited (previous page) now uses a gigantic font..
-Tor
Well, your posts (since last time) look all right now.
There were multiple C compilers that fit on early microcomputers. BDS could fit in 32K and I think some implementations of Small-C were similarly sized. I don't know of any early Pascal systems that worked with less than 64k. Certainly UCSD Pascal which I used the most was a tight squeeze on a 64k CP/M machine, was slightly better self-booting on a 64k system but was happiest when 128kB could be devoted to the P-system code.
Turbo Pascal would actually run on a CP/M-80 system with as little as 48Kb of memory and only took up 34Kb of disk space for the IDE. This included the standard library, editor and compiler. Its small size was great because it often meant that you could edit, compile and run your programs all from the same disk. Another advantage that Turbo Pascal had, from v3.0 onwards, was support for overlays, so with careful planning your application size was only limited by the capacity of the disk you were running it from. I have written more about this in an article: Turbo Pascal: A Great Choice For Programming Under CP/M.
It's just a pity it's only possible to generate CP/M programs with it.
If you keep away from operating specific commands and machine language then the programs will also compile on TP for CP/M-86 and PC/MS-DOS. If you do need machine language then you can just create an include file for each architecture. Finally if you need more operating systems such as Windows, Linux, Mac OS, the BSDs, etc, then FreePascal will compile the code with few alterations needed.
Not that I was around at the time, but the impression I've always gotten was that by the time Pascal had been extended enough to be useful for anything, it had already gotten an inescapable reputation for not being useful for anything. Certainly TP was good enough to be a popular development platform in the days before high-quality C compilers for personal computers were available at anything less than institutional prices, but original-flavor Wirth has so many missing features and outright misfeatures (only an academic could come up with something as demented as making the size of an array part of its type) that it had already lost the battle for the hearts and minds of programmers by that point.
One of the limitations of Pascal as originally defined by Wirth was those fixed-length arrays.. you couldn't write a function to take a variable-sized array (including strings) as a parameter and do something, like e.g. printme (anystring);
Thus various implementations of Pascal extended the original language to support this and make it more useful. So Borland's Turbo Pascal is not just the name of the compiler, it's also the name of the language. The Pascals I used on some minicomputers used their own variant extensions to achieve the same.
type string : array[1..11] of char;
C handles strings in a different way by letting all string handling functions look for a binary zero which indicates where the string ends. Technically all functions handling strings are passed an address to the first element, instead of the whole string. This goes for all array types, not only char arrays (strings).
I work at a company where Delphi is still used for the majority of projects.
I and several others are of the opinion that Delphi is a sinking ship, and we should abandon it in favour of better supported solutions.
The biggest problem with Delphi is that it is an island. That is, we often have to interface with systems from third-party suppliers, and they generally supply only headers and libraries for C/C++. Which means that we have to invest a lot of effort into making our own interoperability shims with Delphi everytime.
It gets even worse when customers ask us to support their hardware, eg Android or Linux devices.
With C/C++ or C#, you simply don't have most of these problems. Then there's the issue of Embarcadero being somewhat of a Don Quixote. They are a small company fighting against all these CPU architectures, trying to develop compilers. There's no way they can beat the performance and reliability of giants like Microsoft or Intel.
By rewriting key components in C/C++ we can use better compilers, and get significant performance boosts.
Since Turbo Pascal, Pascal can literally do everything C can do. Most of the time it does things simpler, but sometimes more complicated.
A lot of C users I've known over the years liked to cite how easy it is to type /* compared to BEGIN. Having typed BEGIN possibly a million times over the years, I can honestly say I can type it faster than /* or {.
High Speed Pascal for Amiga is a TP-alike that even outshines TP! Free Pascal isn't bad, but it's a far cry from the speed and efficiency of those two.
I will say, about the worst programming experience I can remember was Instant Pascal on the Apple //. It was anything "instant".
If I'm not writing 6502 assembly, I'm writing Pascal. In fact one of my long term goals is to write a TP-alike compiler that is more streamlined than TP from a syntax point of view. My original intent was to have an AmigaOS 4-native Pascal language with some improvements I've just always wanted to make. But since I can't run OS4 anymore I still intend to write it, someday.
I think the biggest factor that killed Pascal was when Sof-tech took over UCSD Pascal and increased the prices while letting the product stagnate. That removed Pascal as a major teaching language from schools. Then there was long lag before Turbo Pascal 4 came out in late 1987. The other Pascal compilers were dreadful and slow while early Turbo Pascal could only handle very small projects. After TP 4, Borland kept shooting themselves in the foot with multiple clunky object oriented redesigns causing much of the market to move to competitors.