78

My understanding is that in the 1980s, and perhaps in the 1990s too, Pascal and C were pretty much head-to-head as production languages.

Is the ultimate demise of Pascal only due to Borland's neglect of Delphi? Or was there more, such as C being a more robust language? If the latter, what were the perceived advantages of C over Pascal?

I'm interested in historical facts and observations one can back up, rather than likes and dislikes.

11
  • 12
    If you basically only have one bankrupting company that supports the language you are working with, it definitely doesn't help (I'm talking about the pre-.Net Borland). Commented Oct 18, 2011 at 8:40
  • 53
    One word answer: Unix.
    – SK-logic
    Commented Oct 18, 2011 at 10:52
  • 4
    Huh. What is C? Commented Sep 4, 2012 at 11:16
  • 11
    ultimately pascal lost because it uses 1-based strings.
    – Pieter B
    Commented Sep 4, 2012 at 11:30
  • 7
    @jk: Not to mention that in ISO Pascal, strings could have any length, but strings of different lengths had different types. To uppercase any string, you'd need 256 functions. To append two random strings, you'd need thousands!
    – MSalters
    Commented Oct 5, 2012 at 13:12

10 Answers 10

50

Pascal has lost the battle mostly because of:

  • Verbosity (if ... then begin ... end, var A: array[0..15] of Integer)
  • Mutually incomprehensible dialects and the official standard
  • Less than impressive object-oriented extensions
  • The most successful and practical dialect - Turbo Pascal - has never been ported to platforms other than DOS/Windows. Plus Borland never opened the sources of the compiler.
  • Pascal's "last hope" - Delphi - was positioned by Borland as a database development platform targeted at corporate environments. This was an unfortunate marketing move (made by marketing people I suppose), because creative engineers hate both databases and corporate environments. Then the failure of Delphi for Linux, Kylix.
  • Apple switched to C and subsequently to Objective-C and thus it killed Pascal as an OS language
25
  • 20
    Apple's switch to Objective-C came long, long after it stopped using Pascal. The original Macintosh operating system and libraries were written using Pascal, but Apple offered good support for C soon after the Mac's introduction, and had switched over to C by the early 90's. Apple adopted Objective-C when it acquired NeXT, which happened after the return of Steve Jobs in the late 90's.
    – Caleb
    Commented Oct 18, 2011 at 13:49
  • 40
    I don't think verbosity is a relevant argument. As code is read more than written verbosity has benefits.
    – johannes
    Commented Oct 18, 2011 at 18:21
  • 15
    Isn't verbosity exactly what is advocated in languages today (python vs. perl)?
    – Rook
    Commented Oct 18, 2011 at 20:46
  • 8
    I don't think the verbosity was a cause, on the contrary it is one of Pascal's strengths.
    – user29079
    Commented Oct 19, 2011 at 8:55
  • 10
    This is incorrect. Turbo Pascal was widely successful. The major problem was you could only use it on DOS/Windows.
    – user1249
    Commented Sep 4, 2012 at 10:55
51

C is the base of Unix. In the 80s and 90s, Unix got more and more attention. Today some flavour of Unix is in your smartphone.

19
  • 19
    Not only UNIX. Windows and its kernels were written mainly in C. Not to mention C++ coming up strong, which also must have made C at least a bit more popular. Commented Oct 18, 2011 at 10:06
  • 2
    @SK-logic It came out in 1984. I wouldn't say C had taken over the world by then. You had Smalltalk, Pascal and others used pretty much everywhere (not to mention COBOL). Commented Oct 18, 2011 at 11:08
  • 3
    @Yam: Unix and C were already widely spread in the 80's. When I studied at University (beginning of the nineties), Unix and C was "the platform" every serious developer would have liked to work on. Unix was implemented in C so there would have been no Unix without C. Smalltalk, Pascal and COBOL did not play such an important role.
    – Giorgio
    Commented Oct 18, 2011 at 12:37
  • 2
    @Giorgio Indeed after Dennis Ritche and Brian Kernighan had made C stable they re-wrote UNIX in C, hence making it much easier to port to other types of machines. Commented Oct 18, 2011 at 13:23
  • 2
    @Steve314 Good points. However, as far as I could see, the earlier Windows kernels were developed with Assembler as well. In Assembly, a calling convention is by definition not enforced in any way (hence the word "convention"). So it seems like the fact that it got the name "Pascal calling convention" doesn't necessarily mean that it was pioneered by the inventor of the Pascal programming language, or that Windows was developed in Pascal. EDIT: I just read your recent comment. I guess we don't have anything intelligent to add here at this point. :) Commented Oct 18, 2011 at 14:37
43

The essay Why Pascal is not My Favorite Language by Brian W. Kernighan covers the main points of critique. (PDF)

C is much more versatile and extendable. Some people even found out how to do (a kind of) object-oriented programming with C! Also, the inline assembler and other low-level features made it an important language for systems programming.

8
  • 10
    If I remember well, Turbo Pascal (my first programming language, by the way) supported in-line assembler. I've seen Kernighan's essay before. But didn't his criticism outdate soon? Commented Oct 18, 2011 at 10:38
  • 2
    @Morawski, TP is from 80s, C is from 70s. It came more than a decade late.
    – SK-logic
    Commented Oct 18, 2011 at 10:55
  • 10
    @Morawski: Moreover, Turbo Pascal was only one implementation of Pascal. The standard described a language that wasn't particularly useful, so implementors had to put in their own little extensions so people could write useful programs. The fragmentation was likely an issue here. Commented Oct 18, 2011 at 14:49
  • 1
    @SK-logic: PASCAL was in commercial use (defense industry) in the mid-to-late 1970s. BBN was using it for the Key Distribution Center for an experimental network crypto system. (They went through two major design iterations that I knew of, the first using raw PASCAL, the second using PASCAL plus a multitasking kernel.) TI-DSEG did a pilot project in 1988, writing a 6DOF simulation in PASCAL. They guys who did it said that the maintainability was SO much better than FORTRAN that they were happy to live with the slight performance hits. Commented Feb 6, 2013 at 10:44
  • 2
    That article is from long before the question became relevant, and treats dialects from way before it became relevant. Not relevant. Commented Oct 31, 2018 at 16:02
25

Although it wasn't the exclusive use, Pascal was designed for teaching programming, not to be actually used as a primary language.

Delphi and Object Pascal changed that. But at that time, it was already to late.

18
  • 4
    However BASIC wasn't designed for professional purposes either, yet it is alive and kicking Commented Oct 18, 2011 at 8:48
  • 12
    @Morawski: Really? Apart from VB?
    – user4234
    Commented Oct 18, 2011 at 8:51
  • 5
    @Let_Me_Be I remember quite a few Windows applications written in Borland (Object) Pascal or Delphi. It was much easier than writing them in C/C++. I think that C# and Java serve this domain now.
    – quant_dev
    Commented Oct 18, 2011 at 9:55
  • 11
    Pascal quite soon became a real general-purpose language. Nobody had to wait for Delphi. I don't see how teaching (or being able to teach) many people a programming language when they're young entails its ultimate demise. Quite the opposite. Commented Oct 18, 2011 at 10:04
  • 11
    @Morawski The only reason BASIC (well, VB) is still talked about and used today is that Microsoft's first product was a BASIC interpreter (pretty sure it wasn't a compiler) and they've kept shoving it down our throats. If they had picked Pascal instead, we'd be talking about VP.Net. The world would also suck less. Commented Oct 18, 2011 at 11:36
20

I don't think C prevailed over Pascal. For the majority of programmers, Java prevailed over Pascal. The category of programmers who used to program in Pascal, would now pick Java (or C#) for the same job. Those who used to program in C stuck with C (and C++).

The demise of Pascal is IMHO mainly caused by Borland sticking to it's GUI way of working, while its customers moved on to the Web. Borland never had a really attractive offer for server-side development. Only in the last few years, with Delphi dead for all practical purposes, have those who stuck with Delphi moved on to C#. C/C++ has always been a different crowd than the Pascal/Java/C# crowd I think, with the C(++) guys much more technical/low-level in their focus.

5
  • 23
    Borland's demise was long before the need for web development. Their mistake was simple: They forgot about what made them a leader in the first place (cheap, fast, efficient compilers available to the masses) and jumped into expensive, corporate tools (where Microsoft and others already had a good head start.) Borland's traditional crowd had to move to something else. Commented Oct 18, 2011 at 16:02
  • @MetalMikester, thats some Grade A truth right there. They tossed aside the small, independent developers while chasing the 'big money' in corporate sales. And unfortunately, there's still some of that left, even with new owners. Commented Oct 18, 2011 at 18:07
  • that said, they had to deal with their lack of a good option for webapplication development at the same time (stemming from the long insistence on client/server everything in their product line).
    – jwenting
    Commented Oct 5, 2012 at 10:23
  • 3
    Java and C# have C syntax and are very alike with C, rather than Pascal... also Java was addressed to C++ programmers.
    – Random42
    Commented Jan 24, 2013 at 9:30
  • 1
    C totally prevailed and is alive and kicking on small embedded (microcontrollers), running on raw iron. Vast majority of serious development for small embedded is done in C. It's a flavor considerably different from ANSI C, full of __register and __interrupt and assignment of magic numbers to pointer variables, something that would leave a typical desktop app developer completely clueless, but it's the absolute industry standard. Meanwhile, I don't think I've ever seen Embedded Pascal.
    – SF.
    Commented Aug 18, 2020 at 14:18
13

To dumb it down: C is a portable assembler, PASCAL is an educational language.

This section on the wikipedia covers it well in fact.

edit:
It would seem, that some here misunderstand my answer. Or actually rather the question.
This question is about popularity. And the reason why C is ultimately more popular than PASCAL is, that one was designed and marketed as a portable language runnning close to the metal, while the other one was designed and marketed as an educational language, enforcing a lot of safety and clarity.
Ultimately, it doesn't even really matter, whether either language failed the goals set for it, or made unanticipated achievements. And anybody trying to deduce the difference in popularity from superiority of C over PASCAL is just plainly wrong.
The key to this question lies in history and the hysteria involved in it.

21
  • 2
    But even the Wiki entry you are linking to admits that many major development efforts in the 1980s, such as for the Apple Lisa and Macintosh, heavily depended on Pascal (to the point where the C interface for the Macintosh operating system API had to deal in Pascal data types). Commented Oct 18, 2011 at 8:47
  • 1
    @TamásSzelei: "I don't think it has any meaning or truth"? Why not? It is assembler written without resorting to hardware instructions. Specifically, operators like ++ and -- are direct features of the PDP-11 instruction set. The "pre-increment" and "post-increment" subtlety is entirely a feature of the PDP-11 and the semantics are derived from the hardware.
    – S.Lott
    Commented Oct 18, 2011 at 12:12
  • 4
    @S.Lott Great, so it's a portable PDP-11 assembler. What is the relevance now? Why should I care about PDP-11 in 2011? C is not a portable x86 assembler by any means.
    – quant_dev
    Commented Oct 18, 2011 at 12:19
  • 1
    And Lisp is a language for AI research, so what?
    – mojuba
    Commented Oct 18, 2011 at 13:12
  • 1
    @TamásSzelei: It is a cargo cult argument. This question is not about whether PASCAL or C is better, but which is more popular, which is exactly about cargo cult in the first place.
    – back2dos
    Commented Oct 18, 2011 at 14:56
7

During the 70s and into the early 80s, C compilers were relatively easy to come by for personal computers, although most only did a subset of C (which is why you'll see so many different "tiny C" compilers adverts in the older magazines). Pascal was a larger more cumbersome language back in the days when only the wealthiest computer hobbyists had hard drives (and a 5 meg hard drive was several hundred dollars). For the Apple 2 (my first computer, and it wasn't even a "plus"), running Pascal required purchasing an extra memory card (it needed 64k of RAM!) and took several floppies to load up, while "tiny C" compilers fit on a single floppy (and could get by with 16k of RAM).

Pascal was taught in computer science curricula, while C was mostly self-taught (sometimes taught in electrical engineering curricula). Pascal got a reputation among the cowboy coders for being a "bondage and discipline language", which I thought was undeserved as they never met ADA.

The major drivers of Pascal in the 80s were Apple (because the APIs used Pascal calling standards) and Borland. Borland's "Turbo" compilers were probably the best available ones in the marketplace, and the "like a book" license made them a lot more popular than companies with more vicious licensing.

Borland lost their lead in the development market when Microsoft hired away their lead developers and project managers (such as Hejlsberg, Gross and more than 35 others), eventually developing .NET and Visual Studio. Borland and Microsoft settled the lawsuit a couple years later, but Borland never recovered from the loss. In my opinion, Delphi started withering at that time (as the folks who gave it focus and drive were hired away), and the change in CEO at the same time took Borland away from a compiler company into an ALM (application lifecycle management) company, changing their name to Inprise a couple years later. The ashes of Borland are now owned by Micro Focus.

3
  • Micro Focus? When did that happen? I thought it was owned by Embarcadero (whoever they are), for the past few years at least. If Delphi is owned by a company that's "famous" for it's COBOL tools...
    – user8709
    Commented Oct 18, 2011 at 23:07
  • @Steve314, The "codegear" division was sold to Embarcadero in 2008, and Micro Focus bought the rest of Borland in 2009. en.wikipedia.org/wiki/Borland#Later_Borland_years
    – Tangurena
    Commented Oct 19, 2011 at 13:45
  • 1
    OK, but Borland developed compilers, libraries and IDEs (Delphi, the Builders) and it developed some blah blah blah that no-one ever cared about. Are you telling me that someone cared enough about the blah blah blah to cremate it?
    – user8709
    Commented Oct 19, 2011 at 14:12
6

Holy smokes this is a one sided load of hooey, where are all the folks who started out on this site who had Delphi as their favorite language?

Nearly everyone mentions Borland and 2/3rds of the folks consider Delphi to have kicked the bucket. Well, sorry folks, Embarcadero bought the CodeGear unit of Borland a few years ago (for money, not charity) and they've been doing some pretty amazing things, amalgamating some pretty amazing tools into their pretty amazing IDE and creating a pretty amazing platform for cross platform development IN OBJECT PASCAL. Not to mention Lazarus and FreePascal on the open source side of things.

So, if this is a historical question why C prevailed over Pascal, then OK, that's an acceptable claim to start a question. But authorship of code in Object Pascal has been growing, I don't know that the TIOBE index means a whole lot for it, but it should be clear that people are still writing code in Object Pascal and interest spikes whenever Embarcadero releases new tools, therefore actual humans interested in writing new (not just maintaining old) code are interested in Delphi.

I'm not sure you can say the same for anything related to C.

4
  • 3
    It should be dead. The only people who still have a reason to use it are those like me, who are stuck with it because of lots of existing VCL apps. The whole Delphi/C++ Builder IDE has decayed from state of the art into a crappy, buggy mess during the past 5 years. Help files and documentation are non-existant. The debugger is plain embarrassing. If you put the IDE aside, there is really no reason to use the Object Pascal version over C++, unless you need backwards compatibility. The main advantage for C++ in this case is that it will allow you to port your code to escape the crappy IDE.
    – user29079
    Commented Oct 19, 2011 at 9:05
  • 1
    Regarding C, first of all it is the completely dominant language in the whole embedded sector and all new tools there are made for C. The whole of Windows and Linux is C. All smart phone fluff is written in C flavours. C or C++ dominates in almost every area of application where programming is used. The C++ standard is getting a major update. The new safe MISRA subsets of both C and C++ are successful for embedded apps, the former turning into industry de-facto standard. So no... there's no interest spikes, there is a constantly high interest.
    – user29079
    Commented Oct 19, 2011 at 9:14
  • 2
    @Lundin, are you kidding, I've been using Delphi 7 for the past 4 years, finally updated to 2009 and working in XE2 as well. Finally I don't need to restart the IDE every 5 or 6 builds to keep my breakpoints. Futhermore, Embarcadero has created a way to use Delphi Code for Android and iOS programs which, is new, but is pretty cool, the advantage is that it's wholly managed by a privately held company so the improvements actually make it into the hands of the developers. Commented Oct 19, 2011 at 12:19
  • 1
    Although I'm not really a PC programmer, I've been using Builder to and fro since the mid 90s. It was steadily improving until somewhere around where it turned Codegear, then some gear apparently broke, because it is worse now than it was 10 years ago. Anyway, this is off-topic, since Delphi/Builder started to die out long before the Codegear/Embarcadero fiasco.
    – user29079
    Commented Oct 19, 2011 at 12:25
2

My take is that C and major languages derived from it, C++, Java and C#, were embraced by the largest software companies, such as Microsoft and Sun/Oracle, and across the various development stacks. As a result, it became the 'mother language' of Windows, Apple OS's and Unix.

Pascal, in spite of Borland's best and often misguided efforts, didn't achieve that level of market penetration.

5
  • 3
    This seems to beg the question: why did C take over in the largest companies? MacOS started with Pascal, and became more C-friendly. What was the reason for that? Commented Oct 18, 2011 at 14:44
  • 1
    @DavidThornley - I think a lot of it had to do with hiring top notch experienced programmers. C, blended with assembly, was the language of choice for mainstream PC applications starting from the mid-1980's. By adopting a C base, it made hiring of skilled programmers much easier and cheaper (no retraining, etc).
    – jfrankcarr
    Commented Oct 18, 2011 at 17:28
  • 3
    But you've just pushed the question back one layer. Why did top-notch experienced programmers switch? Why was C the language of choice? Knuth did his first literate programming stuff in Pascal, then switched to C. Why? Finding out exactly who led the switchover may be useful, but the question asks for reasons. Commented Oct 18, 2011 at 19:38
  • I worked at two software companies back in the 80's, not in a programmer role but a support role. Based on what I can recall, I suspect that the transition from MASM to C was easier for those already deep into MASM programming. I remember a dislike of Turbo Pascal, which the programmers I worked with called a toy language, and you didn't want to get them started on QuickBasic. I learned MASM and C first because of that peer pressure. That could also be a factor although that doesn't get to the actual genesis of it.
    – jfrankcarr
    Commented Oct 18, 2011 at 19:58
  • At the end of the 80-ies, beginning of the 90-ies, C was already very popular. You could find a compiler as a standard module in any UNIX implementation (and UNIX was THE operating system most programmers wanted to work on). I am not saying that it was more popular than Pascal, but it was very popular. So C++, Java, and C# are popular because C was, not the other way around.
    – Giorgio
    Commented Jan 23, 2013 at 11:17
1

Pascal only ever became popular in a single rather limited environment PC/DOS.

Even then there were as many MicroFocus COBOL applications running on PCs as there were pascal applications.

C was the basic of the UNIX operating system and all the MS/Windows operating systems.

The combination of efficient execution on limited hardware, and, native access to the underlying OS and GUI libraries were probably the main reasons for C's success. Pascal never really hacked it on windows, and, Delphi arrived too late to make a difference.

3
  • I think that your comment ".. and all the MS/Windows operating systems" may be factually incorrect. Windows was originally designed and coded in PASCAL. From en.wikipedia.org/wiki/Talk:X86_calling_conventions: "Just thought I would weigh in here. I looked up the __pascal keyword in the Watcom C/C++ User's Guide, and its clear that: __pascal calling convention was used for OS/2 1.x and Microsoft Windows 3.x APIs " Commented Jan 23, 2013 at 17:08
  • @JohnR.Strohm Calling conventions and implementation languages are not necessarily one and the same. Microsoft had been using C likely for some time already in 1993 (Windows 3.1 was released in 1992). Source of a kind
    – user
    Commented Jan 24, 2013 at 9:56
  • IIRC in the early 80s Microsoft used Xenix a lot internally, and probably got started on C this way. That, and (Turbo) Pascal after all was the killer product of a dangerous competitor, Borland. Back then the difference in size between Microsoft and other large software companies such as Lotus, Borland... wasn't enormous yet.
    – wazoox
    Commented Sep 3, 2014 at 14:42

Not the answer you're looking for? Browse other questions tagged or ask your own question.