Was Dennis Ritchie being too modest in this quote about C and Pascal?Where does this esoteric Pascal operator come from?What was the first C compiler for the Mac?When were the analogs of the C operators “break” and “continue” introduced in Pascal?What was the point of Apple Pascal having its own file system?Why was UNIX never backported to the PDP-7?Why was nil defined as a reserved word in Pascal?What caused the downfall of Pascal?x86 as a Pascal Machine?Was there ever a compiler type that was just large enough to contain a memory segment?Why is the following p-Code generated by the Apple 3 pascal compiler?

My advisor talks about me to his colleague

Are there any of the Children of the Forest left, or are they extinct?

How should I tell my manager I'm not paying for an optional after work event I'm not going to?

Something that can be activated/enabled

Causes of bimodal distributions when bootstrapping a meta-analysis model

Are the Night's Watch still required?

What was the first story to feature the plot "the monsters were human all along"?

Why wasn't the Night King naked in S08E03?

Do publishers care if submitted work has already been copyrighted?

Has the Hulk always been able to talk?

Pressure inside an infinite ocean?

Point of the Dothraki's attack in GoT S8E3?

Is there an idiom that support the idea that "inflation is bad"?

What is the solution to this metapuzzle from a university puzzling column?

How to increase the size of the cursor in Lubuntu 19.04?

Why did the Apollo 13 crew extend the LM landing gear?

Can I use a fetch land to shuffle my deck while the opponent has Ashiok, Dream Render in play?

Refinish or replace an old staircase

How to adjust tikz picture so it fits to current size of a table cell?

Is bounce rate of a website a ranking factor?

Emotional immaturity of comic-book version of superhero Shazam

Can my 2 children 10 and 12 Travel to the USA on expired American Passports? They are US citizens

Gerrymandering Puzzle - Rig the Election

What does "Managed by Windows" do in the Power options for network connection?



Was Dennis Ritchie being too modest in this quote about C and Pascal?


Where does this esoteric Pascal operator come from?What was the first C compiler for the Mac?When were the analogs of the C operators “break” and “continue” introduced in Pascal?What was the point of Apple Pascal having its own file system?Why was UNIX never backported to the PDP-7?Why was nil defined as a reserved word in Pascal?What caused the downfall of Pascal?x86 as a Pascal Machine?Was there ever a compiler type that was just large enough to contain a memory segment?Why is the following p-Code generated by the Apple 3 pascal compiler?













27















In his 1993 conference proceeding The Development of the C Language, Dennis Ritchie stated




Successors



C and even B have several direct descendants, though they do not rival Pascal in generating progeny.




Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?



We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C). Some languages may be descended from both.



(I doubt such a claim would still be true today.)










share|improve this question

















  • 19





    It's difficult to say without knowing the context, but given Ritchie's opinion about Pascal, I'd interpret "they do not rival Pascal in generating progeny" as a tongue-in-cheek criticism along the lines of "Pascal was so bad it needed lots of successors to at least get a few things right". If this reading is correct, being "too modest" isn't what this is about...

    – dirkt
    Apr 25 at 10:33











  • Aren't some features of C itself derived from Pascal? So if you're taking this definition in the loosest sense, all descendants of C are also descendants of Pascal, (if not direct descendants) so Pascal would obviously have to have more.

    – Darrel Hoffman
    Apr 25 at 19:37







  • 2





    @Darrel Pascal and C are contemporaneous; features of C which look like Pascal are more likely to come from Algol (which both C and Pascal derive from).

    – Stephen Kitt
    Apr 26 at 11:11











  • "and even B" -> does B actually have any known direct successors other than C? Nothing linked from this page lists anything else. I was under the impression that the distinction between B and C is itself largely retroactive and there wasn't really a clear demarcation at the time C evolved gradually from it, so much as that "new B" eventually needed a new name.

    – Leushenko
    Apr 27 at 12:07







  • 2





    @Leushenko Ritchie mentions Eh and Zed as descendants of B.

    – Stephen Kitt
    Apr 29 at 10:38















27















In his 1993 conference proceeding The Development of the C Language, Dennis Ritchie stated




Successors



C and even B have several direct descendants, though they do not rival Pascal in generating progeny.




Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?



We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C). Some languages may be descended from both.



(I doubt such a claim would still be true today.)










share|improve this question

















  • 19





    It's difficult to say without knowing the context, but given Ritchie's opinion about Pascal, I'd interpret "they do not rival Pascal in generating progeny" as a tongue-in-cheek criticism along the lines of "Pascal was so bad it needed lots of successors to at least get a few things right". If this reading is correct, being "too modest" isn't what this is about...

    – dirkt
    Apr 25 at 10:33











  • Aren't some features of C itself derived from Pascal? So if you're taking this definition in the loosest sense, all descendants of C are also descendants of Pascal, (if not direct descendants) so Pascal would obviously have to have more.

    – Darrel Hoffman
    Apr 25 at 19:37







  • 2





    @Darrel Pascal and C are contemporaneous; features of C which look like Pascal are more likely to come from Algol (which both C and Pascal derive from).

    – Stephen Kitt
    Apr 26 at 11:11











  • "and even B" -> does B actually have any known direct successors other than C? Nothing linked from this page lists anything else. I was under the impression that the distinction between B and C is itself largely retroactive and there wasn't really a clear demarcation at the time C evolved gradually from it, so much as that "new B" eventually needed a new name.

    – Leushenko
    Apr 27 at 12:07







  • 2





    @Leushenko Ritchie mentions Eh and Zed as descendants of B.

    – Stephen Kitt
    Apr 29 at 10:38













27












27








27


3






In his 1993 conference proceeding The Development of the C Language, Dennis Ritchie stated




Successors



C and even B have several direct descendants, though they do not rival Pascal in generating progeny.




Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?



We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C). Some languages may be descended from both.



(I doubt such a claim would still be true today.)










share|improve this question














In his 1993 conference proceeding The Development of the C Language, Dennis Ritchie stated




Successors



C and even B have several direct descendants, though they do not rival Pascal in generating progeny.




Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?



We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C). Some languages may be descended from both.



(I doubt such a claim would still be true today.)







c pascal






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Apr 25 at 3:23









Dr SheldonDr Sheldon

2,43131237




2,43131237







  • 19





    It's difficult to say without knowing the context, but given Ritchie's opinion about Pascal, I'd interpret "they do not rival Pascal in generating progeny" as a tongue-in-cheek criticism along the lines of "Pascal was so bad it needed lots of successors to at least get a few things right". If this reading is correct, being "too modest" isn't what this is about...

    – dirkt
    Apr 25 at 10:33











  • Aren't some features of C itself derived from Pascal? So if you're taking this definition in the loosest sense, all descendants of C are also descendants of Pascal, (if not direct descendants) so Pascal would obviously have to have more.

    – Darrel Hoffman
    Apr 25 at 19:37







  • 2





    @Darrel Pascal and C are contemporaneous; features of C which look like Pascal are more likely to come from Algol (which both C and Pascal derive from).

    – Stephen Kitt
    Apr 26 at 11:11











  • "and even B" -> does B actually have any known direct successors other than C? Nothing linked from this page lists anything else. I was under the impression that the distinction between B and C is itself largely retroactive and there wasn't really a clear demarcation at the time C evolved gradually from it, so much as that "new B" eventually needed a new name.

    – Leushenko
    Apr 27 at 12:07







  • 2





    @Leushenko Ritchie mentions Eh and Zed as descendants of B.

    – Stephen Kitt
    Apr 29 at 10:38












  • 19





    It's difficult to say without knowing the context, but given Ritchie's opinion about Pascal, I'd interpret "they do not rival Pascal in generating progeny" as a tongue-in-cheek criticism along the lines of "Pascal was so bad it needed lots of successors to at least get a few things right". If this reading is correct, being "too modest" isn't what this is about...

    – dirkt
    Apr 25 at 10:33











  • Aren't some features of C itself derived from Pascal? So if you're taking this definition in the loosest sense, all descendants of C are also descendants of Pascal, (if not direct descendants) so Pascal would obviously have to have more.

    – Darrel Hoffman
    Apr 25 at 19:37







  • 2





    @Darrel Pascal and C are contemporaneous; features of C which look like Pascal are more likely to come from Algol (which both C and Pascal derive from).

    – Stephen Kitt
    Apr 26 at 11:11











  • "and even B" -> does B actually have any known direct successors other than C? Nothing linked from this page lists anything else. I was under the impression that the distinction between B and C is itself largely retroactive and there wasn't really a clear demarcation at the time C evolved gradually from it, so much as that "new B" eventually needed a new name.

    – Leushenko
    Apr 27 at 12:07







  • 2





    @Leushenko Ritchie mentions Eh and Zed as descendants of B.

    – Stephen Kitt
    Apr 29 at 10:38







19




19





It's difficult to say without knowing the context, but given Ritchie's opinion about Pascal, I'd interpret "they do not rival Pascal in generating progeny" as a tongue-in-cheek criticism along the lines of "Pascal was so bad it needed lots of successors to at least get a few things right". If this reading is correct, being "too modest" isn't what this is about...

– dirkt
Apr 25 at 10:33





It's difficult to say without knowing the context, but given Ritchie's opinion about Pascal, I'd interpret "they do not rival Pascal in generating progeny" as a tongue-in-cheek criticism along the lines of "Pascal was so bad it needed lots of successors to at least get a few things right". If this reading is correct, being "too modest" isn't what this is about...

– dirkt
Apr 25 at 10:33













Aren't some features of C itself derived from Pascal? So if you're taking this definition in the loosest sense, all descendants of C are also descendants of Pascal, (if not direct descendants) so Pascal would obviously have to have more.

– Darrel Hoffman
Apr 25 at 19:37






Aren't some features of C itself derived from Pascal? So if you're taking this definition in the loosest sense, all descendants of C are also descendants of Pascal, (if not direct descendants) so Pascal would obviously have to have more.

– Darrel Hoffman
Apr 25 at 19:37





2




2





@Darrel Pascal and C are contemporaneous; features of C which look like Pascal are more likely to come from Algol (which both C and Pascal derive from).

– Stephen Kitt
Apr 26 at 11:11





@Darrel Pascal and C are contemporaneous; features of C which look like Pascal are more likely to come from Algol (which both C and Pascal derive from).

– Stephen Kitt
Apr 26 at 11:11













"and even B" -> does B actually have any known direct successors other than C? Nothing linked from this page lists anything else. I was under the impression that the distinction between B and C is itself largely retroactive and there wasn't really a clear demarcation at the time C evolved gradually from it, so much as that "new B" eventually needed a new name.

– Leushenko
Apr 27 at 12:07






"and even B" -> does B actually have any known direct successors other than C? Nothing linked from this page lists anything else. I was under the impression that the distinction between B and C is itself largely retroactive and there wasn't really a clear demarcation at the time C evolved gradually from it, so much as that "new B" eventually needed a new name.

– Leushenko
Apr 27 at 12:07





2




2





@Leushenko Ritchie mentions Eh and Zed as descendants of B.

– Stephen Kitt
Apr 29 at 10:38





@Leushenko Ritchie mentions Eh and Zed as descendants of B.

– Stephen Kitt
Apr 29 at 10:38










3 Answers
3






active

oldest

votes


















35















Was Ritchie correct, or was he just being modest?




I’m not sure modesty plays a part here; I don’t see any statement of value attached to the size of a language’s family.




As of the date of the quote (1993), were more computer languages descended from Pascal than C?




Yes, he was correct, at least as phrased in the paper. Perceptions are perhaps biased because people tend to consider Pascal’s family tree v. C’s direct descendants (as the paper suggests itself); the main direct descendants of C by 1993 are listed in the paper:



  • Concurrent C

  • Objective C

  • C*

  • C++

Expanding the search somewhat (see for example O’Reilly’s language poster and Éric Lévénez’ Computer Languages History), one could add other direct descendants which are arguably very similar to C, although I’m not sure Ritchie was considering them when writing the paper in question:



  • the C shell

  • AWK

By 1993, Pascal had a similar number of direct descendants (identical in this analysis, but my counts are no doubt partial):



  • CLU

  • Mesa

  • Modula

  • Ada

  • Object Pascal

  • Concurrent Pascal

but in my experience people tend to think of the Pascal “progeny” as including some indirect descendants, in particular the Modula and Oberon families (Modula, Modula-2, Modula-3, Oberon, Oberon-2), and variants of Pascal itself since “core” Pascal wasn’t really usable as-is so developers used platform-specific dialects.



As you mention yourself, later languages tried to integrate lessons learned from both C-related and Pascal-related languages, and they all derive from Algol anyway. (Pascal itself started off as suggested improvements to Algol X, which weren’t accepted into the language.) Languages where the family trees rejoin include Python and Icon.



The reason Pascal is at the root of a larger family tree hasn’t been evoked yet.



Pascal was designed by Niklaus Wirth, a researcher whose work focused on studying programming itself, including the use of programming languages as teaching tools and structuring tools (for structuring programmers’ minds); programming languages were nearly a side-effect of that research, and Wirth iterated on programming languages multiple times, which led to a profusion of languages and variants. Pascal was widely studied in academic circles, and others also pursued this type of research, leading to more descendants than Wirth himself could produce.



C on the other hand was designed by Dennis Ritchie, as a tool to develop Unix. It wasn’t a research vehicle, and thus didn’t immediately produce the wealth of variants and descendants that Pascal did. It initially spread with its users, not with papers describing it, at least until The C Programming Language was published (six years after the creation of C).



The programming languages genealogical tree project includes a nice diagram, and a large list of other resources on the topic.






share|improve this answer




















  • 11





    There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

    – TripeHound
    Apr 25 at 7:56






  • 6





    I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

    – Maury Markowitz
    Apr 25 at 10:33






  • 4





    @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

    – Stephen Kitt
    Apr 25 at 13:14






  • 3





    @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

    – Stephen Kitt
    Apr 25 at 13:54






  • 4





    Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

    – Maury Markowitz
    Apr 25 at 16:35



















7














Short Answer: Yes




Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?




(*1)



Well, it's not as easy as it sounds, as there is no birth certificate with all parents named. Both languages are Algol descendants. And throughout the 1980s Pascal was seen as the way to go - eventually all the way 'til Ada. So yes.




We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C).




Err. No. This falls short of development. To start with, Pascal in its core definition is a very simple language (much more simple than C) intended for teaching classes about basic programming all the way to compiler building. As a result, it was so simplified that serious work was almost impossible - an elegant language for ivory tower games. It lacked strings, usable file I/O and any form of modularisation.



To make it usable for real world application, implementation had to enhance it substantially. And as usual, each and every developer had it his way. A UCSD Pascal program could not be compiled with Pascal/MT+ or Microsoft or Turbo Pascal, as all of them handled things differently.



If at all, then there is a main line promoted by the two most successful products: UCSD Pascal and Turbo Pascal, with the later being an extension of some sort to UCSD Pascal. The huge success of TP did lead to many other moving toward compatible constructs.



Heck, and then there are languages called Pascal which are derived from already different named languages, like Component Pascal evolved out of Oberon, which itself is a much improved Pascal child.



Bottom line, the distinction when it is a 'new' language or not cannot be made by the name.



Turbo Pascal and its incredible wide spread success (even I was tempted to use it) makes a good maker about how much more successful Pascal was in the 80s than C.




Some languages may be descended from both.




There is no 'pure' linage anywhere in the language world. To some degree all Algol based languages can as well be described as Pascal offsprings.



It may even be necessary to look past the syntactic sugar of brackets vs. keywords to realize that Pascal is mainly data driven, as its big step from Algol was the way to define data structures. In so far Ada makes the most 'pure' child of Pascal anyway (*2). Nowadays a feature to be found across basically all general purpose languages.



But let's try a list of close relatives openly carrying the family tradition:



  • Pascal

  • UCSD Pascal

  • Turbo Pascal

  • Pascal-SC

  • Oberon

  • Modula-2

  • Component-Pascal

  • Delphi

  • Concurrent Pascal

  • Pascal XL

  • Object Pascal

  • Pocket Studio

  • Vector Pascal (available for the PS2 !)

  • MS Pascal

  • Compaq Pascal (notable for type casting)

Besides all the variation two lines are notable. One is the Oberon/Modula development driven by Wirth, the other is the Borland Turbo/Delphi line. Each creating their own family of Pascal offspring sharing features. The later creating a linage looking like this:



  • (Pascal)

  • (UCSD Pascal)

  • Turbo Pascal

  • Borland Pascal

  • Object Pascal

  • Delphi

Well, and then there are all the languages with a less clear lineage all the way to JavaScript and Ada.




(I doubt such a claim would still be true today.)




As before, it depends on the way of counting. I'd say Pascal has still an advantage here :))




*1 - It may be noteworthy that Brian Kernighan in contrast offered quite some public (and less than correct) criticism about Pascal.



*2 - All the incompatible Pascal variations where the main reasons for the demand that Ada compilers could only be called that way if they adhere to a strict standard ... which eventually delayed Ada compilers way too long to really inherit the Pascal world, making room for C.






share|improve this answer




















  • 4





    IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

    – alephzero
    Apr 25 at 10:46






  • 6





    @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

    – Luaan
    Apr 25 at 15:16






  • 2





    @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

    – MetalMikester
    Apr 26 at 11:46






  • 1





    @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

    – Raffzahn
    Apr 28 at 20:38






  • 2





    @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

    – supercat
    Apr 29 at 15:38



















6














At the time he wrote that, it would have been literally true.
Concurrent Pascal, *Pascal, SUE (which I'd like to know more
about), Modula (not Modula-2), Modula-2, Mesa, Modula-3,
Euclid, Concurrent Euclid, Turing, Turing+, the Gypsy
specification language, LIS (another one I'd like to know
more about), and arguably CLU. Those are just ones I can
call to mind.






share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "648"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f10822%2fwas-dennis-ritchie-being-too-modest-in-this-quote-about-c-and-pascal%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    35















    Was Ritchie correct, or was he just being modest?




    I’m not sure modesty plays a part here; I don’t see any statement of value attached to the size of a language’s family.




    As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    Yes, he was correct, at least as phrased in the paper. Perceptions are perhaps biased because people tend to consider Pascal’s family tree v. C’s direct descendants (as the paper suggests itself); the main direct descendants of C by 1993 are listed in the paper:



    • Concurrent C

    • Objective C

    • C*

    • C++

    Expanding the search somewhat (see for example O’Reilly’s language poster and Éric Lévénez’ Computer Languages History), one could add other direct descendants which are arguably very similar to C, although I’m not sure Ritchie was considering them when writing the paper in question:



    • the C shell

    • AWK

    By 1993, Pascal had a similar number of direct descendants (identical in this analysis, but my counts are no doubt partial):



    • CLU

    • Mesa

    • Modula

    • Ada

    • Object Pascal

    • Concurrent Pascal

    but in my experience people tend to think of the Pascal “progeny” as including some indirect descendants, in particular the Modula and Oberon families (Modula, Modula-2, Modula-3, Oberon, Oberon-2), and variants of Pascal itself since “core” Pascal wasn’t really usable as-is so developers used platform-specific dialects.



    As you mention yourself, later languages tried to integrate lessons learned from both C-related and Pascal-related languages, and they all derive from Algol anyway. (Pascal itself started off as suggested improvements to Algol X, which weren’t accepted into the language.) Languages where the family trees rejoin include Python and Icon.



    The reason Pascal is at the root of a larger family tree hasn’t been evoked yet.



    Pascal was designed by Niklaus Wirth, a researcher whose work focused on studying programming itself, including the use of programming languages as teaching tools and structuring tools (for structuring programmers’ minds); programming languages were nearly a side-effect of that research, and Wirth iterated on programming languages multiple times, which led to a profusion of languages and variants. Pascal was widely studied in academic circles, and others also pursued this type of research, leading to more descendants than Wirth himself could produce.



    C on the other hand was designed by Dennis Ritchie, as a tool to develop Unix. It wasn’t a research vehicle, and thus didn’t immediately produce the wealth of variants and descendants that Pascal did. It initially spread with its users, not with papers describing it, at least until The C Programming Language was published (six years after the creation of C).



    The programming languages genealogical tree project includes a nice diagram, and a large list of other resources on the topic.






    share|improve this answer




















    • 11





      There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

      – TripeHound
      Apr 25 at 7:56






    • 6





      I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

      – Maury Markowitz
      Apr 25 at 10:33






    • 4





      @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

      – Stephen Kitt
      Apr 25 at 13:14






    • 3





      @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

      – Stephen Kitt
      Apr 25 at 13:54






    • 4





      Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

      – Maury Markowitz
      Apr 25 at 16:35
















    35















    Was Ritchie correct, or was he just being modest?




    I’m not sure modesty plays a part here; I don’t see any statement of value attached to the size of a language’s family.




    As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    Yes, he was correct, at least as phrased in the paper. Perceptions are perhaps biased because people tend to consider Pascal’s family tree v. C’s direct descendants (as the paper suggests itself); the main direct descendants of C by 1993 are listed in the paper:



    • Concurrent C

    • Objective C

    • C*

    • C++

    Expanding the search somewhat (see for example O’Reilly’s language poster and Éric Lévénez’ Computer Languages History), one could add other direct descendants which are arguably very similar to C, although I’m not sure Ritchie was considering them when writing the paper in question:



    • the C shell

    • AWK

    By 1993, Pascal had a similar number of direct descendants (identical in this analysis, but my counts are no doubt partial):



    • CLU

    • Mesa

    • Modula

    • Ada

    • Object Pascal

    • Concurrent Pascal

    but in my experience people tend to think of the Pascal “progeny” as including some indirect descendants, in particular the Modula and Oberon families (Modula, Modula-2, Modula-3, Oberon, Oberon-2), and variants of Pascal itself since “core” Pascal wasn’t really usable as-is so developers used platform-specific dialects.



    As you mention yourself, later languages tried to integrate lessons learned from both C-related and Pascal-related languages, and they all derive from Algol anyway. (Pascal itself started off as suggested improvements to Algol X, which weren’t accepted into the language.) Languages where the family trees rejoin include Python and Icon.



    The reason Pascal is at the root of a larger family tree hasn’t been evoked yet.



    Pascal was designed by Niklaus Wirth, a researcher whose work focused on studying programming itself, including the use of programming languages as teaching tools and structuring tools (for structuring programmers’ minds); programming languages were nearly a side-effect of that research, and Wirth iterated on programming languages multiple times, which led to a profusion of languages and variants. Pascal was widely studied in academic circles, and others also pursued this type of research, leading to more descendants than Wirth himself could produce.



    C on the other hand was designed by Dennis Ritchie, as a tool to develop Unix. It wasn’t a research vehicle, and thus didn’t immediately produce the wealth of variants and descendants that Pascal did. It initially spread with its users, not with papers describing it, at least until The C Programming Language was published (six years after the creation of C).



    The programming languages genealogical tree project includes a nice diagram, and a large list of other resources on the topic.






    share|improve this answer




















    • 11





      There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

      – TripeHound
      Apr 25 at 7:56






    • 6





      I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

      – Maury Markowitz
      Apr 25 at 10:33






    • 4





      @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

      – Stephen Kitt
      Apr 25 at 13:14






    • 3





      @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

      – Stephen Kitt
      Apr 25 at 13:54






    • 4





      Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

      – Maury Markowitz
      Apr 25 at 16:35














    35












    35








    35








    Was Ritchie correct, or was he just being modest?




    I’m not sure modesty plays a part here; I don’t see any statement of value attached to the size of a language’s family.




    As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    Yes, he was correct, at least as phrased in the paper. Perceptions are perhaps biased because people tend to consider Pascal’s family tree v. C’s direct descendants (as the paper suggests itself); the main direct descendants of C by 1993 are listed in the paper:



    • Concurrent C

    • Objective C

    • C*

    • C++

    Expanding the search somewhat (see for example O’Reilly’s language poster and Éric Lévénez’ Computer Languages History), one could add other direct descendants which are arguably very similar to C, although I’m not sure Ritchie was considering them when writing the paper in question:



    • the C shell

    • AWK

    By 1993, Pascal had a similar number of direct descendants (identical in this analysis, but my counts are no doubt partial):



    • CLU

    • Mesa

    • Modula

    • Ada

    • Object Pascal

    • Concurrent Pascal

    but in my experience people tend to think of the Pascal “progeny” as including some indirect descendants, in particular the Modula and Oberon families (Modula, Modula-2, Modula-3, Oberon, Oberon-2), and variants of Pascal itself since “core” Pascal wasn’t really usable as-is so developers used platform-specific dialects.



    As you mention yourself, later languages tried to integrate lessons learned from both C-related and Pascal-related languages, and they all derive from Algol anyway. (Pascal itself started off as suggested improvements to Algol X, which weren’t accepted into the language.) Languages where the family trees rejoin include Python and Icon.



    The reason Pascal is at the root of a larger family tree hasn’t been evoked yet.



    Pascal was designed by Niklaus Wirth, a researcher whose work focused on studying programming itself, including the use of programming languages as teaching tools and structuring tools (for structuring programmers’ minds); programming languages were nearly a side-effect of that research, and Wirth iterated on programming languages multiple times, which led to a profusion of languages and variants. Pascal was widely studied in academic circles, and others also pursued this type of research, leading to more descendants than Wirth himself could produce.



    C on the other hand was designed by Dennis Ritchie, as a tool to develop Unix. It wasn’t a research vehicle, and thus didn’t immediately produce the wealth of variants and descendants that Pascal did. It initially spread with its users, not with papers describing it, at least until The C Programming Language was published (six years after the creation of C).



    The programming languages genealogical tree project includes a nice diagram, and a large list of other resources on the topic.






    share|improve this answer
















    Was Ritchie correct, or was he just being modest?




    I’m not sure modesty plays a part here; I don’t see any statement of value attached to the size of a language’s family.




    As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    Yes, he was correct, at least as phrased in the paper. Perceptions are perhaps biased because people tend to consider Pascal’s family tree v. C’s direct descendants (as the paper suggests itself); the main direct descendants of C by 1993 are listed in the paper:



    • Concurrent C

    • Objective C

    • C*

    • C++

    Expanding the search somewhat (see for example O’Reilly’s language poster and Éric Lévénez’ Computer Languages History), one could add other direct descendants which are arguably very similar to C, although I’m not sure Ritchie was considering them when writing the paper in question:



    • the C shell

    • AWK

    By 1993, Pascal had a similar number of direct descendants (identical in this analysis, but my counts are no doubt partial):



    • CLU

    • Mesa

    • Modula

    • Ada

    • Object Pascal

    • Concurrent Pascal

    but in my experience people tend to think of the Pascal “progeny” as including some indirect descendants, in particular the Modula and Oberon families (Modula, Modula-2, Modula-3, Oberon, Oberon-2), and variants of Pascal itself since “core” Pascal wasn’t really usable as-is so developers used platform-specific dialects.



    As you mention yourself, later languages tried to integrate lessons learned from both C-related and Pascal-related languages, and they all derive from Algol anyway. (Pascal itself started off as suggested improvements to Algol X, which weren’t accepted into the language.) Languages where the family trees rejoin include Python and Icon.



    The reason Pascal is at the root of a larger family tree hasn’t been evoked yet.



    Pascal was designed by Niklaus Wirth, a researcher whose work focused on studying programming itself, including the use of programming languages as teaching tools and structuring tools (for structuring programmers’ minds); programming languages were nearly a side-effect of that research, and Wirth iterated on programming languages multiple times, which led to a profusion of languages and variants. Pascal was widely studied in academic circles, and others also pursued this type of research, leading to more descendants than Wirth himself could produce.



    C on the other hand was designed by Dennis Ritchie, as a tool to develop Unix. It wasn’t a research vehicle, and thus didn’t immediately produce the wealth of variants and descendants that Pascal did. It initially spread with its users, not with papers describing it, at least until The C Programming Language was published (six years after the creation of C).



    The programming languages genealogical tree project includes a nice diagram, and a large list of other resources on the topic.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Apr 29 at 9:34

























    answered Apr 25 at 7:26









    Stephen KittStephen Kitt

    42.2k8174180




    42.2k8174180







    • 11





      There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

      – TripeHound
      Apr 25 at 7:56






    • 6





      I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

      – Maury Markowitz
      Apr 25 at 10:33






    • 4





      @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

      – Stephen Kitt
      Apr 25 at 13:14






    • 3





      @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

      – Stephen Kitt
      Apr 25 at 13:54






    • 4





      Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

      – Maury Markowitz
      Apr 25 at 16:35













    • 11





      There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

      – TripeHound
      Apr 25 at 7:56






    • 6





      I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

      – Maury Markowitz
      Apr 25 at 10:33






    • 4





      @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

      – Stephen Kitt
      Apr 25 at 13:14






    • 3





      @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

      – Stephen Kitt
      Apr 25 at 13:54






    • 4





      Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

      – Maury Markowitz
      Apr 25 at 16:35








    11




    11





    There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

    – TripeHound
    Apr 25 at 7:56





    There's a nice quote about Wirth's intentions behind Pascal included on the Free Pascal Wiki: "Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task.".

    – TripeHound
    Apr 25 at 7:56




    6




    6





    I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

    – Maury Markowitz
    Apr 25 at 10:33





    I think it is much more accurate to say that Algol was the root of these languages, not Pascal. Pascal was largely created to be a better Algol after the debacle of Algol68, and there were a wide variety of other spin-offs that were in widespread use at the time - JOVIAL being an obvious example.

    – Maury Markowitz
    Apr 25 at 10:33




    4




    4





    @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

    – Stephen Kitt
    Apr 25 at 13:14





    @Maury basing the discussion on Algol makes it harder to create an artificial distinction between C and Pascal ;-).

    – Stephen Kitt
    Apr 25 at 13:14




    3




    3





    @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

    – Stephen Kitt
    Apr 25 at 13:54





    @TripeHound the Lindsey paper covers the debacle in detail. To give you an idea, it introduction starts with “The World seems to have a rather negative perception of ALGOL 68. The language has been said to be “too big”, to be defined by an “unreadable Report” produced by a committee which “broke up in disarray”, to have no implementations, and to have no users.” (The paper does try to redeem the language.)

    – Stephen Kitt
    Apr 25 at 13:54




    4




    4





    Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

    – Maury Markowitz
    Apr 25 at 16:35






    Algol68 was widely used as the canonical example of second-system-effect in the 1970s. It was in all the language design books of the era. It added all sorts of huge distributed costs to implement features that no one actually used, yet left many of the original implementation problems from earlier versions unsolved. But all my refs are dead tree, but looking in Google Books you can find many comments as to its sheer size and complexity.

    – Maury Markowitz
    Apr 25 at 16:35












    7














    Short Answer: Yes




    Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    (*1)



    Well, it's not as easy as it sounds, as there is no birth certificate with all parents named. Both languages are Algol descendants. And throughout the 1980s Pascal was seen as the way to go - eventually all the way 'til Ada. So yes.




    We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C).




    Err. No. This falls short of development. To start with, Pascal in its core definition is a very simple language (much more simple than C) intended for teaching classes about basic programming all the way to compiler building. As a result, it was so simplified that serious work was almost impossible - an elegant language for ivory tower games. It lacked strings, usable file I/O and any form of modularisation.



    To make it usable for real world application, implementation had to enhance it substantially. And as usual, each and every developer had it his way. A UCSD Pascal program could not be compiled with Pascal/MT+ or Microsoft or Turbo Pascal, as all of them handled things differently.



    If at all, then there is a main line promoted by the two most successful products: UCSD Pascal and Turbo Pascal, with the later being an extension of some sort to UCSD Pascal. The huge success of TP did lead to many other moving toward compatible constructs.



    Heck, and then there are languages called Pascal which are derived from already different named languages, like Component Pascal evolved out of Oberon, which itself is a much improved Pascal child.



    Bottom line, the distinction when it is a 'new' language or not cannot be made by the name.



    Turbo Pascal and its incredible wide spread success (even I was tempted to use it) makes a good maker about how much more successful Pascal was in the 80s than C.




    Some languages may be descended from both.




    There is no 'pure' linage anywhere in the language world. To some degree all Algol based languages can as well be described as Pascal offsprings.



    It may even be necessary to look past the syntactic sugar of brackets vs. keywords to realize that Pascal is mainly data driven, as its big step from Algol was the way to define data structures. In so far Ada makes the most 'pure' child of Pascal anyway (*2). Nowadays a feature to be found across basically all general purpose languages.



    But let's try a list of close relatives openly carrying the family tradition:



    • Pascal

    • UCSD Pascal

    • Turbo Pascal

    • Pascal-SC

    • Oberon

    • Modula-2

    • Component-Pascal

    • Delphi

    • Concurrent Pascal

    • Pascal XL

    • Object Pascal

    • Pocket Studio

    • Vector Pascal (available for the PS2 !)

    • MS Pascal

    • Compaq Pascal (notable for type casting)

    Besides all the variation two lines are notable. One is the Oberon/Modula development driven by Wirth, the other is the Borland Turbo/Delphi line. Each creating their own family of Pascal offspring sharing features. The later creating a linage looking like this:



    • (Pascal)

    • (UCSD Pascal)

    • Turbo Pascal

    • Borland Pascal

    • Object Pascal

    • Delphi

    Well, and then there are all the languages with a less clear lineage all the way to JavaScript and Ada.




    (I doubt such a claim would still be true today.)




    As before, it depends on the way of counting. I'd say Pascal has still an advantage here :))




    *1 - It may be noteworthy that Brian Kernighan in contrast offered quite some public (and less than correct) criticism about Pascal.



    *2 - All the incompatible Pascal variations where the main reasons for the demand that Ada compilers could only be called that way if they adhere to a strict standard ... which eventually delayed Ada compilers way too long to really inherit the Pascal world, making room for C.






    share|improve this answer




















    • 4





      IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

      – alephzero
      Apr 25 at 10:46






    • 6





      @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

      – Luaan
      Apr 25 at 15:16






    • 2





      @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

      – MetalMikester
      Apr 26 at 11:46






    • 1





      @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

      – Raffzahn
      Apr 28 at 20:38






    • 2





      @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

      – supercat
      Apr 29 at 15:38
















    7














    Short Answer: Yes




    Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    (*1)



    Well, it's not as easy as it sounds, as there is no birth certificate with all parents named. Both languages are Algol descendants. And throughout the 1980s Pascal was seen as the way to go - eventually all the way 'til Ada. So yes.




    We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C).




    Err. No. This falls short of development. To start with, Pascal in its core definition is a very simple language (much more simple than C) intended for teaching classes about basic programming all the way to compiler building. As a result, it was so simplified that serious work was almost impossible - an elegant language for ivory tower games. It lacked strings, usable file I/O and any form of modularisation.



    To make it usable for real world application, implementation had to enhance it substantially. And as usual, each and every developer had it his way. A UCSD Pascal program could not be compiled with Pascal/MT+ or Microsoft or Turbo Pascal, as all of them handled things differently.



    If at all, then there is a main line promoted by the two most successful products: UCSD Pascal and Turbo Pascal, with the later being an extension of some sort to UCSD Pascal. The huge success of TP did lead to many other moving toward compatible constructs.



    Heck, and then there are languages called Pascal which are derived from already different named languages, like Component Pascal evolved out of Oberon, which itself is a much improved Pascal child.



    Bottom line, the distinction when it is a 'new' language or not cannot be made by the name.



    Turbo Pascal and its incredible wide spread success (even I was tempted to use it) makes a good maker about how much more successful Pascal was in the 80s than C.




    Some languages may be descended from both.




    There is no 'pure' linage anywhere in the language world. To some degree all Algol based languages can as well be described as Pascal offsprings.



    It may even be necessary to look past the syntactic sugar of brackets vs. keywords to realize that Pascal is mainly data driven, as its big step from Algol was the way to define data structures. In so far Ada makes the most 'pure' child of Pascal anyway (*2). Nowadays a feature to be found across basically all general purpose languages.



    But let's try a list of close relatives openly carrying the family tradition:



    • Pascal

    • UCSD Pascal

    • Turbo Pascal

    • Pascal-SC

    • Oberon

    • Modula-2

    • Component-Pascal

    • Delphi

    • Concurrent Pascal

    • Pascal XL

    • Object Pascal

    • Pocket Studio

    • Vector Pascal (available for the PS2 !)

    • MS Pascal

    • Compaq Pascal (notable for type casting)

    Besides all the variation two lines are notable. One is the Oberon/Modula development driven by Wirth, the other is the Borland Turbo/Delphi line. Each creating their own family of Pascal offspring sharing features. The later creating a linage looking like this:



    • (Pascal)

    • (UCSD Pascal)

    • Turbo Pascal

    • Borland Pascal

    • Object Pascal

    • Delphi

    Well, and then there are all the languages with a less clear lineage all the way to JavaScript and Ada.




    (I doubt such a claim would still be true today.)




    As before, it depends on the way of counting. I'd say Pascal has still an advantage here :))




    *1 - It may be noteworthy that Brian Kernighan in contrast offered quite some public (and less than correct) criticism about Pascal.



    *2 - All the incompatible Pascal variations where the main reasons for the demand that Ada compilers could only be called that way if they adhere to a strict standard ... which eventually delayed Ada compilers way too long to really inherit the Pascal world, making room for C.






    share|improve this answer




















    • 4





      IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

      – alephzero
      Apr 25 at 10:46






    • 6





      @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

      – Luaan
      Apr 25 at 15:16






    • 2





      @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

      – MetalMikester
      Apr 26 at 11:46






    • 1





      @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

      – Raffzahn
      Apr 28 at 20:38






    • 2





      @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

      – supercat
      Apr 29 at 15:38














    7












    7








    7







    Short Answer: Yes




    Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    (*1)



    Well, it's not as easy as it sounds, as there is no birth certificate with all parents named. Both languages are Algol descendants. And throughout the 1980s Pascal was seen as the way to go - eventually all the way 'til Ada. So yes.




    We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C).




    Err. No. This falls short of development. To start with, Pascal in its core definition is a very simple language (much more simple than C) intended for teaching classes about basic programming all the way to compiler building. As a result, it was so simplified that serious work was almost impossible - an elegant language for ivory tower games. It lacked strings, usable file I/O and any form of modularisation.



    To make it usable for real world application, implementation had to enhance it substantially. And as usual, each and every developer had it his way. A UCSD Pascal program could not be compiled with Pascal/MT+ or Microsoft or Turbo Pascal, as all of them handled things differently.



    If at all, then there is a main line promoted by the two most successful products: UCSD Pascal and Turbo Pascal, with the later being an extension of some sort to UCSD Pascal. The huge success of TP did lead to many other moving toward compatible constructs.



    Heck, and then there are languages called Pascal which are derived from already different named languages, like Component Pascal evolved out of Oberon, which itself is a much improved Pascal child.



    Bottom line, the distinction when it is a 'new' language or not cannot be made by the name.



    Turbo Pascal and its incredible wide spread success (even I was tempted to use it) makes a good maker about how much more successful Pascal was in the 80s than C.




    Some languages may be descended from both.




    There is no 'pure' linage anywhere in the language world. To some degree all Algol based languages can as well be described as Pascal offsprings.



    It may even be necessary to look past the syntactic sugar of brackets vs. keywords to realize that Pascal is mainly data driven, as its big step from Algol was the way to define data structures. In so far Ada makes the most 'pure' child of Pascal anyway (*2). Nowadays a feature to be found across basically all general purpose languages.



    But let's try a list of close relatives openly carrying the family tradition:



    • Pascal

    • UCSD Pascal

    • Turbo Pascal

    • Pascal-SC

    • Oberon

    • Modula-2

    • Component-Pascal

    • Delphi

    • Concurrent Pascal

    • Pascal XL

    • Object Pascal

    • Pocket Studio

    • Vector Pascal (available for the PS2 !)

    • MS Pascal

    • Compaq Pascal (notable for type casting)

    Besides all the variation two lines are notable. One is the Oberon/Modula development driven by Wirth, the other is the Borland Turbo/Delphi line. Each creating their own family of Pascal offspring sharing features. The later creating a linage looking like this:



    • (Pascal)

    • (UCSD Pascal)

    • Turbo Pascal

    • Borland Pascal

    • Object Pascal

    • Delphi

    Well, and then there are all the languages with a less clear lineage all the way to JavaScript and Ada.




    (I doubt such a claim would still be true today.)




    As before, it depends on the way of counting. I'd say Pascal has still an advantage here :))




    *1 - It may be noteworthy that Brian Kernighan in contrast offered quite some public (and less than correct) criticism about Pascal.



    *2 - All the incompatible Pascal variations where the main reasons for the demand that Ada compilers could only be called that way if they adhere to a strict standard ... which eventually delayed Ada compilers way too long to really inherit the Pascal world, making room for C.






    share|improve this answer















    Short Answer: Yes




    Was Ritchie correct, or was he just being modest? As of the date of the quote (1993), were more computer languages descended from Pascal than C?




    (*1)



    Well, it's not as easy as it sounds, as there is no birth certificate with all parents named. Both languages are Algol descendants. And throughout the 1980s Pascal was seen as the way to go - eventually all the way 'til Ada. So yes.




    We are counting languages, not their specific compilers/implementations (e.g. UCSD Pascal, Borland C).




    Err. No. This falls short of development. To start with, Pascal in its core definition is a very simple language (much more simple than C) intended for teaching classes about basic programming all the way to compiler building. As a result, it was so simplified that serious work was almost impossible - an elegant language for ivory tower games. It lacked strings, usable file I/O and any form of modularisation.



    To make it usable for real world application, implementation had to enhance it substantially. And as usual, each and every developer had it his way. A UCSD Pascal program could not be compiled with Pascal/MT+ or Microsoft or Turbo Pascal, as all of them handled things differently.



    If at all, then there is a main line promoted by the two most successful products: UCSD Pascal and Turbo Pascal, with the later being an extension of some sort to UCSD Pascal. The huge success of TP did lead to many other moving toward compatible constructs.



    Heck, and then there are languages called Pascal which are derived from already different named languages, like Component Pascal evolved out of Oberon, which itself is a much improved Pascal child.



    Bottom line, the distinction when it is a 'new' language or not cannot be made by the name.



    Turbo Pascal and its incredible wide spread success (even I was tempted to use it) makes a good maker about how much more successful Pascal was in the 80s than C.




    Some languages may be descended from both.




    There is no 'pure' linage anywhere in the language world. To some degree all Algol based languages can as well be described as Pascal offsprings.



    It may even be necessary to look past the syntactic sugar of brackets vs. keywords to realize that Pascal is mainly data driven, as its big step from Algol was the way to define data structures. In so far Ada makes the most 'pure' child of Pascal anyway (*2). Nowadays a feature to be found across basically all general purpose languages.



    But let's try a list of close relatives openly carrying the family tradition:



    • Pascal

    • UCSD Pascal

    • Turbo Pascal

    • Pascal-SC

    • Oberon

    • Modula-2

    • Component-Pascal

    • Delphi

    • Concurrent Pascal

    • Pascal XL

    • Object Pascal

    • Pocket Studio

    • Vector Pascal (available for the PS2 !)

    • MS Pascal

    • Compaq Pascal (notable for type casting)

    Besides all the variation two lines are notable. One is the Oberon/Modula development driven by Wirth, the other is the Borland Turbo/Delphi line. Each creating their own family of Pascal offspring sharing features. The later creating a linage looking like this:



    • (Pascal)

    • (UCSD Pascal)

    • Turbo Pascal

    • Borland Pascal

    • Object Pascal

    • Delphi

    Well, and then there are all the languages with a less clear lineage all the way to JavaScript and Ada.




    (I doubt such a claim would still be true today.)




    As before, it depends on the way of counting. I'd say Pascal has still an advantage here :))




    *1 - It may be noteworthy that Brian Kernighan in contrast offered quite some public (and less than correct) criticism about Pascal.



    *2 - All the incompatible Pascal variations where the main reasons for the demand that Ada compilers could only be called that way if they adhere to a strict standard ... which eventually delayed Ada compilers way too long to really inherit the Pascal world, making room for C.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Apr 25 at 9:47









    LangLangC

    7331212




    7331212










    answered Apr 25 at 6:52









    RaffzahnRaffzahn

    57.8k6141237




    57.8k6141237







    • 4





      IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

      – alephzero
      Apr 25 at 10:46






    • 6





      @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

      – Luaan
      Apr 25 at 15:16






    • 2





      @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

      – MetalMikester
      Apr 26 at 11:46






    • 1





      @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

      – Raffzahn
      Apr 28 at 20:38






    • 2





      @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

      – supercat
      Apr 29 at 15:38













    • 4





      IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

      – alephzero
      Apr 25 at 10:46






    • 6





      @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

      – Luaan
      Apr 25 at 15:16






    • 2





      @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

      – MetalMikester
      Apr 26 at 11:46






    • 1





      @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

      – Raffzahn
      Apr 28 at 20:38






    • 2





      @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

      – supercat
      Apr 29 at 15:38








    4




    4





    IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

    – alephzero
    Apr 25 at 10:46





    IMO Turbo Pascal wasn't a commercial success because of Pascal itself, or the Borland extensions to it, but because of its IDE.

    – alephzero
    Apr 25 at 10:46




    6




    6





    @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

    – Luaan
    Apr 25 at 15:16





    @alephzero "its IDE" sells it short. It was unbelievably fast. It allowed for frequent iteration in the code because of that speed. That was very much tied to the design of the language itself - namely, the fact that a single-pass compiler was trivial, and that you needed only a tiny amount of memory to store the whole thing. This also allowed for other huge features in the IDE - like the integrated debugger that just worked. Pascal had its shortcomings (most notably the lack of strings), but it was also very friendly, with a great community. People loved both Pascal and Turbo Pascal.

    – Luaan
    Apr 25 at 15:16




    2




    2





    @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

    – MetalMikester
    Apr 26 at 11:46





    @alephzero Back then, the low cost was also a factor. It could easily cost several hundred dollars for other development environments that weren't nearly as friendly.

    – MetalMikester
    Apr 26 at 11:46




    1




    1





    @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

    – Raffzahn
    Apr 28 at 20:38





    @Jasen It seams you are talking about a programmers PoV, which wasn't meant. It's about the compiler being more simple.Pascal follows a strict block concept with no exceptions, where C does restrict constructs to certain levels. For example in Pascal any block may contain a procedure, not possible in C, so the compiler needs to distinguish here, where Pascal just works ahead (Nested procedures are a nice way clarifying source code). Similar With can make sources way more readable than endless lines of nested structures needed in C. Ofc, this may depend on your style.

    – Raffzahn
    Apr 28 at 20:38




    2




    2





    @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

    – supercat
    Apr 29 at 15:38






    @Luaan: More interesting than the integrated debuggger that was added in 5.0 was the way that 2.x and 3.x would identify the locations were runtime errors occurred. In both CP/M and DOS, programs started at address 0x0100, so if the user indicated that an error occurred at address 0x1234, the IDE would set the limit to 0x1134 bytes, disable compiler output, and run the compiler. The part of the program that was being scanned when the compiler hits its limit would be the location of the error.

    – supercat
    Apr 29 at 15:38












    6














    At the time he wrote that, it would have been literally true.
    Concurrent Pascal, *Pascal, SUE (which I'd like to know more
    about), Modula (not Modula-2), Modula-2, Mesa, Modula-3,
    Euclid, Concurrent Euclid, Turing, Turing+, the Gypsy
    specification language, LIS (another one I'd like to know
    more about), and arguably CLU. Those are just ones I can
    call to mind.






    share|improve this answer



























      6














      At the time he wrote that, it would have been literally true.
      Concurrent Pascal, *Pascal, SUE (which I'd like to know more
      about), Modula (not Modula-2), Modula-2, Mesa, Modula-3,
      Euclid, Concurrent Euclid, Turing, Turing+, the Gypsy
      specification language, LIS (another one I'd like to know
      more about), and arguably CLU. Those are just ones I can
      call to mind.






      share|improve this answer

























        6












        6








        6







        At the time he wrote that, it would have been literally true.
        Concurrent Pascal, *Pascal, SUE (which I'd like to know more
        about), Modula (not Modula-2), Modula-2, Mesa, Modula-3,
        Euclid, Concurrent Euclid, Turing, Turing+, the Gypsy
        specification language, LIS (another one I'd like to know
        more about), and arguably CLU. Those are just ones I can
        call to mind.






        share|improve this answer













        At the time he wrote that, it would have been literally true.
        Concurrent Pascal, *Pascal, SUE (which I'd like to know more
        about), Modula (not Modula-2), Modula-2, Mesa, Modula-3,
        Euclid, Concurrent Euclid, Turing, Turing+, the Gypsy
        specification language, LIS (another one I'd like to know
        more about), and arguably CLU. Those are just ones I can
        call to mind.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Apr 25 at 5:19









        raokraok

        31612




        31612



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Retrocomputing Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f10822%2fwas-dennis-ritchie-being-too-modest-in-this-quote-about-c-and-pascal%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wikipedia:Vital articles Мазмуну Biography - Өмүр баян Philosophy and psychology - Философия жана психология Religion - Дин Social sciences - Коомдук илимдер Language and literature - Тил жана адабият Science - Илим Technology - Технология Arts and recreation - Искусство жана эс алуу History and geography - Тарых жана география Навигация менюсу

            Bruxelas-Capital Índice Historia | Composición | Situación lingüística | Clima | Cidades irmandadas | Notas | Véxase tamén | Menú de navegacióneO uso das linguas en Bruxelas e a situación do neerlandés"Rexión de Bruxelas Capital"o orixinalSitio da rexiónPáxina de Bruselas no sitio da Oficina de Promoción Turística de Valonia e BruxelasMapa Interactivo da Rexión de Bruxelas-CapitaleeWorldCat332144929079854441105155190212ID28008674080552-90000 0001 0666 3698n94104302ID540940339365017018237

            What should I write in an apology letter, since I have decided not to join a company after accepting an offer letterShould I keep looking after accepting a job offer?What should I do when I've been verbally told I would get an offer letter, but still haven't gotten one after 4 weeks?Do I accept an offer from a company that I am not likely to join?New job hasn't confirmed starting date and I want to give current employer as much notice as possibleHow should I address my manager in my resignation letter?HR delayed background verification, now jobless as resignedNo email communication after accepting a formal written offer. How should I phrase the call?What should I do if after receiving a verbal offer letter I am informed that my written job offer is put on hold due to some internal issues?Should I inform the current employer that I am about to resign within 1-2 weeks since I have signed the offer letter and waiting for visa?What company will do, if I send their offer letter to another company