Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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 bad luck or perhaps something inherently wrong with Pascal (any hopes for its revival?).

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

share|improve this question

put on hold as primarily opinion-based by MichaelT, GlenH7, Kilian Foth, jwenting, Bart van Ingen Schenau yesterday

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

9  
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). –  Let_Me_Be Oct 18 '11 at 8:40
40  
One word answer: Unix. –  SK-logic Oct 18 '11 at 10:52
3  
Huh. What is C? –  Lieven Keersmaekers Sep 4 '12 at 11:16
7  
ultimately pascal lost because it uses 1-based strings. –  Pieter B Sep 4 '12 at 11:30
6  
@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 Oct 5 '12 at 13:12

10 Answers 10

up vote 30 down vote accepted

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
share|improve this answer
12  
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 Oct 18 '11 at 13:49
24  
I don't think verbosity is a relevant argument. As code is read more than written verbosity has benefits. –  johannes Oct 18 '11 at 18:21
9  
Isn't verbosity exactly what is advocated in languages today (python vs. perl)? –  ldigas Oct 18 '11 at 20:46
4  
@mojuba perhaps. Or it could be the influence of C. They don't call them C-like languages for nothing. Or maybe something else entirely. The age old adage that is most appropriate here is "correlation is not causation". –  System Down Oct 19 '11 at 16:03
7  
This is incorrect. Turbo Pascal was widely successful. The major problem was you could only use it on DOS/Windows. –  user1249 Sep 4 '12 at 10:55

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.

share|improve this answer
    
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 " –  John R. Strohm Jan 23 '13 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 –  Michael Kjörling Jan 24 '13 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 Sep 3 at 14:42

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.

share|improve this answer
    
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 Oct 19 '11 at 9:05
    
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 Oct 19 '11 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. –  Peter Turner Oct 19 '11 at 12:19
    
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 Oct 19 '11 at 12:25

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.

share|improve this answer
    
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... –  Steve314 Oct 18 '11 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 Oct 19 '11 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? –  Steve314 Oct 19 '11 at 14:12

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.

share|improve this answer
14  
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. –  MetalMikester Oct 18 '11 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. –  GrandmasterB Oct 18 '11 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 Oct 5 '12 at 10:23
1  
Java and C# have C syntax and are very alike with C, rather than Pascal... also Java was addressed to C++ programmers. –  m3th0dman Jan 24 '13 at 9:30

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.

share|improve this answer
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). –  Konrad Morawski Oct 18 '11 at 8:47
    
@Morawski: Despite the fact that Apple may have undergone tremendous development efforts at the time, and may have created products largely ahead of alternatives, their market share was titchy. Neither Apple or PASCAL is bad (in fact PASCAL was my first language and I still like it). But both failed to meet the needs of the industry's reality. –  back2dos Oct 18 '11 at 9:01
3  
@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 Oct 18 '11 at 12:19
1  
And Lisp is a language for AI research, so what? –  mojuba Oct 18 '11 at 13:12
1  
@mojuba: "the original purpose of a language may or may not be relevant" - that's something I totally agree with. My point was, that in this case it was relevant. ;) –  back2dos Oct 18 '11 at 15:31

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.

share|improve this answer
2  
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? –  David Thornley Oct 18 '11 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 Oct 18 '11 at 17:28
2  
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. –  David Thornley Oct 18 '11 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 Oct 18 '11 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 Jan 23 '13 at 11:17

The Essay Why Pascal is not My Favorite Language by Brian W. Kernighan covers the main points of critique.

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.

share|improve this answer
7  
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? –  Konrad Morawski Oct 18 '11 at 10:38
1  
@Morawski, TP is from 80s, C is from 70s. It came more than a decade late. –  SK-logic Oct 18 '11 at 10:55
8  
@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. –  David Thornley Oct 18 '11 at 14:49
    
@SK-logic, PASCAL was first defined in 1970, and the first compilers were available then. Turbo Pascal showed up ca. 1984, after Jim Tyson went bankrupt when demand for JRT Pascal FAR outstripped his ability to deliver product. Turbo Pascal was initially viewed with considerable suspicion because everyone remembered JRT Pascal, and a LOT of people had gotten burned by it. –  John R. Strohm Oct 4 '12 at 22:49
    
@JohnR.Strohm, I've been answering Konrad's comment regarding inline assembler in TP. –  SK-logic Oct 5 '12 at 4:27

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

Delphi and objective pascal changed that. But at that time, it was already to late.

share|improve this answer
4  
However BASIC wasn't designed for professional purposes either, yet it is alive and kicking –  Konrad Morawski Oct 18 '11 at 8:48
10  
@Morawski: Really? Apart from VB? –  Mark Bannister Oct 18 '11 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 Oct 18 '11 at 9:55
10  
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. –  Yam Marcovic Oct 18 '11 at 10:04
10  
@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. –  MetalMikester Oct 18 '11 at 11:36

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.

share|improve this answer
11  
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. –  Yam Marcovic Oct 18 '11 at 10:06
1  
@Yam, Windows happened when C had already taken over the world –  SK-logic Oct 18 '11 at 10:53
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 Oct 18 '11 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. –  Yam Marcovic Oct 18 '11 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. :) –  Yam Marcovic Oct 18 '11 at 14:37

protected by maple_shaft Jan 23 '13 at 12:08

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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