Slashdot Mirror


Ask Slashdot: Is Pascal Underrated?

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?

94 of 492 comments (clear)

  1. Modula-3 FTW! by Anonymous Coward · · Score: 5, Funny

    begin
    Pascal should die!
    end

    1. Re:Modula-3 FTW! by fisted · · Score: 2

      Replying because I fatfingered "Overrated" instead of "Funny".

    2. Re:Modula-3 FTW! by halivar · · Score: 4, Funny

      It's ok! I got you covered! Wait... crap!

    3. Re:Modula-3 FTW! by ShanghaiBill · · Score: 5, Insightful

      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

    4. Re:Modula-3 FTW! by Crashmarik · · Score: 4, Interesting

      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 ?

    5. Re:Modula-3 FTW! by Anonymous Coward · · Score: 5, Informative

      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.

    6. Re:Modula-3 FTW! by Anonymous Coward · · Score: 5, Insightful

      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.

    7. Re:Modula-3 FTW! by itzly · · Score: 4, Insightful

      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.

    8. Re:Modula-3 FTW! by Lonewolf666 · · Score: 3, Interesting

      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).

      --
      C - the footgun of programming languages
    9. Re:Modula-3 FTW! by Dcnjoe60 · · Score: 5, Insightful

      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.

    10. Re:Modula-3 FTW! by Crashmarik · · Score: 2

      LOL just a note I realized after that post that even checking the C code would render properly in slashdot was harder than equivalent Pascal code.

    11. Re:Modula-3 FTW! by Grishnakh · · Score: 4, Insightful

      People gave up on Pascal and moved to C++ back then for a reason. Now you're asking people to go back to something which was abandoned in the past, for presumably good reasons. You need to have a **really** good reason for this, instead of just moving to a more modern language.

    12. Re:Modula-3 FTW! by Grishnakh · · Score: 2

      This is an idiotic comment.

      C, C++, and PHP are still very popular languages. Perl is not; it's largely faded away except for a few niches, for various reasons, and has been replaced mostly by Python.

      Pascal has been mostly dead for a long time. However Python (which you obviously favor as "clean") is hugely popular these days, and Java is still holding its own in the enterprise space.

      Obviously, your opinion of what is "ugly and unreadable" or "clean" has absolutely nothing to do with which languages are popular.

    13. Re:Modula-3 FTW! by ShanghaiBill · · Score: 4, Insightful

      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.

    14. Re:Modula-3 FTW! by Anonymous Coward · · Score: 4, Insightful

      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

    15. Re:Modula-3 FTW! by Anonymous Coward · · Score: 5, Funny

      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.

    16. Re:Modula-3 FTW! by Monkey-Man2000 · · Score: 4, Insightful

      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**

      --
      This post was generated by a Cadre of Uber Monkeys for Monkey-Man2000 (603495).
    17. Re:Modula-3 FTW! by vux984 · · Score: 4, Interesting

      . 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

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

      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.

    18. Re:Modula-3 FTW! by SAN1701 · · Score: 5, Informative

      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.

    19. Re:Modula-3 FTW! by Creepy · · Score: 2

      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.

    20. Re:Modula-3 FTW! by Monkey-Man2000 · · Score: 2

      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 experienced programmer would even want/expect a 7.

      --
      This post was generated by a Cadre of Uber Monkeys for Monkey-Man2000 (603495).
    21. Re:Modula-3 FTW! by war4peace · · Score: 2

      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.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    22. Re:Modula-3 FTW! by innocent_white_lamb · · Score: 3, Informative

      the structure of the program is easier to read in C.
       
      I agree, but with the proviso that the C indentation style is what you're used to reading and like to see.
       
      I personally am one of those weirdos that likes whitesmiths style since the functions and whatnot are well separated and program structure is easy to deduce by looking at the indentation.
       
      In fact, I use Artistic Style to convert any C code that I'm planning to study into whitesmiths style just to save my sanity.
       
      I keep meaning to learn to use cscope for this stuff, but somehow never quite get around to it.

      --
      If you're a zombie and you know it, bite your friend!
    23. Re:Modula-3 FTW! by Monkey-Man2000 · · Score: 2

      I said that as well ("Both sets look synonymous"), but if your non-programmer was told 22 div 3 and 22/3 each did different things, while 22/3 and 22/3.0 did analogously different things, which set would they correctly understand?

      --
      This post was generated by a Cadre of Uber Monkeys for Monkey-Man2000 (603495).
    24. Re:Modula-3 FTW! by Teancum · · Score: 4, Insightful

      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.

    25. Re:Modula-3 FTW! by civilizedINTENSITY · · Score: 2

      So rather than teach your kid to not defecate on the floor, you'd buy them nice mops?

    26. Re:Modula-3 FTW! by Teancum · · Score: 3, Interesting

      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).

    27. Re:Modula-3 FTW! by Motard · · Score: 4, Informative

      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..

    28. Re:Modula-3 FTW! by waimate · · Score: 3, Informative

      +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.

    29. Re:Modula-3 FTW! by lucm · · Score: 4, Funny

      when I try making heads and tails of curly brackets I fall flat on my face.

      Just think of them as melting square brackets.

      --
      lucm, indeed.
    30. Re:Modula-3 FTW! by waimate · · Score: 2

      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.

    31. Re:Modula-3 FTW! by Motard · · Score: 2

      Yes, there really is a good reason. To get the universe back into balance. Back in the day, people bought into their developments tools on the basis of cost and quality. Then companies like MS and Oracle followed the long established lead of the likes of IBM and charged managers through the nose for the 'most advanced technologies'. But the weren't really, and all of us techies knew it.

      Turbo Pascal was a full participant in the PC revolution. It brought advanced capabilities - much more advanced than IBM or MS were offering at a hobbyist price. But it continued, until cheaper and better wasn't good enough. It had to be free.

      There are some really great free products out there. But none of them are of a quality that can compete with the high end companies who are developing their programs for their paying customers rather than for themselves.

      Companies like Borland found themselves in the middle of this. The ill-fated Kylix is the proof. Partially free didn't work. Now our choices are limited to Free or $10,000.

      It sucks.

    32. Re:Modula-3 FTW! by Motard · · Score: 3

      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.

    33. Re:Modula-3 FTW! by Teckla · · Score: 3, Insightful

      Why do you need native binaries? You can package the Java JRE with your app so it can be run if no Java is installed.

      Having to wrap small utilities with an installer and a big JRE stinks. Plus there are licensing considerations when redistributing the JRE. No?

    34. Re:Modula-3 FTW! by Anonymous Coward · · Score: 2, Insightful

      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**

      You take a single case (Div vs /) to explain the whole idea. Thats not right.

      There are even contests to make porpusefully obfuscated C code !

      C is one of the most unreadable languages in wide scale use, period.

    35. Re:Modula-3 FTW! by jma05 · · Score: 2

      > 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 support IDEs. It was Delphi that first had language level support for properties, event_handlers and the like.

      I still use Lazarus/FreePascal, but wish that I could use/mix modern C++ into the projects.

    36. Re:Modula-3 FTW! by CadentOrange · · Score: 2

      Hey! It was cheaper than building a toilet...

    37. Re:Modula-3 FTW! by TheRaven64 · · Score: 2
      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 for semantic indentation and spaces for alignment and an editor that supports highlighting tabs, but the Python style guides tell you not to do this.

      --
      I am TheRaven on Soylent News
    38. Re:Modula-3 FTW! by TheRaven64 · · Score: 2

      Implementing this in the standard library means that the language needs to support pass-by-reference (which Pascal and C++ do, but C doesn't). This single feature does a lot to reduce readability. In C, I know that inc(x) is a function that does not modify the value of x, without reading any additional code[1]. In Pascal or C++, I need to look at the definition of inc() to know if x will be the same before and after the call.

      An important idea at the core of readability for a language is the amount of code that I have to read to understand a single line. In any language that has pass-by-reference, this amount is larger than a language that doesn't. To achieve the same thing in C, I'd have to write inc(&x), and then everyone reading that code would know that x may be modified. (Note: the almost-equivalence of array and pointer types in C is a good counterexample where Pascal wins massively in readability).

      [1] It could be a macro, but most coding conventions require macros that can't be used as if they were functions to be all-caps.

      --
      I am TheRaven on Soylent News
    39. Re:Modula-3 FTW! by RabidReindeer · · Score: 3, Interesting

      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.

  2. Of course it is! by sharkette66 · · Score: 2

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

  3. Discussion is outdated by Billly+Gates · · Score: 5, Insightful

    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.

    1. Re:Discussion is outdated by fsterman · · Score: 2

      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.

      --
      Is there anything better than clicking through Microsoft ads on Slashdot?
    2. Re:Discussion is outdated by William+Baric · · Score: 5, Insightful

      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!

    3. Re:Discussion is outdated by Anonymous Coward · · Score: 5, Informative

      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.

    4. Re:Discussion is outdated by mc6809e · · Score: 3, Interesting

      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.

    5. Re:Discussion is outdated by Anonymous Coward · · Score: 2, Informative

      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 because I like to get shit DONE, not be some weiner endlessly arguing about how many angels fit on the head of a pin.

    6. Re:Discussion is outdated by Austerity+Empowers · · Score: 3, Funny

      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.

    7. Re:Discussion is outdated by brunes69 · · Score: 2

      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 project.
      - Python, for anything that does not need to be compiled
      - JavaScript, for Web development and Node.JS development
      - C/C++, for performance oriented applications, or used with a cross-platform toolkit for Windows/OSX applications
      - C# Applications that are Windows platform exclusive
      - Objective C (and now Swift) Applications that are OSX/iOS exclusive

      Before you villify me, yes I am not retarded and I know that you can compile and run C# applications on OSX and can compile and run Objective C applications on Windows. The truth however is, no one in industry actually does this. If you write an application you want cross platform, you do it using a cross-platform toolkit.

    8. Re:Discussion is outdated by HiThere · · Score: 2

      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 series of desires for my programming language, and no language that I'm aware of satisfies all of them. But if its a lot different from languages that I already know, then I'm less willing to invest time learning. Pascal should have a clear bonus here, as I used to program in Object Pascall on the Mac II, but the documentation is so bad that I've tried radically different languages (e.g., Racket Scheme) and passed over fpc. (Mind you, a few years ago it was missing some needed features, but now I think that it has all the features I need, probably, but I can't be sure.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    9. Re:Discussion is outdated by geoskd · · Score: 4, Insightful

      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.

      --
      I wish I had a good sig, but all the good ones are copyrighted
    10. Re:Discussion is outdated by Anonymous Coward · · Score: 2, Informative

      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 250km of where I live (I didn't search beyond that). For most of us it's just not an option.

    11. Re:Discussion is outdated by Pinky's+Brain · · Score: 2

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

    12. Re:Discussion is outdated by Pinky's+Brain · · Score: 2

      Add one extra order of magnitude for amount of buffer overflow based exploits it has caused.

    13. Re:Discussion is outdated by Teancum · · Score: 2

      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.

  4. Languages preferences are so subjective. by jellomizer · · Score: 2

    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.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  5. Let's flip this around by smittyoneeach · · Score: 2

    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?

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:Let's flip this around by Anonymous Coward · · Score: 2, Informative

      Well, Pascal brought structured programming to the masses. Now we use blocks, subroutines constrold structures (case statements, do-, while- and for-loops, etc) almost everywhere.

  6. Pascal is straight forward by caffiend666 · · Score: 4, Interesting

    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.

    --
    Here's to losing my Karma Bonus again....
  7. Yes. by halivar · · Score: 3, Insightful

    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#.

    1. Re:Yes. by Richard_at_work · · Score: 2

      In what way (I'm not a Delphi user)?

  8. One important use left for Pascal by jolyonr · · Score: 5, Insightful

    However...

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

    --


    Please read my Canon EOS tech blog at http://www.everyothershot.com
    1. Re:One important use left for Pascal by angel'o'sphere · · Score: 4, Insightful

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

      type
            MyStufd is RECORD ....
              END
              MyData is file of MyStuff;
      var infile, outfile : MyData;
                  data : MyStuff;
      begin
            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);
      end.

      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.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  9. Early fragmentation by itsdapead · · Score: 4, Interesting

    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.

    --
    In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
    1. Re:Early fragmentation by angel'o'sphere · · Score: 2

      Pascal, especially the versions running on the UCSD P-Systems, was once the largest install base of computer software.
      http://en.wikipedia.org/wiki/U...

      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 modeling tools on SmallTalk and C++ and very soon Java (1997) made it even more troublesome for Pascal.

      Back stage the Pascal companies where canibalizing themselves. The winner, the company buying or destroying the competition, simply did not last and got sold, bought out or whatever ... they simply vanished.

      The same with C#, the language only exists because MS made a mistake in their EEE policy regarding Java. The arguable benefits of one language over the other where established an half or a full decade later. (None had generics or lambdas when developed ... etc.)

      C never had a hughe standard library, it still has not till to our days. so this argument makes no sense at all. Even C++ still lacks standard threading and standard GUI libraries ... I guess one or the other is now addressed by boost and Qt ... but like Apache for Java, this are third parties.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    2. Re:Early fragmentation by putaro · · Score: 2

      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 coming out of the Unix world.

  10. Its very verbose by Roceh · · Score: 2

    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.

  11. Re:Delphi cross platform? by BarbaraHudson · · Score: 2

    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 ...

    --
    "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
  12. Ahh... Pascal. by fahrbot-bot · · Score: 4, Interesting

    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 :-)

    --
    It must have been something you assimilated. . . .
  13. Hints from an over-the-hill programmer by jgotts · · Score: 5, Insightful

    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.

    1. Re: Hints from an over-the-hill programmer by elgholm · · Score: 2

      Spot on. I hate all the new frameworks/languages/techniques bubbling up each week that everyone immediately just HAVE TO start implementing, right away, and then everything gets bloated, stops working, has bugs, etc, and eventually the framework gets deprecated, and they start all over again, with the next "best thing" that bubbles up. In the meantime, I'm the "boring" guy in the corner, writing and maintaining the stuff that actually works, and that actually brings in the money to the company. I'm in Sweden, and here the framework/technique/language is far more important when starting a new project then what the project is actually supposed to accomplish. Weird. "Multiuser" (=2 people) "systems" that could easily be accomplished with a fairly advanced Excel-file instead gets a 250.000 USD budget, 2 project managers, 1 resource allocator, 2 programmers, Java/C#, Webservices/XML-RPC, MS SQL/Oracle, 1 DB-server, 1 Application server, 1 Staging area, 1 Development machine etc. etc. When I ask everyone why we can't just do what the 2 people want in an Excel-file everyone looks at me like I'm lying... I've been in this field since 1999, so I understand the need for everyone to "keep up appearances" (salaries), but I would've thought we learned from the last IT-crash. Sorry, English is not my native language (Oracle PL/SQL is).

  14. This. SO MUCH This. by brunes69 · · Score: 5, Insightful

    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.

    1. Re:This. SO MUCH This. by greg1104 · · Score: 4, Interesting

      40 is old for a software developer. Someone who is 40 today entered college just as web browsers were being invented. You could not just connect the dots on library calls to put together an application then. Now you can.

      I have a strong sense of wanting to know how things work that comes from having built a lot of software in the 80's and 90's, when you had to know the internals to make progress. That is downright counterproductive in web development now. By the time you learn enough to understand how a library works, the developer who just learned enough to use it already shipped their code. That's the sort of disconnect between age ranges at work now.

    2. Re:This. SO MUCH This. by Motard · · Score: 5, Informative

      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.

    3. Re:This. SO MUCH This. by rjh · · Score: 2

      This is true and good, so long as you're interested in making software that can be done entirely with existing technologies. As soon as you hit the brick wall of "but there isn't anything in the standard library that does this," you need the old graybeards who spent their entire careers making the standard libraries you rely on.

      Speaking as one of them, the pay and hours are both good and it keeps me on the cutting edge of some fascinating technologies.

      The common idea is that we over-40s who've been doing this professionally for 25+ years can't adapt to modern software dev practices. Quite the opposite, really. Mostly we're kept so busy that we don't have the time.

      None of this is meant to disrespect what the younger generation does with (as you say) "connect the dots library calls". That code needs to be written, and it's best if it's written by smart people who care about their work. :)

    4. Re:This. SO MUCH This. by greg1104 · · Score: 3, Interesting

      Whenever I find myself needing to manage a group of younger dudes, I look around for some big problem they've been stuck on. And then I solve it, while lecturing on the context of how software like that has been built in various decades. Once someone has watched you quietly take out software enemy #1 on a project, they stop trying to mess with you on their reports.

    5. Re:This. SO MUCH This. by david_thornley · · Score: 2

      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 arcane art, but it works on any program using a given database, rather than any program in one particular language using a given database.

      You like Delphi, and that's fine. You use what you like, and that's good. You're pushing a tool here, instead of a language. Is there any special thing about Pascal that Delphi relies on, or could it be entirely rewritten in another language without losing functionality?

      Pascal did indeed predate C++, Java, and Python, but that really doesn't matter anymore, since getting Pascal mainstream would require getting people to switch from what they're using now. An argument that we had FORTRAN and Lisp before we had Pascal (which looks to me awfully like a streamlined version of ALGOL) would be just as relevant.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  15. My introduction to procedural languages by BenJeremy · · Score: 3, Interesting

    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?).

  16. Not as underrated as Rexx by elal1862 · · Score: 2

    You can take the PARSE VAR statement from my cold dead hands ;-)

  17. Occupied a very important niche ... strong typing by NothingWasAvailable · · Score: 4, Interesting

    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.)

  18. Seed7 by ThePhilips · · Score: 2

    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).

    --
    All hope abandon ye who enter here.
  19. Pascal? ... I vaguely remeber something ... by Qbertino · · Score: 2

    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.

    --
    We suffer more in our imagination than in reality. - Seneca
  20. Pascal is awesome, but... by gatkinso · · Score: 2

    ...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.

    --
    I am very small, utmostly microscopic.
  21. Re:How Pascal Literally Saved My Life by Hognoxious · · Score: 2

    Worst Haiku ever.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  22. Delphi is dead, just accept it. by halfdan+the+black · · Score: 2
    Who in their right minds would use a closed source proprietary language that is locked to Windows from a company that is NOT Microsoft and is on the verge of their next bankruptcy/sale/???

    What could delphi possibly every offer that in not in not available in C#??? With C#, at least you have a solid company behind it (Microsoft). Ive seen this so-called Delphi cross platform and it is an utter joke. The dev environment is completely locked to Windows, the apps it generates don't even vaguely resemble a native Mac application. Visual Studio is freaking FREE, yes, FREE, and supported by an actual company like Microsoft.

    The company has such a great track record as well, lets see, it was borland, then they had this brilliant idea to throw everything away and wrap everything around QT, then they threw all that away, went bankrupt and became inprise. Then that went bankrupt, assets were bought by code gear, that went bankrupt, assets bought by what embarcadero now. How long until this joke goes bankrupt.

    You want cross platform, use something that actually has a standard like C#, C++ or Java.

    I guess Delphi is great for maintaining your shareware windows applications you wrote back in 1995.

    How about interacting with others, well Delphi is such a joke that it can't even use a C++ library compiled with MSVC, and what 3 people on the planet actually use Delphi, so I guess you could work with them???

    Funny how every company I've ever worked for "used to be Borland shop". Think about it.

    1. Re:Delphi is dead, just accept it. by SAN1701 · · Score: 2

      I've been hearing this kind of stuff since at least 2002. Still using Delphi and waiting for judgment day. It is funny how VB'ers were for some time the most vocal group preaching Delphi's imminent demise, and then they were struck with the "Visual Fred" fiasco. Many of them had to learn OOP the hard way, many didn't and are still supporting VB6 apps.

      Anyway you can use the open-source Free Pascal or other proprietary solutions for Pascal. With both Delphi and Free-Pascal current multiplatform capabilities, I bet many companies that unsuccessfully tried to migrate Delphi internal apps to Java, C# or other offerings are having a second thought about it.

  23. Pascal vs Wirth's newer languages by __aahgmr7717 · · Score: 4, Informative

    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.
    http://blackboxframework.org/i...

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

  24. Re:A couple of things missing by gatkinso · · Score: 2

    Pascal was not an OO language - never claimed to be.

    Some of that was addressed by Borland Object Pascal.

    --
    I am very small, utmostly microscopic.
  25. Ecosystem by Tony+Isaac · · Score: 2

    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.

  26. Lazarus by Casandro · · Score: 2

    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.

  27. Re:Java is Pascal++ by gnupun · · Score: 2

    Wait... can you state again just how Pascal and Java are similar?

    Here are a few similarities, off the top of my head:

    * Java's single-inheritance class system is very similar to that in Object Pascal except Pascal did not have interfaces. It's much saner and error-resistant than C++'s byzantine class system.
    * System.out.println() is very similar to Pascal's Write, Writeln
    * No separate header files: Interface declaration and implementation in the same source file. Java's 'import' is similar to Pascal's 'uses' statement.
    * Both have runtime array bounds checking
    * Some data types like 'byte' and 'boolean' seem to be taken from pascal.

  28. Good enough for Knuth and TeX by WillAdams · · Score: 2

    The only software tools which I have found as reliable and pleasant to use as TeX (which is said to be so full of cutting edge techinique to have revealedbugs in every Pascal compiler used to compile it) were WriteNow (~100,000 lines of assembly) and Altsys Virtuoso (Objective-C w/ NeXTstep frameworks).

    --
    Sphinx of black quartz, judge my vow.
  29. No. Not in the slightest by T.E.D. · · Score: 3, Interesting

    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.

  30. Re:Block Styles [Re:Modula-3 FTW!] by Zordak · · Score: 2

    I like the End-X style, such as VB's, because if the nesting gets messed up due to a typo, End-X carries info about which block ender went with which block starter. "End While" goes with "While", obviously, not an IF statement. Brackets lack this ability.

    "Lacks" is a strong word; it's just not inherent. Back when I used to write software in C and C++ for money, I would religiously put "}//end if" to make sure I could keep track of which braces went where. If I needed even more context, I would put " }//end if(var1 == var2). It's not that hard. Like many things in C, you have plenty of rope to hang yourself if you really want to, but you can also make it tidy and sensible if you care to. C is not your friend, and is not your enemy.

    C is like an M1 rifle. Sturdy, proved in battle many times over, occasionally finnicky, and ready to put a high-powered round precisely where you aim it without apology. Whether you aim at your foot is your business.

    --

    Today's Sesame Street was brought to you by the number e.