Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
Get HideMyAss! VPN, PC Mag's Top 10 VPNs of 2016 for 55% off for a Limited Time ×
Programming Open Source

Ask Slashdot: Is Pascal Underrated? 492

An anonymous reader writes In the recent Slashdot discussion on the D programming language, I was surprised to see criticisms of Pascal that were based on old information and outdated implementations. While I'm sure that, for example, Brian Kernighan's criticisms of Pascal were valid in 1981, things have moved on since then. Current Object Pascal largely addresses Kernighan's critique and also includes language features such as anonymous methods, reflection and attributes, class helpers, generics and more (see also Marco Cantu's recent Object Pascal presentation). Cross-platform development is fairly straightforward with Pascal. Delphi targets Windows, OS X, iOS and Android. Free Pascal targets many operating systems and architectures and Lazarus provides a Delphi-like IDE for Free Pascal. So what do you think? Is Pascal underrated?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Is Pascal Underrated?

Comments Filter:
  • by Anonymous Coward on Sunday January 25, 2015 @03:02PM (#48899481)

    Pascal should die!

    • by fisted ( 2295862 )
      Replying because I fatfingered "Overrated" instead of "Funny".
    • Re:Modula-3 FTW! (Score:5, Insightful)

      by ShanghaiBill ( 739463 ) on Sunday January 25, 2015 @03:21PM (#48899607)

      The problem with Pascal is not that it is bad, but that it provides nothing of value to offset the cost of maintaining a separate toolchain, training programmers, building libraries, etc. What can you do in Pascal that you can't do in C++, or Python, or Java? Why do we need yet another language, that has no particularly useful features?

      I used Pascal in some college courses, and felt that my productivity went down by about 50% compared to C, just because of all the extra typing, and the reduced readability: begin using words for punctuation does not work as well as using punctuation for punctuation end

      • Re:Modula-3 FTW! (Score:5, Interesting)

        by Crashmarik ( 635988 ) on Sunday January 25, 2015 @03:41PM (#48899735)

        I used Pascal in some college courses, and felt that my productivity went down by about 50% compared to C, just because of all the extra typing, and the reduced readability: begin using words for punctuation does not work as well as using punctuation for punctuation end

        You felt Pascal was less readable than C ?

        • Re:Modula-3 FTW! (Score:5, Insightful)

          by Anonymous Coward on Sunday January 25, 2015 @03:59PM (#48899845)

          With enough experience C is more readable. It's a bit like writing "sodium chloride" vs "NaCl". The general population will find the first one more readable because they don't have to know chemical symbols, but if you know chemical symbols, then you find "NaCl" more readable.

        • Re:Modula-3 FTW! (Score:5, Insightful)

          by itzly ( 3699663 ) on Sunday January 25, 2015 @04:15PM (#48899963)

          For a beginner, Pascal may seem more readable. For an experienced programmer, C wins. Words like 'begin' and 'end' look too similar to user-defined variables, whereas the curly braces stand out well.

          • Re: (Score:3, Interesting)

            by Lonewolf666 ( 259450 )

            IMHO it takes a very experienced programmer to avoid pitfalls like the fine difference between integer and floating point division. As in 22/3 vs. 22/3.0 where the difference is easily overlooked.
            Pascal uses entirely different operators which makes the difference stand out more. The above example would be 22 div 3 vs. 22/3 (optionally you could write 22/3.0 but it would be the same as 22/3).

            • Re:Modula-3 FTW! (Score:5, Insightful)

              by Monkey-Man2000 ( 603495 ) on Sunday January 25, 2015 @06:05PM (#48900577)
              Wow, I hope you're not suggesting 22 div 3 vs. 22/3 is more intuitive to a novice for what it does compared to 22/3 and 22/3.0! Both sets look synonymous but if someone told you/me that the first and second of each were different I think the second set is MUCH more clear. **HINT: there's a decimal point in the second set, so it would be natural to assume the return value would have one as well -- no such luck on the first set**
              • by Creepy ( 93888 )

                Also 22/3.0 with a bad compiler would be essentially be stored as (int)22 / (float)3.0 and then the int get converted to a float during runtime. I'm not kidding when I say I've seen that during memory inspections. My teacher in college recommended never mixing types and depending on the compiler for conversion and always using 22., 22.0, or (float)22 to ensure types were stored properly.

                • I'm not sure I understand what you're saying at the beginning about a "bad" compiler because the outcome should be 7.333333333333333 as expected. If you meant, (int)22 / (int)3 then that makes more sense that you would get 7 because of truncation. Especially if for some bizarre reason the 3.0 was immediately treated as an int (because of the 22?) and you got 7 unexpectedly. Erring on the side of int->floats seems far less dangerous than float->int conversion in math operations because only an experien
              • Re:Modula-3 FTW! (Score:4, Interesting)

                by Teancum ( 67324 ) <> on Sunday January 25, 2015 @08:12PM (#48901253) Homepage Journal

                Wow, I hope you're not suggesting 22 div 3 vs. 22/3 is more intuitive to a novice for what it does compared to 22/3 and 22/3.0!

                A properly designed compiler (like Turbo Pascal and later Delphi) makes no distinction nor software penalty for using either convention. This is nit picking at such a minor detail, although as a software developer I like to emphasize that I am using an integer division as opposed to floating point, thus deliberately use the div operator when appropriate. For a novice, it shouldn't make any difference at all.... particularly for the kinds of applications developed by a typical novice that would have any sort of confusion over this issue (or some C++ developer tasked to do some Object Pascal debugging).

          • by Anonymous Coward on Sunday January 25, 2015 @05:55PM (#48900519)

            For a beginner, curly braces may seem more readable. For an experienced programmer, Python wins. Curly braces lead to ambiguous interpretation, whereas indentation guarantees a single interpretation and stands out well.

            • I'm a C beginner and I don't think curly brackets (not braces) are anything BUT readable.
              Pascal is easy for me, parsing HTML and XML are no problem, parentheses are fine, but when I try making heads and tails of curly brackets I fall flat on my face.

            • This would be true, except for two things:
              • Lines with more than 66 non-whitespace characters decrease readability.
              • Statements with more than 66 non-whitespace characters are common in most programming languages.

              This means that you end up either with lots of continued statements or lots of overly-long lines in Python. If you have the former, then it's hard to see the indentation. If you have the latter, then you can see the indentation but the overall readability suffers. This can be fixed by using tabs

          • Re:Modula-3 FTW! (Score:5, Insightful)

            by Teancum ( 67324 ) <> on Sunday January 25, 2015 @08:02PM (#48901197) Homepage Journal

            From a maintainability standpoint when you need to have code written by an experienced software developer familiar with Pascal and its various (current) compilers as opposed to an experienced software developer familiar with C++... when you hand those software packages over to another developer to continue development by somebody having to start cold on that software and fix bugs, make extension, or overhaul that code... I dare say that the software written in Object Pascal can be developed sooner than a comparable application in C++. My direct experience has been in about half of the time or less than a comparable C++ program.

            That is my standard for readability. The only reason you might notice some developers who have a hard time with Pascal readability is mainly due to the fact that the developer is simply unfamiliar with Pascal syntax due to a lack of development in that language for a prolonged period of time. Handing Object Pascal code to somebody else already familiar with the language clearly has a huge advantage.

            Just because it is different doesn't mean it is worse. It might mean that you would need to personally take some extra time to learn another programming language. Besides, for a Pascal programmer, curly braces are for comments and stand out very well for that purpose.

          • by Motard ( 1553251 ) on Sunday January 25, 2015 @09:23PM (#48901463)

            Words like 'begin' and 'end' look too similar to user-defined variables

            Funny, I've never had that problem. Maybe that's a beginner problem.

          • Re:Modula-3 FTW! (Score:4, Interesting)

            by RabidReindeer ( 2625839 ) on Monday January 26, 2015 @09:57AM (#48903775)

            For a beginner, Pascal may seem more readable. For an experienced programmer, C wins. Words like 'begin' and 'end' look too similar to user-defined variables, whereas the curly braces stand out well.

            Actually, for a certain programmer of long experience, I can say that I've never been suckered into thinking a stand-alone word like "begin" or "end" was a variable expression or fragment thereof.

            I can say that words like "begin" and "end" stand out more (geographically speaking) than the smaller single-character braces, which aren't even fat characters. Just skinny little wiggly lines that are relatively easy to skip over, even when syntax-highlighted.

            Two things that do frost me about brace-style programming languages:

            1. Any language that doesn't mandate that dependent clauses be wrapped in some sort of delimiter pair is inherently dangerous. I've been burned more than once by code that didn't contain braces that went haywire because I put a simple debug print right after an "if" and forgot what it did to the existing logic. IIRC, pascal begin/end are not optional.

            1a, You want to see REAL mayhem, look at one of the COBOL programs I've had to support where generations of "patch-style" programmers have had their way with complex conditional logic. In the original COBOL, even a pair of curly braces was too obvious. COBOL goes on and on until someone slaps down a single dot. At which point the entire if/then/else-pius-nested-conditionals comes to an abrupt end. I've seen stuff where a page and a half separated the primal "IF" from the ending ".".

            2. A lot of begin/end languages have unique keywords to bracket clauses. if/endif, loop/endloop, do/while. Brace-delimited languages often use braces for multiple types of controlled clauses, which means it's much easier to lose track of what pairs with which. Not a few C and Java programs I've seen have even resorted to appending comments to their closing braces to make it clear what paired with what.

      • Re:Modula-3 FTW! (Score:5, Informative)

        by Anonymous Coward on Sunday January 25, 2015 @03:42PM (#48899739)

        What can you do in Pascal that you can't do in C++, or Python, or Java?

        I would say that Delphi's advantages over Python and Java are native compilation and its advantage over C++ is the speed of compilation. For fast development of GUI applications (and cross platform these days) Delphi remains one of the best options available.

      • Re:Modula-3 FTW! (Score:5, Insightful)

        by Dcnjoe60 ( 682885 ) on Sunday January 25, 2015 @04:48PM (#48900157)

        The problem with Pascal is not that it is bad, but that it provides nothing of value to offset the cost of maintaining a separate toolchain, training programmers, building libraries, etc. What can you do in Pascal that you can't do in C++, or Python, or Java? Why do we need yet another language, that has no particularly useful features?

        This could be said about any programming language. Back in my university days (we still had keypunch machines, then), I had a professor state that you could write just about anything in any language. For instance, you could write a banking app in FORTRAN or a program to calculate the trajectory to the moon in COBOL, but in the end, you should use the best tool suited for the job.

        So, yes, Pascal can't do anything that C++, Python or Java can't do; that's not the point. Is Pascal better suited to some tasks than those languages? That is what the OP is really asking.

        • Re:Modula-3 FTW! (Score:5, Insightful)

          by ShanghaiBill ( 739463 ) on Sunday January 25, 2015 @05:27PM (#48900379)

          Is Pascal better suited to some tasks than those languages? That is what the OP is really asking.

          That is also the question I was asking. I believe the answer is "no". Or at least close enough to "no" that it doesn't matter.

          Where I work, we have code in C, C++, Java, Python, Perl, PHP, and JavaScript. All of those language incur a cost, and we would love to eventually pare down the list (Perl is the most likely to go). If you want to write code in yet another language you would need a VERY good justification. I just don't see any place for Pascal in a modern professional programming environment. The theoretical advantages are minimal to nonexistent, and the practical disadvantages, in tools, libraries, maintenance, integration, talent pool, etc. are substantial.

      • Re:Modula-3 FTW! (Score:4, Insightful)

        by Anonymous Coward on Sunday January 25, 2015 @05:41PM (#48900451)

        Mmmm. PASCAL was designed by Wirth as an introduction-to-programming instructional language. It was supposed to teach the logic, methodology and 'best practices' of programming as they were defined then.

        Then it got adopted as a production language ... and God knows why ... and went through a few iterations to iron out the bugs and add some features and utilities that a serious production/development language would require (including, most importantly, killing that one shot compiler).

        As a result it has very few strengths compared to purpose designed languages/environments

        • Re:Modula-3 FTW! (Score:5, Informative)

          by Motard ( 1553251 ) on Sunday January 25, 2015 @08:29PM (#48901313)

          Mmmm. PASCAL was designed by Wirth as an introduction-to-programming instructional language. It was supposed to teach the logic, methodology and 'best practices' of programming as they were defined then.

          And it did.

          Then it got adopted as a production language ... and God knows why ...

          Oh, I don't know....maybe it represented the logic, methodology and best practices of programming

          and went through a few iterations to iron out the bugs and add some features and utilities that a serious production/development language would require (including, most importantly, killing that one shot compiler).

          And evolved into seriously great products like Turbo Pascal and Delphi.

          As a result it has very few strengths compared to purpose designed languages/environments

          It remains a great choice precisely because it isn't designed to a particular purpose, but is quite adaptable..

      • Re:Modula-3 FTW! (Score:5, Interesting)

        by vux984 ( 928602 ) on Sunday January 25, 2015 @06:06PM (#48900587)

        . What can you do in Pascal that you can't do in C++, or Python, or Java?

        So the world only needs 3 languages? Everything from Lua to OjectiveC to Javascript to Haskell... we already have C++, Python, and Java.

        And frankly that's an odd 3 to choose. Why Python? Why not Javascript? Why not Lisp?

        Maybe we just need Pascal, Lisp, and C#.

        "all the extra typing"? I don't even know what to say to that. 99% of programming, is design and debugging. 1% is the actual "typing out the code". If you lost 50% of your time to typing out the code due to typing out begin and and I've got serious concerns about the design.

        and reduced readability

                  Formatting, indentation, and syntax highlighting make using being and end work just fine as block markerers.

        Plus I admit I hate python's semantic white space. At least begin and end don't get mangled simply by copy and pasting a snippet. And since all the semantic information is in the content, the IDE can do the pretty formatting FOR YOU to improve readability.

        • by waimate ( 147056 )

          Agreed the verboseness argument is bogus, otherwise the whole debate would consist of COBOL people on one side, and APL people on the other. They are at opposite ends of the spectrum of verboseness, and both languages largely suck, but for different reasons.

      • Re:Modula-3 FTW! (Score:5, Informative)

        by SAN1701 ( 537455 ) on Sunday January 25, 2015 @06:19PM (#48900677)
        In my experience (about 20 years professionally working with Delphi, since the first version), the biggest advantage of Object Pascal over C++ is its strong typing discipline. It makes a program more maintainable on the long run, and errors are easier both to avoid and find. Pointer and String handling are also better in Pascal IMHO, and finally compilation time is also much shorter, which is not something to be disregarded when debugging a big project. Against Java or Python, desktop applications are usually more responsive with Object Pascal as it outputs machine code without JIT or GC involved (and usually Delphi will output a single .exe, without the need for any DLLs). Sure enough, you have to remember to destroy your objects, although newest versions of Delphi can use ARC on mobile platforms. My 2c. Sure I've already used all 3 (Python, C++ and Java) when I needed, but I've never felt as productive in any of these as I am in Object Pascal. So maybe the language has it's values.
        • Re:Modula-3 FTW! (Score:4, Informative)

          by waimate ( 147056 ) on Sunday January 25, 2015 @08:34PM (#48901343) Homepage

          +1 to parent. Strong typing raises compile-time errors that otherwise would end up as pernicious run-time bugs. That means less time debugging and more reliable software. It's the total opposite of the sort of hippie "oh man, just grow the data structure however you feel at the time" approach of Python.

        • by jma05 ( 897351 )

          > Pointer and String handling are also better in Pascal

          Used to be better. C++11 string handling and pointer features are certainly better than what Object Pascal can offer now.

          The best parts about Delphi were everything except the language. VCL, IDE and the fast compiler were all great and I still favor them. The language itself was, although very clean, not as productive to work in (just tiedious to type and too verbose to read - no complaints about its semantics). It was however well-modified to suppor

    • begin
      Pascal should die!

      There is a Modula-3?

      I took Modula-2 in university a long time ago... The CS program had dropped PASCAL that year and went with MODULA-2.

  • Because it's the only language I have extensive experience in.

  • by Billly Gates ( 198444 ) on Sunday January 25, 2015 @03:08PM (#48899527) Journal

    In 2015 we choose languages on rich sets of apis. Java for example is almost universally hated for it's syntax yet is insanely popular. Why? 150,000 methods to choose from and frameworks galore.

    No one cares about features as its not 1982 anymore where you write your own libraries. Today you have a task and a tight deadline and there is no time to program. Only time to grab a framework can tinker with it.

    • Agreed, there are hundreds of programming languages, discussion about their merits is overshadowed by the need to get shit done. Evolutionary theory posits that organisms fill niches, but it doesn't assign importance to niches.

      • The only thing most IT projects gets done is throwing money down the drain (even when ostensibly successful, like most security sensitive C code).

    • by William Baric ( 256345 ) on Sunday January 25, 2015 @03:27PM (#48899651)

      You're right and that's pretty much why computer programs are now so ridiculously buggy and require bug fix releases every two weeks. But then again, as long as customers still buy without complaining, why bother with quality? Worse, a lot of people now think a bug fix release every two weeks is a sign of quality!

    • by Anonymous Coward on Sunday January 25, 2015 @03:30PM (#48899681)

      That. I couldn't care less if you replaced x = 1 for x := 1 or other simple syntax changes like that. The main thing is, nobody uses Pascal anymore, there's pretty much no useful libraries/frameworks/tooling and whatever else for it, little online resources for it, no jobs that need it and so on. This discussion is outdated by at least a decade. Pascal lost and it won't be back, end of story.

      • Re: (Score:2, Informative)

        by Anonymous Coward

        actually, I find what you say about: " there's pretty much no useful libraries/frameworks/tooling and whatever else for it, little online resources for it, no jobs that need it "

        to be FAR more true for C than Pascal. Pascal has Lazarus and Delphi IDE which you can make GUI applications effortlessly across many platforms, and it WORKS and they are far less buggy (compare this to KDE/QT, GTK1/2/3/4/5, XUL, or whatever the craptastic incomplete and buggy hipster "framework du jour" is this week. I use Pascal

        • by geoskd ( 321194 ) on Sunday January 25, 2015 @04:13PM (#48899947)

          to be FAR more true for C than Pascal.

          On an instruction cycle basis, there are orders of magnitude more C code executing in the world today that any other language. The worlds single most executed pieces of code are all written in C. People should keep that in mind when they make proclamations about C's demise. C will be with us for many hundreds of years for the same reason COBOL wont die, only far more so.

          All android devices run Linux at their core which is C. Further, a large swath of embedded devices that don't use android are written in C anyway. These language popularity counting systems always neglect the jobs that require C, but don't explicitly state that. Jobs like hardware designers that need to provide hardware access code. Virtually nobody writes embedded code in Java, Perl, Pascal, COBOL, or any of hundreds of other languages. The few that have made some inroads into embedded systems are rare, and have not made much progress. If you want to understand the Internet of things, you'll only ever get halfway there if you don't know C.

        • Re: (Score:2, Informative)

          by Anonymous Coward

          C is used extensively in embedded development and in tons of open source projects. There's countless job opportunities right there, locally. C++, C# and Java also have tons of opportunities, as well as tons of others on the web development side (PHP, Javascript and what not). There's no shortage of opportunities if you know those.

          As for Pascal, Delphi, Lazarus and such, I just don't see how they solve any problem better, they offer none of the tools I need, and there's literally *ZERO* jobs for it within 25

      • by HiThere ( 15173 )

        From my point of view, the problem is lack of documentation. I *think* that fpc Pascal can not properly handle utf8 strings, and determine the general character class of individual characters (something that Java struggles with), but the documentation is so bad that I'm not sure. And I didn't bother to test because I couldn't find any good samples to start from. Lazarus has a lot of good press, so i can accept that it is a powerful GUI development tool, but that's not what I'm doing.

        FWIW, I've got a long

        • by Teancum ( 67324 )

          I *think* that fpc Pascal can not properly handle utf8 strings

          Only because of purists that insist a six byte character is counted as one character.

          A lack of documentation is an issue, but that is simply because it is an open source project. About par for the course on most open source projects, from my experience too. Delphi has some amazing documentation, but then again they can pay for that documentation to be developed.

    • by mc6809e ( 214243 ) on Sunday January 25, 2015 @03:32PM (#48899691)

      I have to agree, but it's too bad in some ways, IMO.

      I used to get so much joy programming the metal or tinkering with the assembly that came out of the compiler.

      Doing that is still possible, but it doesn't pay the bills.

      The dream of abstraction is a bit of a nightmare for those that like to get into the guts of the machine.

      GPU programming is another example, though Mantle allows the programmer to get a bit closer to the hardware.

      • by itzly ( 3699663 )

        Tinkering with low-level C (and occasionally assembly) in real time embedded code still pays my bills.

        • by Austerity Empowers ( 669817 ) on Sunday January 25, 2015 @03:57PM (#48899837)

          The issue is that most of the time people doing this work are on the hardware teams, rather than the software teams. It's a hard world to live in, to be sure, the silicon & pcb guys think you're software (i.e. you write code that executes ON a processor, not code that creates the processor). The software guys don't speak the same language: they're hung up on methodologies, APIs, code style & the business of software, or else are more heavy in to the software research side of pure algoritms. It can be tough to fit in, but the job has to be done, it isn't any less essential, just a bit more niche.

          • by itzly ( 3699663 )

            Yes, that's how it usually is. Without at least an understanding of hardware and electronics, it's hard to do embedded work. At least you'd need to be able to tell the hardware guys what controller/pins to use, and be able to review the schematics.

      • by brunes69 ( 86786 )

        If you want to play with research languages and esoteric forms of programming, then don't get a job in industry, and stick to academia. No one in industry uses Pascal, D, Go, or any of these languages du-jour on Slashdot, because they lack some combination of robust libraries, performance, online knowledge bases, or all 3.

        Almost all business applications and consumer-facing applications written in industry today are done in 5 languages

        - Java, because of it's incredibly rich library set under the Apache proj

    • by brunes69 ( 86786 ) <slashdot AT keirstead DOT org> on Sunday January 25, 2015 @03:53PM (#48899813) Homepage

      I often feel like everyone on Slashdot is a mix of two people

      - Old 50+ year olds used to the good 'ol days when you would write your own stack from scratch whenever writing an application

      - 20 year olds fresh out of (or still in) college who yell "squirrel!" at everything new and shiny

      The truth is, that 75% - 90% of the business applications that make the world go 'round, and make nearly every startup today go 'round, are based on Java or some complimentary technology like Node.js with Java bindings. The reason for this is simple: The Apache foundation. There are SO MANY amazing enterprise-class Java libraries available via the Apache project that there is little to no reason to ever write your own. The mantra where I work, and it should be where EVERYONE works, is before you write any plumbing code at all, check Apache first. People who roll their own plumbing code INVARIABLY end up with subtle errors they did not think of or subtle problems that will manifest themselves in 2 or 3 year when they try to scale.. and all these problems were likely already figure out long ago.

      When building a woodsheed, do you cut down the trees, mill the lumber, and forge the nails? Of course not, you take advantage of modern economies of scale so you can focus on the REAL building project, not the building blocks. The same is true for any halfway competent software developer.. The days of people writing their own libraries for DB MVC, for configuration management, for network access, for parsing libraries, for thread pools.. these days are gone, and thank god. The less you have to worry about the low-level plumbing, the more you can focus on the real business problem. And furthermore, the more people that make use of a low level plumbing libary, the better and more secure and stable it becomes, for everyone.

      • by Motard ( 1553251 ) on Sunday January 25, 2015 @07:18PM (#48900977)

        I'm an old 50+ developer who has had to reinvent myself several times throughout my career. And while a lot of really good new developments for, um, developers have come our way, a lot of valuable things from the past have been lost. For instance, I continually cringe when needing to write SQL code within some other language. There was a time when database access was actually a fundamental part of the language. 4th generation languages, for instance, are largely forgotten - but they really were useful. Same goes for ISAM data access. It is insanely efficient compared to what we typically do today.

        Yes, SQL is great for some tasks, but most of that functionality is merely overhead for the sorts of common tasks and application has to perform on a daily basis. If I have the primary key to a table, it's wasteful to generate a query when I can just say 'get me this'.

        This is where NoSQL proponents might pipe in with new solutions. But those aren't usually good solutions for general purposes. I've seen too many over-normalized databases over the years, and talked to their proponents. They propagate an ideology of theory over practical considerations.

        The thing is though, Pascal excels (or can excel) at all of these things. I'm really referring to Delphi here. The component library available is huge and varied, By your choice it is 100% open source, or completely proprietary, or a mix. In fact, the only major problem I've ever had with Delphi is rebuilding your development environment on a new machine, because you've installed so many tools over the years.

        With Delphi, I could drop a terminal emulator on a form and have it working in five minutes. Or I could resort to in-line assembly language if needed. I could, off the top of my head, develop web apps in at least three totally different ways.

        I saw a comment further up the pages that asked why we need Pascal when we have C++, Java and Python. Well, seeing as how Pascal predated all of these, and will do everything those do, why do we need the newer languages?

        I really encourage younger developers to give it chance. You can install and use Lazarus for free. I feel that Delphi is better polished and reliable, But if you're really an open source advocate, then contribute to Lazarus and/or Free Pascal.

        Having had some experience with most of these other technologies, I think you might be surprised at how much you're missing.

        • I'm 60+, and I don't agree.

          If database access is a fundamental part of the language, then it limits the language to what database was popular when the language developed. Same for file systems. A program should read files as it likes and let the file system make it efficient, rather than specify reading in ways that don't match the current file system and make everything awkward.

          If you have the primary key to a table, then a SELECT statement is going to be really fast. SQL optimization can be an arc

  • by jellomizer ( 103300 ) on Sunday January 25, 2015 @03:08PM (#48899529)

    For most cases the language is rather minimal on the impact.
    The quality of the compiler and supporting libraries give performance. The IDE usually offers the ease and speed of development.

    Sure some languages make some things easer then others, or makes it easier for the compiler or interpreter efficient.

    But for the most part with language preference it is just about chest thumping to try to show who is the alpha geek.

    • by edibobb ( 113989 )
      This is absolutely true. The major languages today have some serious problems, but the IDE makes it faster to program in them despite the problems.

      However, chest thumping is fun. I hope to see a lot of new languages.
  • by smittyoneeach ( 243267 ) * on Sunday January 25, 2015 @03:08PM (#48899531) Homepage Journal
    I want every programming tool with which I interact to have some special thing that it teaches. What is unique and distinctive about Pascal, the way, say, Perl brought regular expressions to the masses?
  • by caffiend666 ( 598633 ) on Sunday January 25, 2015 @03:09PM (#48899537) Homepage
    Pascal is straight forward, something missing from most modern language which hide substantial implicit variations in how the language behaves by handing behind syntax like Perl or impossibly verbose statements like VB. I worked with Delphi professionally and still think fondly of it. Is a third-generation language, so is closer to system behavior, but is also a great teaching language which is sorely lacking from modern programming.
  • Yes. (Score:4, Insightful)

    by halivar ( 535827 ) <> on Sunday January 25, 2015 @03:09PM (#48899539)

    Or, more specifically, Object Pascal. The work that Anders Hejlsberg did on Turbo Pascal and Delphi are very underrated, and conceptualized a lot of ideas that would bear fruit in C#.

  • by jolyonr ( 560227 ) on Sunday January 25, 2015 @03:11PM (#48899549) Homepage


    When the only jobs for Pascal programmers are teaching other people how to program in Pascal, you know there's a problem.

    • It's funny because I learned to program in Pascal, that's what high school AP CS was taught in at the time. Then I learned C 6 months later and wondered why anyone would ever use Pascal. Then I saw this thread, and I wonder ....

      • by angel'o'sphere ( 80593 ) on Sunday January 25, 2015 @04:57PM (#48900213) Journal

        Pascal wins over C hands down as soon as you are doing something that is 'business' and not bit shuffeling.

              MyStufd is RECORD ....
                MyData is file of MyStuff;
        var infile, outfile : MyData;
                    data : MyStuff;
              infile := openForReading("filename");
              outfile := openForWriting("anotherfile");
              { read and pick the result to write to outfile }
              read(data, infile);
              if 'data is good enough' then
                      write(data, outfile);

        BTW, not sure about keywords, I think 'is' is Ada and not Pascal, but you get the idea.

        There are plenty of other examples, like packed arrays of records, sets, the clear hierarchy of consts, types and variables, var parameters to procedures etc. etc. The definition of units and the usage of them comes to mind. Yes, you can do all that in C, but you use ideoms and need much more knowledge what you are doing. In Pascal it is super simple to write a 'compilation unit' that is either a program or a (part of a ) library, in C it is not, you ned to know when and why to use extern, static etc.

        If you believe C is in any way better than Pascal you can not program ... definitely not in Pascal and very likely not in C either.

  • Delphi targets Windows, OS X, iOS and Android.
    Does it now? When they put out the Linux version i think they depended on Wine... just for the IDE or for the compiled apps, I can't remember.

    • You're thinking of Kylix from the bad old days; wine was needed for both the IDE and the apps. From what I can find it still appears to use winelib.

      In a way, this makes sense (even though it's disappointing) because it's easier to make a shim to each os/display manager than it is to rewrite everything. But still ...

  • IMHO the biggest advantage of pascal was that data structures were well denfined and that strings were not nul terminated.

  • Early fragmentation (Score:5, Interesting)

    by itsdapead ( 734413 ) on Sunday January 25, 2015 @03:28PM (#48899661)

    One early problem with Pascal was fragmentation: while there were various decent, proprietary, dialects that let you actually write code that did stuff, *standard* Pascal was as much use as a chocolate teapot. Standard Pascal had lousy I/o and minimal libraries. the standard didn't even specify how to open a file, whereas C always had a decent subset of the Unix API as part of the de-facto K&R standard.

    Had Pascal come a few years later when the IBM PC had crushed all before it, then something like Turbo Pascal might have been far more successful. However, back when there was more than one type of PC to worry about, C's huge standard library, and it's preprocessor for fixing minor dialect issues made it unbeatable for writing portable code.

    • Pascal, especially the versions running on the UCSD P-Systems, was once the largest install base of computer software. []

      Your analysis is wrong. No one really knows why C displaced Pascal, in fact I would say, it was not C but C++.

      My judgement is that the high costs of Eiffel and Ada compilers/envirnomnets helped C++ to pave the way.

      Around that time (1990 - 1995) we also had a rise of OO and CASE and modeling methods (OMT, Booch etc. and later UML). I assume the focus of modeli

      • by putaro ( 235078 )

        I'd say that the reason C eclipsed Pascal was the popularity of Unix. There was an explosion of Unix systems in the mid 80's (including Sun workstations but many, many others) that were fairly inexpensive but with a lot of power and they were all programmed in C. Pascal had a lot of popularity on PC's with Turbo Pascal and a lot of stuff written of the Macintosh was Pascal back then (if you look at the old Mac API's you'll see an abundance of "pstrings" or Pascal strings) but C was "cooler" because it was

  • ...In the recent Slashdot discussion on the D programming language, I was surprised to see criticisms of Pascal that were based on old information and outdated implementations. ...

    Criticisms based on old information and outdated implementations also plague object-oriented FORTRAN 2003.


  • Given the value of having other people using the same software that you are(they encourage commercial support and/or contribute to FOSS support, they sometimes save you a ghastly bug-slog by running into it before you do, the work that they start but don't finish, or that needs maintenance, may be your next job, etc.) isn't 'being underrated' itself a defect, however unfair it feels?

    Ubiquity isn't always a good thing, especially if it makes it harder for everyone to distinguish between barely adequate cr
  • One of its unattractive features to programmers who are probably more familiar with c#/java is its verbosity. Having to declare ever function twice in an interface and implementation section gets tedious and seems unnecessary given Delphi has provided RTTI for years. At least with c++ you could in theory code everything in a header file - although I've heard that is sure fire way to make a summoning grid and summon an elder one.
  • Ahh... Pascal. (Score:5, Interesting)

    by fahrbot-bot ( 874524 ) on Sunday January 25, 2015 @03:44PM (#48899753)

    My university actually taught/used Pascal in the classroom in the early/mid 1980s and I graded programs written in it. Kernighan's criticisms of Pascal on BSD are spot on - I know, I tried using it for a (more) serious project. The semester project for my Operating Systems class was to simulate an interactive operating system - in Pascal.

    The system used for the class was the University's IBM 4381 [] mainframe running MUSIC [] ("McGill University System for Interactive Computing") and the version of Pascal had *lots* of libraries and features.

    I was a undergraduate research assistant (working on an AI project, funded by NASA, in LISP and Prolog) and had an account on the VAX-785 running 4.3BSD and wanted to use *that* (on my schedule) instead of standing in line to use the IBM. My instructor said "sure", but I'd have to port the support libraries he wrote for the assignment. Unfortunately, the version of Pascal on BSD was just the basic language - as specified in the Language Definition book by Jensen and Wirth. Porting the code from the "richer" version of Pascal on the IBM/MUSIC to the "basic" version on VAX/BSD was simply not possible.

    So, I asked my instructor if I could, instead, do the semester project in C. He said "sure", but, again, I'd have to port his libraries from Pascal to C. Now... I didn't know C at the time, but porting his code to it and doing my semester project in it was a great introduction - and I passed the class. All-in-all, this experience help me out immensely with my CS career as I do a LOT of cross-platform work in many programming languages - though not Pascal :-)

  • by jgotts ( 2785 ) <> on Sunday January 25, 2015 @03:50PM (#48899781)

    It doesn't matter what programming language you use. Go ahead and use Pascal if it's the best choice for the job.

    To be a great programmer, you need to write code that reads like English. We have a framework inside of brains called English speech, reading, and writing. If you're a French speaker, or speak another European language, your framework isn't much different. A great French programmer or a great German programmer will program similarly to a great English programmer. Everybody's seen expressive code. You can look at the code and understand what it does almost instantly. Comments, variable names, abstraction, everything that makes a great programmer, all of these things come into play. Conversely, everybody's seen shitty code that takes several days to understand. I don't care what language it is. You're a horrible programmer if you write code like this. Nobody cares how clever you are, or how you've mastered the specific grammar of a certain language. You will eventually move on and someone else will have to modify your code. The best place for clever code is in the trash bin.

    To be a great programmer, you need to be able to plan out what you're going to do in advance. Everybody's worked with hacked together shit, and has had to maintain it. Hacked together shit wastes programmers' time. Spend a few days doing absolutely no "programming" whatsoever. Instead draw some flowcharts, try out a rough prototype, brush up on some theory, write up an estimate, and have someone else review everything.

    Learn to be realistic about how long your work will take. I know, genius programmer, you can get everything done in about a day. Be true to yourself and don't try to impress anybody with your speed coding abilities. Take your time, and get it done right. Spend an entire day or several days testing. There's nothing better than a launch that is bug free.

    Be prepared to explain your code on a whiteboard to your own mother. If you can't explain what you're doing to your own mother, you don't understand the problem well enough, and chances are you're overlooking something. Your boss will have somewhat more expertise than your mother, but if you can justify what you're doing to her then you're probably on the right track.

    Don't be that guy who jumps on every programming fad. If something been around for 20 years, it's probably worth considering. If something's been around for 3 years, perhaps the fad will die out and your company will get stuck maintaining an obsolete framework. Been there, done that.

    I don't care if you went to MIT or only high school, we're all equal. You can't go away and work in your little PhD way, emerging a month later with a piece of code that everyone despises. Programming is a team effort. If you think that nobody else can write a piece of code except a PhD, then guess what? Your software is likely to fail, because nobody will be able to maintain it, especially when that PhD leaves to go be a professor at Stanford.

    I've seen these mistakes repeated over and over for all 25+ years I've been a programmer.

  • by vanyel ( 28049 )


  • by BenJeremy ( 181303 ) on Sunday January 25, 2015 @03:56PM (#48899825)

    Pascal was my first procedural language, after spending a year with BASIC on PET computers in the classroom (1982). We used TurboPascal on CP/M, and it allowed me to start writing serious software, as act as a gateway to C and later C++.

    Today? I'd probably want to start a new student with C# or Java, but the concepts working with C and Pascal are more relevant to understanding the underlying mechanics of compiling code and coding "closer to the metal".

    On the other hand, early BASIC was probably an easier transition to Assembler (who codes in that any more, though?).

  • Spare a thought for the hardware engineers who have to suffer with languages that are derived from real languages with whatever the hardware engineers thought would be a good thing to add to make it a HDL. ADA -> VHDL, C-> Verilog, Verilog -> System Verilog, C -> System C.

    I might design hardware but I have a CS degree and the horror of these carbuncles is not lost on me.

    The macros in Verilog and System Verilog might just be the worst thing in any language anywhere.
    The absence of a fundamental lo

  • by NothingWasAvailable ( 2594547 ) on Sunday January 25, 2015 @05:05PM (#48900245)

    I worked on an industrial project that consisted of a couple of million (with an "M") lines of Pascal. We used IBM's Pascal/VS dialect. Pascal/VS had extensions that made it very, very close to Modula-2. We used Pascal because it was portable (across IBM platforms) and strongly-typed. At the time, it was the only strongly-typed language available to us. Our error rate (bugs reported by customers) was incredibly low, because it was really hard to make many of the screw-ups that were then common in PL/1, Fortran, and c. We ended up with a system that ran across IBM's product line (mainframes, workstations, PC's).

    As Pascal aged (we could see that support would be ending), we moved to C++ by converting the entire code base into a subset of C++ (using a software package we purchased and thousands of lines of AWK and sed). We used C++ as a "strongly typed subset" of "c" for about 10 years, before we started converting to objects and methods.

    That project started in the 80's and is only now (almost 30 years later) being rolled up and decommissioned. The original architecture was very structured, streamlined, and simple; with an incredible amount of effort going into defining data structures (as befit the restrictions of Pascal, like no dynamic arrays). It held up very, very well. Still blows the doors off its competition in performance, but the company is getting out of development and support, and needs something it can buy (even if it's slower and has less function.)

  • by ThePhilips ( 752041 ) on Sunday January 25, 2015 @05:43PM (#48900457) Homepage Journal

    The last Pascal-like language I have seen which was more or less interesting is Seed7 [].

    Cursory look at the Free Pascal shows that it has gained lots of useful functions. Bu is that *the* Pascal? The Pascal was standardized by ISO in 1990 [] and as far as I know there were no new version of the standard since then. The Object Pascal [] is not standardized at all. And differs between the implementations (Free Pascal vs. Delphi []).

  • Wasn't that the other programming language whos users would look down on us Basic programmers? My good friend from school was one of those. Now he's a teacher and I'm a software developer.

    Pretty much sums it up, doesn't it?

    OK, jokes aside: Seriously, who cares how a PL is "rated" - whatever that's supposed to mean. How much it's used and how it gets the job done, or, more precisely, how much do I get paid for using it is what counts.
    Example: I love Python. I'm measurably more productive in Python. But I do PHP at work. Why? Wordpress and Typo3 are built with PHP. Python only has Plone and that has almost no market here in Germany.

    Its that simple.

    And to be honest, there are many neat exotic programming languages out there - all of which I would love to have the time to look into, but don't. Pascal definitely isn't on that list.

    My advice to anyone today would be to let go of Pascal and however it is "rated" and learn some other flash exotic language - perhaps one of those countless new ones that run on the Java VM (Scala, Closure, etc.), no?

    My 2 cents.

  • by gatkinso ( 15975 ) on Sunday January 25, 2015 @06:39PM (#48900769)

    ...these days, what's the point of yet another language?

    Don't get me wrong, Pascal was the first language I did serious development in and I really like(d) it. However I am struggling to figure out what I could accomplish in Pascal that I could not accomplish in a myriad of other languages.

  • by __aahgmr7717 ( 855859 ) on Sunday January 25, 2015 @08:40PM (#48901357)

    I am amazed that almost no one seems to be aware that Dr Wirth is 3 generations of software beyond his original Pascal.
    He also created Modula, then Oberon and is now working on Project Oberon using Oberon-7.
    The spin off company Oberon Microsystems created the framework BlackBox and a superset of Oberon called Component Pascal.
    Component Pascal is now maintained by the user community and is open source. []

    I don't especially like Pascal but I love Component Pascal!

  • by Tony Isaac ( 1301187 ) on Sunday January 25, 2015 @11:10PM (#48901865) Homepage

    It's not the language, it's the ecosystem.

    The fact is, I don't want to write every function and class from scratch. With JavaScript, C#, C++, or Java, there are tons of source code snips, classes, and libraries out there to do just about anything you could imagine doing on a computer. This lets me (mostly) focus on what I'm trying to get done, rather than focusing on how to make the tools to get my job done.

    After using dozens of languages in my career, I'm pretty language-agnostic. Most of them can do the job. But the ones that make me the most productive, are the ones that are thriving on Stack Overflow and Code Project.

  • by Casandro ( 751346 ) on Monday January 26, 2015 @02:05AM (#48902397)

    Unfortunately the state of desktop applications is now to bad, that Lazarus is now pretty much the only alternative left, particularly if you want to distribute your software in binary. .net requires the user to install a huge and fragile framework. Java does the same and even adds an insecure browser plugin. In both cases your code will need an installation routine. And even then, Lazarus will be able to compile for more platforms than Java and .net support.

    On Lazarus you get a statically linked binary you can just plop onto your system and execute it. So up- and down-grading your application is trivial.

    Plus you get things like bounds checking simply with a compiler option. In my tests it didn't hurt the speed, probably because the compiler can easily find out when they are needed and when not. However as far as I know you can enable and disable it per line.

  • by T.E.D. ( 34228 ) on Monday January 26, 2015 @11:19AM (#48904507)

    Pascal, the base language created by Niklaus Wirth, was a nice little strongly-typed toy language. I say "toy" for a very good reason: it had no standard way to modularize. In theory, you'd have to write every program all in one source file! There was also no way around the type system, which is good for purity, but makes low-level systems programming impossible (try doing a CRC on record including floats when you can't convert it to bytes!)

    They released a new standard in 1990, which I understand did not correct these flaws. There was a further standard released in the same year called "Extended Pascal" which did. However, there are only a few compilers that just use that standard with no extensions.

    That's the important thing here. When you see someone saying how great "Pascal" is, they are invariably not talking about Pascal. They are talking about Delphi or they are talking about Object Pascal. While those are both great languages, they are also both different languages. A typical Delphi program cannot be built with an Object Pascal compiler, nor with a standard Pascal compiler. Calling them "Pascal" is about as accurate as throwing Ada on the list, and calling them all "Algol".

    So the real answer here is, No. Pascal is not underrated. Those languages Delphi and Object Pascal might be, but Pascal is not.

Top Ten Things Overheard At The ANSI C Draft Committee Meetings: (5) All right, who's the wiseguy who stuck this trigraph stuff in here?