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?

492 comments

  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 Anonymous Coward · · Score: 0

      program MyOpinion;

      begin
            writeln("What? No, it should not!");
            writeln("Java is the one which should die")
      end.

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

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

    7. Re:Modula-3 FTW! by David_Hart · · Score: 1

      begin
      Pascal should die!
      end

      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.

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

    9. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Here is the Modula-3 language definition. Its an amazingly quick read!
      --- begin ---
      >Not Found
      >
      >The requested URL /SRC/m3defn/html/m3.html was not found on this server.
      >
      >Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
      --- end ---

    10. Re:Modula-3 FTW! by Anonymous Coward · · Score: 1

      Well, versus Python I'd say Pascal offers easy to reach performance and easy distribution of the application. When I distribute a Python application I typically have to also distribute a run time and a boatload of dependencies. In contrast, with Free Pascal it's trivial to make a statically linked binary with all the dependencies baked in and then all I need to distribute is one executable file.

    11. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      NaBro!

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

    13. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Yet another language? Do you realise that Pascal is 14 years older than C++?

    14. Re:Modula-3 FTW! by gnupun · · Score: 0, Troll

      begin
      Pascal should die!
      end

      Yes, because only ugly, unreadable languages like C/C++, PHP and Perl are favorned because they make programmers look cleverer and provide job security through obscurity (of code). Clean languages like Pascal, Python or Java are derided as ivory tower and unpractical although they are readable, encourage good design and help finding/preventing more bugs in the development phase.

    15. 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
    16. Re:Modula-3 FTW! by ShanghaiBill · · Score: 1

      You felt Pascal was less readable than C ?

      Yes, for someone experienced in both languages, C is definitely more readable. It is less verbose. For instance, "++i" is a more immediately recognizable idiom than "i := i + 1". You don't have to slow down to notice that the same variable is being both referenced and changed. By using brackets instead of "begin ... end", the structure of the program is easier to read in C.

      Pascal is easier to learn for someone with no previous programming experience, and it has fewer "gotchas" that trip up newbies. But those are separate issues from "readability". C would not be a good introductory language, but I certainly would not want to write a device driver in Pascal.

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

    18. Re:Modula-3 FTW! by Crashmarik · · Score: 1

      For instance, "++i" is a more immediately recognizable idiom than "i := i + 1"

      vs

      main(a,b)char**b;{int c=1,d=c,e=a-d;for(;e;e--)_(e)_(d)?d=e:7;
      while(++ea)printf("\xe2\x96%c",129+(**b=8*(_(e)-_(c))/(_(d)-_(c))));}

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

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

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

    22. Re:Modula-3 FTW! by Teckla · · Score: 1

      I would say that Delphi's advantages over Python and Java are native compilation and its advantage over C++ is the speed of compilation.

      A lack of good, free Java compilers that produce native binaries (with no additional dependencies!) is the Achilles' Heel of Java. I'm convinced languages like Google Go would never have been invented if Java's ecosystem wasn't missing such an important piece of the puzzle.

      I say this as someone who thinks Java struck the right compromises in most design decisions.

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

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

    25. Re:Modula-3 FTW! by Anonymous Coward · · Score: 1

      C'mon, nobody switches languages because of that! Anyway, it's not exactly rocket science.

    26. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Nobody looks at the code except programmers, and they know how to read it. So, who cares whether it appears readable to laymen?

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

    28. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      He also overlooks C# which reasonably closely resembles Java, and certainly shares many features with it, and is also still pretty large for some applications in enterprise, and which he'd doubtless view as "clean" if it were developed by anyone other than Microsoft.

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

    31. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Yes, because we judge languages by the worst things you can write, not the typical things. It is just like how people judge ideas based on the worst statement or the stupidest person to state the idea, regardless of how many better statements and arguments for the idea exist.

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

    33. Re: Modula-3 FTW! by locketine · · Score: 1

      Humorous but not sarcastic enough to be funny.

      If true:
          Then this

          Isn't ambiguous

      --
      Think globally but act within local variable scope.
    34. Re:Modula-3 FTW! by Crashmarik · · Score: 1

      Ok, ill play by your rules.

      So fare everyone supporting C has said it's more readable for "Experienced programmers" no definition of what more readable is, but by definition for a fair portion of programmers it will be less readable making it overall and on average less readable.

      Anyway, I wouldn't give the proponents that. The minute you start playing around with features inherent to variable types and propertys of their conversions C gets to be a real pain to read.

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

    36. Re:Modula-3 FTW! by ghjm · · Score: 1

      > Why do we need yet another language, that has no particularly useful features?

      You do understand that Pascal was first released in 1970, right? Many Pascal programmers in the 1970s asked the same question - why do we need C, with its dangerous string handling and obtuse preprocessor, if it doesn't solve any new problems?

      > I used Pascal in some college courses, and felt that my productivity went down by about 50% compared to C

      I felt the same when I switched from Pascal to C. I had to spend half my life squinting at curly braces and trying to track down what the origin of some multi-level-#defined thing was. It is normal to feel a reduction in productivity when changing languages, but that doesn't mean the new language is worse.

    37. Re:Modula-3 FTW! by Anonymous Coward · · Score: 1

      For instance, "++i" is a more immediately recognizable idiom than "i := i + 1". You don't have to slow down to notice that the same variable is being both referenced and changed.

      In Pascal you can use Inc(i) to increment i by 1 instead of "i := i + 1". You can also increment i by larger increments or by type size if i is a pointer type. It's a standard feature of the run-time library.

    38. 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).
    39. Re:Modula-3 FTW! by Creepy · · Score: 1

      hmm... html <pre> </pre> tags used to work for that, but they seem to catch < as a comment now. I had to change those to & lt; (remove the space) to make slashcode not comment it; for example:

      void main(a,b)
      {
          char** bl;
          bl = new string("test");

          for (int x=0; x < 1000; x++)
          {
          print("%s\n",bl);
          }
      }

    40. 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)
    41. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

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

      Natural to assume, maybe..
      Is it great fun trying to spot the omission of said decimal in one line of code lurking in 17,000 others? not really..

      Btw I showed this example to a handy non-programmer, they saw no difference between 22/3 and 22/3.0 - go figure..

    42. Re:Modula-3 FTW! by war4peace · · Score: 1

      Oh no, not the VHS versus Betamax all over again!
      Pascal needed a paid license, C++ did not. It's as simple as that.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    43. 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!
    44. 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).
    45. Re:Modula-3 FTW! by kuzb · · Score: 1

      This argument is rendered useless by syntax highlighting and block matching in modern editors.

      --
      BeauHD. Worst editor since kdawson.
    46. Re:Modula-3 FTW! by Anonymous Coward · · Score: 1

      Sorry, you are not experienced in both if you think the equivalent of ++i in modern pascal is i := i +1

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

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

    49. Re:Modula-3 FTW! by civilizedINTENSITY · · Score: 1

      I think you mean it is easier to type?

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

    51. Re:Modula-3 FTW! by Teancum · · Score: 1

      For instance, "++i" is a more immediately recognizable idiom than "i := i + 1".

      In Object Pascal, it is:

      Inc(i)

      A couple extra letters to write, but trivial and works just fine and clearly understandable. It even returns a value (if needed).

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

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

    54. 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.
    55. Re:Modula-3 FTW! by Lemmeoutada+Collecti · · Score: 1, Funny

      Inc? Include i? Increase i? Incest i?

      --

      You can have it fast, accurate, or pretty. Pick any 2.
    56. 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.

    57. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      You answered it. What you can't do in pascal that you cannot do with other languages? Why do you need languages like java and python to start with?

      And I can be 50% more productive in java as compared to C. But I am 50% more productive in Delphi when I am using both languages at the same time.

    58. Re:Modula-3 FTW! by Anonymous Coward · · Score: 1

      "pitfalls like the fine difference between integer and floating point division" ...

    59. Re:Modula-3 FTW! by Teancum · · Score: 1

      People gave up on Pascal and moved to C++ back then for a reason.

      It wasn't really for a good reason other than simply the choice of the software development shop, as well as the cost of compilers where C compilers were widely used as assignments in Computer Science graduate courses... thus frequently offered for free. Arguably a C compiler is also easier to write than a good Pascal compiler, so it frequently is the first compiler available for a given instruction set or computer architecture.

      That doesn't mean it is necessarily inferior or for that matter better than C++ for high level application development. It does explain why you see fewer people developing in Object Pascal vs. C++.

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

    61. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      For instance, "++i" is a more immediately recognizable idiom than "i := i + 1"

      vs

      main(a,b)char**b;{int c=1,d=c,e=a-d;for(;e;e--)_(e)_(d)?d=e:7;
      while(++ea)printf("\xe2\x96%c",129+(**b=8*(_(e)-_(c))/(_(d)-_(c))));}

      Where is the pascal example?
      And why would intentionally obscured code be a good example of language clarity.
      If you consider intentional obscuring to be a valid argument against a programming language you could start with a python example for those who advocate it to bite at.

    62. Re:Modula-3 FTW! by devent · · Score: 0

      Why do you need native compilation? Java's runtime optimization and hot spot compiler are just as good. If your argument is that you don't need the Java Runtime, any application needs libraries anyway, and who cares if it's a JRE or the Boost+STL+Network+GUI+... libraries.

      The biggest advantage of lack of native compilation is that I can use any Jar library and it will work. Not like in C/C++ where you need the same compiler, the same system and the same architecture of a library as your program. Furthermore, I can run the Jar app on Windows/Linux/MacOS.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    63. Re:Modula-3 FTW! by devent · · Score: 1

      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.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    64. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      Increment, d'uh.

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

      With enough experience Sanskrit is readable. But readable to who? People you deem experienced enough? Which is judged how? By their ability to read your code?

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

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

    68. Re:Modula-3 FTW! by bored · · Score: 1

      but that it provides nothing of value to offset the cost of maintaining a separate toolchain, training programmers, building libraries, etc.

      That is why there is rust, go and a dozen other languages trying to replace C or C++.

      I sort of like C++, that said, I think object pascal is a much better language, it fixes a lot of the core problems with C (can you say embedded string length? There goes 1/2 of the buffer overflow problems that have happened over the last 20 years) while maintaining the ability to optimize nearly as well. Pascal is actually faster than the vast majority of "C" replacements people are using today.

      just because of all the extra typing, and the reduced readability:

      If typing "begin" and "end" instead of "{" and "}" were a big problem I would claim you need a better editor. That said the speed of code generation is just about never an issue in any language because thinking about the problem or debugging the code is a much larger time sink. Finally, I would claim that pascal is light years ahead of C++ and even C due to the restricted syntax. Did you forgot about the IOCC? Because getting to those levels of obfuscation is going to be a lot harder in pascal.

    69. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Is that pre-ANSI C? Have you no decency?

    70. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      You're asking the wrong questions. The statement was "C is more readable [than Pascal]". You don't evaluate readability on its own, you need to compare Sanskrit to something else. For example, you can compare the readability of Arabic numbers vs Roman numerals by asking two people proficient in each to perform the same arithmetic calculations, and you time them.

    71. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      We use almost the same set, except no perl or php, and C# and Objective-C instead of Java. I have some experience with perl, none with PHP. I'm curious: What do you use perl and php for that wouldn't be better in python or one of the others? Or is it just a matter of python being newer and not wanting to rewrite stuff? Do you write new code in php or perl?

    72. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Why do you need native compilation?

      There's less to distribute and native applications typically have better memory usage without the runtime overhead.

    73. Re:Modula-3 FTW! by Euler · · Score: 1

      I agree, this seems to be a fine art that has been lost no matter what language was used. Putty is the only significant program that I know of that doesn't require a huge install. Heck, even MinGW got complicated along the way somewhere. You can't even install a printer driver under 100 MB anymore.

    74. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      But you have it the wrong way around. The question is really what can Java, Python et al do what Pascal couldn't already do.

    75. Re:Modula-3 FTW! by devent · · Score: 1

      The size is a good point. 130 MB for the JRE in VisualParadigm. VisualParadigm itself is 285 MB. But I don't think that so many clients care about the size, depending which clients you have. Maybe Java 9 can be more modular.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    76. Re:Modula-3 FTW! by ShanghaiBill · · Score: 1

      What do you use perl and php for that wouldn't be better in python or one of the others?

      PHP is a horrible language, but it integrates well with Apache, and can be embedded in HTML.
      Perl is mostly legacy code. Small scripts for random tasks. It is maintained, but new stuff is done in Python.

    77. Re:Modula-3 FTW! by Darinbob · · Score: 1

      I like Pascal, it's what we taught before C took over. The biggest problem for Pascal overall is that it was not well standardized early on. There have been standardization efforts, but the earliest ones took out too much useful stuff (ie, better string handling), and by the time of better standards it had dropped popularity enough that it never caught up.

      The extra typing is a non issue really. By that regards, everyone should love Python yet people complain about not having to put in braces... I found Pascal to be highly readable and C takes a lot more familiarity before you can read it easily.

    78. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Pascal teaches people good coding practices. The other languages are sloppy messes.

    79. Re:Modula-3 FTW! by bzipitidoo · · Score: 1

      One thing about "begin" and "end" vs curly braces: lots of people do not understand English!

      Brevity is also important. Otherwise, why stop at Pascal? Why not embrace Cobol?

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    80. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Curly braces also guarantee a single interpretation, provided you're capable of counting braces as you read automatically. Which really any good C programmer should be able to do.

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

    82. Re:Modula-3 FTW! by Tough+Love · · Score: 1

      What is intuitive about 1/2 == 0?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    83. Re:Modula-3 FTW! by Tough+Love · · Score: 1

      Why do you need native compilation? Java's runtime optimization and hot spot compiler are just as good.

      No they aren't, when did you last check?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    84. Re:Modula-3 FTW! by war4peace · · Score: 1

      Does it work when you think of shit as pudding?

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    85. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      BEGIN
          WriteLn ('Really? How can you think that?')
      END

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

    87. Re:Modula-3 FTW! by goose-incarnated · · Score: 1

      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.

      To both beginner and experts alike, making invisible characters, such as whitespace, possess significance is too much of a religious thing ;-)

      --
      I'm a minority race. Save your vitriol for white people.
    88. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Well that was his answer I would assume. That it offers "nothing" that C doesn't, which means it's useless for other tasks compared to extisiting languages which actually have been continually developed for modern machinery...

    89. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      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.

      Pascal and C++ are like the old Betamax vs VHS thing Betamax was for far superior to VHS but VHS got the sony wonga behind it so the crap won out betamax is STILL many many many times better than the best VHS has ever got any hope of getting near .

    90. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      I got that covered. I name my user-defined variables x,y and z. Long words such as 'begin' then stand out pretty well :-)

    91. Re:Modula-3 FTW! by tigersha · · Score: 1

      Or a problem of an arrogant nerd who thinks syntax highlighting editors is for arty-farty types

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    92. Re:Modula-3 FTW! by tigersha · · Score: 1

      No rather than teaching my kids to eat with their hands I teach them to use proper tools, like cutlery. I can just recommend it, significantly less of a mess.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    93. Re:Modula-3 FTW! by tigersha · · Score: 1

      Agreed. There are many corporate shops who have long-running codebases written in Delphi that works just fine.

      I once had an offer for some temporary contracting on a project at a company close to here. I looked at Delphi and declined the job. Nothing wrong with Delphi, I was just not used to the tools and felt they would have better value for money with an experienced Delphi programmer.

      Delphi and C++ (and LISP and Ruby and Java and Python) are good for different things. Sure, there is a lot of overlap but I would not write an FFT in LISP anymore than I would write a website backend in Assembler.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    94. Re:Modula-3 FTW! by DrXym · · Score: 1
      I envy you having to use Pascal at University. We had to use modula-2 which is even more anally retentive when it comes to boilerplate.

      Anyway, Pascal lost the language war because it wasn't low level enough (at the time) to compete with C and didn't offer any other advantages. By the time franken-Pascals like Delphi appeared to gain those features it was too late because Java filled the application end and C/C++ was still there for the other stuff.

    95. Re:Modula-3 FTW! by CadentOrange · · Score: 1

      Sanskrit is presumably readable by those who need to read it. I would assume scholars in antiquity from the region and period would be well versed in Sanskrit.

      In a similar vein, C does not need to be readable to the average person on the street. However, it should be readable to who need to read it (i.e. practicing programmers). If you struggle with the C syntax, you need to find a different job because Java, Javascript, C#, C++ are among the most popular languages and they look syntactically similar to C (though they are conceptually different).

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

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

    97. Re:Modula-3 FTW! by jandersen · · Score: 1

      begin
      Pascal should die!
      end

      Woooh, not good, not good at all. I mean just for starters, statements should end with ';', not '!', and the final 'end' needs a '.' - and of course, no indentation - how on earth are you going to read this mess when you return to your code in a year's time?

    98. Re:Modula-3 FTW! by dunkelfalke · · Score: 1

      You have stated that you just have used Pascal in some college courses. This is not what I would call "experienced". I've been writing code in both Pascal and C for many years, Pascal is more readable hands down. C looks like a character salad in comparison. It was clearly meant to be used on teletype terminals where you had to be sparse with letters. That was fair for the day, but we are living in the 21th century now.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    99. Re:Modula-3 FTW! by DrXym · · Score: 1
      The readability of C depends on who wrote the code. It's not hard to find code which uses abbreviated variables all on one line, no comments, bad formatting, monolithic, copious use of MACROS, pointer abuse and all the rest to make unreadable code. Indeed, the international obfuscated C contest shows how easy it is to write utterly meaningless code which somehow does something.

      And C++ adds it's own layer of fun. Templates are the work of the devil - get an arg wrong e.g. miss a const or a (de)reference, and the compiler might throw a wall consisting of hundreds of errors back at you. Not intuitive at all and certain not easy to step debug.

      Doesn't mean the answer is Pascal but C/C++ was never designed for readability and any that exists is by the grace of the person who wrote the code rather than inherent to the language. Other languages do try a lot harder to enforce readability in the file structure and in the code itself. Python would be most famous for it but even enforcing filename = classname, path = namespace as seen in Java / C# gives more structure than you get in C.

    100. Re:Modula-3 FTW! by TheRaven64 · · Score: 1

      There are some simple things where C is far more readable to a moderately experienced programmer. Consider the beginning and ending of blocks. In pascal, these are signified by begin and end. When you look at a chunk of Pascal code, they can be hard to pick out because they're just words in a sea of words. In C, you use the { and } symbols. These are symmetrical and the human brain has spent a lot of time evolving to be trivially able to spot symmetry because symmetry normally means 'predator about to try to eat me'. You can very quickly spot a column that has a { at the top and a } somewhere later (much more easily if they're aligned together and there's nothing else on the line). There were some studies done in the '80s that confirmed this, though sadly a lot of C coding conventions specify brace placement in a way that reduces readability.

      The main strength of Pascal is that it forces you to think more than C. If you don't write what you mean in Pascal, it usually fails to compile. C will happily do... something. This level of redundant verbosity makes Pascal both quite a frustrating language for experienced developers and a great language for teaching. I find that people who learned Pascal tend to write better C code than those that didn't, but neither group has a strong desire to write Pascal.

      --
      I am TheRaven on Soylent News
    101. 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
    102. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Version incompatibilities means people resort to bundling the JRE.
      100MB for a 100 kB tool should be obvious to anyone is unreasonable.
      Even if you don't bundle it, few enough people have it installed that it's still 100 MB for 100 kB.
      Thus Java is already limited to programs that are large enough that nobody cares about that.
      You also can't do portable programs (put them on a USB stick and just run them anywhere) properly.
      So unless you decide to never ever do small or portable tools you need a second language anyway. So why not standardize on that will be a question a lot of people ask.
      And JRE and boost is a huge difference, first you don't _need_ boost, plus it's mostly headers so nobody will notice it.
      Even Qt results in "only" about 10 MB overhead if you link it statically, and you can still ship a single binary.

    103. 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
    104. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      heh, because "intentionally obscured code" is all anyone seems to write in C. Take a look at any linux kernel sources lately?? LOL!!!!

    105. Re:Modula-3 FTW! by devent · · Score: 1

      It depends on the kind of app. For GUI and web, it just fine. For high end computation of course native code will outperform. See http://beautynbits.blogspot.co...

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    106. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Or the C hipster approach of "oh man just throw some pointers pointing to some pointers that point to pointers dude. Only nubs are afraid of that. You're not a NUB, are you NUB? HUWHUWHUW"

    107. Re:Modula-3 FTW! by Aighearach · · Score: 1

      I would generally prefer C, and certainly have more experience with it, and yet it is obvious that Pascal is more "readable." It may be that for any qualitative word, any two programming languages will be more, equally, or less that thing.

      C is a lot of things. My own C is very readable to me. Somebody experienced in C knows that somebody else's random few lines of code might be totally impossible to understand. Without additional non-language-required constraints on methods and practices, you would have to read and memorize the entire codebase before even attempting to claim what a particular few lines do. With best practices this is not a problem, and yet with a lot of the code in the wild it actually is a major problem.

      Pascal has its own different problems.

      As they say in Sanskrit, vibhakta.

    108. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      most imporantly, c favours insecure and non robust techniques like unckecked arrays and naked pointer operations. very insecure.

    109. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      most imporantly, c favours insecure and non robust techniques like unchecked arrays and naked pointer operations. very insecure.
      only the tlas and russki mafia win.

    110. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      php is also a major source of security issues. why would you prefer it over perl ?

    111. Re:Modula-3 FTW! by Lonewolf666 · · Score: 1

      To me, the critical part is noticing the difference in (for instance) a code review, not so much the understanding.

      I'm assuming a moderately skilled programmer here, with enough brains to see that something is different and look it up in the online help. That guy would likely see the difference between 22 div 3 and 22/3, look it up and ultimately get it right.

      While reliably seeing the difference between 22/3 and 22/3.0 almost requires someone who got burned before and has learned to look specifically for these differences. IMHO a higher level of experience...

      --
      C - the footgun of programming languages
    112. Re:Modula-3 FTW! by gbjbaanb · · Score: 1

      #in a way your comment is backwards, considering Pascal came first - why did you choose a different toolchain of Java Python or C++ when you already had a Pascal one?

      As for productivity, the amount of typing is overrated, considering a) thinking is (or should be) the activity that takes up most of your programming effort, b) IDEs do most of it for you, and c) nothing in Pascal comes close to the verbosity of Java or C#. So what if you have to type Begin instead of { when your method names are 40 characters long :)

      so yes, you're right - but not when applying it to Pascal. Besides, I can think of one area where Pascal is a good thing - education. It was designed to teach programming after all.

    113. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      It's a beginner-ender problem.

    114. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      So the logical conclusion of your post, if true, is that you were never a beginner and were either born with full knowledge of programming or have simply never programmed?

    115. Re:Modula-3 FTW! by Pseudonym · · Score: 1

      There is a Modula-3?

      Indeed there is, and it is an extremely influential language. Java 1.0 is pretty much Modula-3 semantics with a C syntax.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    116. Re:Modula-3 FTW! by gbjbaanb · · Score: 1

      Rubbish. Once you have 3 or 4 levels of nested braces you're not going to be readable at all.

      The only thing that gives you the symmetrical blocks is indentation, in this respect Python is the most readable, but all other languages are just as good if you format your code nicely.

      So given that code readability depends on the quality of the programmer,. and that programmers taught using Pascal are better, then it stands to reason that we should be teaching using Pascal. You use whatever is appropriate for the industry you work in after that.

    117. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

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

      Or Ada, Pascal's grown-up relative.

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

    119. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      In other words, the anti-competitive behaviour of SUN (dumping the Java thing onto the world for free) led both to the demise of SUN and of Borland. Well, at least SOME justice...

    120. Re:Modula-3 FTW! by T.E.D. · · Score: 1

      For an experienced programmer, C wins. Words like 'begin' and 'end' look too similar to

      35 years of experience here (about half of it programming professionally in curly-bracket languages), and I'm sorry, but C-ish languages are much harder to read.

      I actually came here to comment against Pascal, but this is decidedly not one of its (many) failings.

    121. Re:Modula-3 FTW! by T.E.D. · · Score: 1

      But that's not Pascal, that's Delphi. That would be like someone saying the same about C++, and me countering with C#.

    122. Re:Modula-3 FTW! by pmontra · · Score: 1

      Well, do something in a Ruby block end didn't do any harm to that language. The form { something between braces } exists but it's used idiomatically only for one liners, so I don't think that Pascal has been haunted by it's verbosity (OK, probably do ... end is the only verbose part of Ruby.)

      I believe that it succumbed to the competition of other languages that people felt to be better suited to the tasks that had to be solved in the 90s and 00s. Every language has its niches. Even C++ is mostly irrilevant on the web. Objective-C had to wait to be mandated for developing on the iPhone to become relevant. Pascal was eaten alive by C (with and without the ++) and VisualBasic on the desktop and never made its way to the web.

      Why people liked VisualBasic more than Pascal, that's an interesting question. Maybe the feeling it was a language for the first year of CS courses, maybe the tooling (VisualStudio vs Delphi), maybe the costs? Unfortunately I can't remember how Delphi was sold 20 years ago and how it compared to VisualBasic for building Windows desktop apps, which was almost all it mattered at the time.

    123. Re:Modula-3 FTW! by pmontra · · Score: 1

      I just looked at https://github.com/torvalds/li... (picked almost at random.) There are some funny things in there but in general it's pretty readable. I realized that C starts looking as alien to me as assembly looked to me when I was writing C and Pascal at university. Not that I couldn't write in assembly but wow, it's so time consuming that it's only for when there are no alternatives.

    124. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      I've also been using Delphi for about 20 years (and Java for half that) and have to admit that I went down the Object Pascal path primarily as an alternative to the Visual Basic that I was using at the time. Delphi apps were much easier to deploy and I could write low-level (or assembly) components that I could not do in VB. Going forward, I never made the transition to C++ simply because I found it quicker to deploy working applications in Object Pascal. IMHO strong typing does make a difference and forces the developer to design up-front. Delphi, especially today with its broad reach of platforms, is difficult to ignore. I suppose the begin...end tags and lack of certain operators might be an issue for some developers, but frankly after 20 years it's almost automatic to me.
      And as for Java, I also use that every day and frankly I've merged Pascal and Java together in some cases. So what is it about C++ that I can't do in Pascal?

    125. Re:Modula-3 FTW! by psmears · · Score: 1

      For example, you can compare the readability of Arabic numbers vs Roman numerals by asking two people proficient in each to perform the same arithmetic calculations, and you time them.

      That would measure how easy it is to perform arithmetic in the two systems... which is not the same as readability. Similarly it's a good idea not to confuse "easy for a computer to read (and execute)" vs "easy for a human to read (and understand)" - both are important in different ways, but they are entirely separate concerns!

    126. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      7 is not 7.333333333. I thought they are supposed to be distinct, yielding different program behaviour. Am I missing something?

    127. Re:Modula-3 FTW! by psmears · · Score: 1

      IIRC, pascal begin/end are not optional.

      If body of the "if" (or "while" etc) is a single (simple) statement, then "begin" and "end" are optional - so you can write either

      if cond then
      begin
      do_stuff()
      end

      or

      if cond then do_stuff()

    128. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Wow, using that logic, why did we need Python or Java when we already had Pascal? Why do we need yet another language that his no particularly useful features when we've already got Pascal?

    129. Re:Modula-3 FTW! by psmears · · Score: 1

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

      Or x could be an array... in which case the called function can modify the value of the variable. The point you're making is valid, but C isn't 100% consistent in this regard :)

    130. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Wouldn't myself sign that statement, but then again, I'm a novice with mere 10 years of experience in (Turbo) Pascal and then 20 in C and its derivatives.

    131. Re:Modula-3 FTW! by LWATCDR · · Score: 1

      I bet you went to school in the EU.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    132. Re:Modula-3 FTW! by Cro+Magnon · · Score: 1

      I always thought Pascal was better for most purposes than C and its offspring. I only switched because nobody else was using it.

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    133. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      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.

      Wouldn't this imply that metaprogramming needs to be done in a separate language? Say, if I write a generic matrix inverter it needs to look completely alien compared to a routine that only works with floats? (nvm some seriouser shit)

    134. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      When I look at, and sometimes maintain, Pascal I wrote 15 years ago, and compare it to C I wrote 1 year ago, I am able to decipher the Pascal with much greater ease.
      Since code maintenance is a greater component of my job that creating new code, I feel Pascal wins.

    135. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      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.

      Because your text editor painted those words in different color than the rest.

    136. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Perl variables FTW here... I can't stand all these unadorned variables in other languages.

      The worst is if you're used to making perl variables like "$if_any" or "$while_true" or whatever. When you switch over to java you start to type something like this, and the keyword highlighting that happens with the first part of the token is very jarring and distracting. It's very liberating to use perl and have variables that are keywords prefaced with $ ... $continue $end $goto.. it gets out of your way.

    137. Re:Modula-3 FTW! by Qzukk · · Score: 1

      You want <ecode>:

      if (x<5) {
        printf("Works for me!\n");
      }

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    138. Re:Modula-3 FTW! by Grishnakh · · Score: 1

      Nope, Beta was not far, far superior. You're totally forgetting that Betas could only store 1 hour of video. (They later fixed this, but by then it was far too late.) Who wants to change tapes in the middle of a movie? VHS tapes could store a whole 2-hour movie, so they easily took over. Not having Sony's stupid licensing costs helped too. And by the time Beta was on the way out, VHS had caught up to it video-quality-wise too.

    139. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      yes is used it back in college... at the time it made you structure your code. before that you were lucky if they taught you basic in high school...
      also i think pascal as a teaching language, or C with a safety net. C assumes you know what you ARE doing. but i did hate the 3 hours i spent looking for one missing semi-colon...

      what would be a good teaching language today? language vs IDE. i think VB is the quickest way to teach programming without discouraging the student

    140. Re:Modula-3 FTW! by Tough+Love · · Score: 1

      Java is famously crappy and sluggish for GUIs too, and barely tolerable for web. As a rule of thumb, whatever you are running on your server will run about 20-30% faster if you recode it from Java to C++. First hand experience speaking here, and you will find multiple confirmations out there. Java is just a pig, with its jitting, memory hogging, heavyweight thread locks, etc, etc.

      Mind you, Java performs better than Python or Ruby so at least there is that. But never labour under the illusion that Java can compete with C++ or C in terms of throughput, latency or memory footprint. You code in Java so you can use cheaper programmers, that's it. Otherwise, if you can afford it, you do the job properly in C++.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    141. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      It's called "syntax highlighting".

      Simply don't use a line editor for editing! "edlin" or "ex" may seem nice at first, but full-screen editors do have advantages!

    142. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Right, a compiler should have a facility for optimization of constant expressions.

    143. Re:Modula-3 FTW! by devent · · Score: 1

      I use Java apps all the time and there is no different between native apps and Java apps. Incomplete list of Java apps that I use: VisualParadigm, Eclipse, FreeMind, ArgoUML. JEdit is quite popular, just like Netbeans.

      "Java is just a pig, with its jitting, memory hogging, heavyweight thread locks, etc, etc."

      Sure, whatever.

      Java is one of the most popular languages, topped only by C, and sometimes ASP.NET and PHP.
      http://langpop.com/
      http://w3techs.com/technologie...

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    144. Re:Modula-3 FTW! by Shirley+Marquez · · Score: 1

      130MB would be the JDK. The JRE is a lot smaller.

    145. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      But you shouldn't just assume it does.

    146. Re:Modula-3 FTW! by Eunuchswear · · Score: 1

      What is intuitive about using "==" for equality!

      --
      Watch this Heartland Institute video
    147. Re: Modula-3 FTW! by reg45 · · Score: 1

      I really like Pascal's assignment operator. a := b + c is more obvious than a = b + c vs. a == b + c.

    148. Re:Modula-3 FTW! by Eunuchswear · · Score: 1

      For instance, "++i" is a more immediately recognizable idiom than "i := i + 1".

      No true Pascal programmer would write "i := i + 1". They'd say "i := succ (i)"

      So, you see, Pascall sucks.

      --
      Watch this Heartland Institute video
    149. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      I'd like a language where u can write 'salt'

    150. Re:Modula-3 FTW! by david_thornley · · Score: 1

      I'm going to speculate that Pascal lost to C because, at the time, standard Pascal was not a good language. TFS discusses why people are using arguments from the people who gave you RATFOR, when Pascal has changed.

      When I got the chance to go from Pascal to C, I liked C better because it didn't have some of the stupid features of standard Pascal (and I was keeping up with the standard back then). I never saw any reason to switch back, since Pascal never seemed to offer much real change from C.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    151. Re:Modula-3 FTW! by david_thornley · · Score: 1

      I remember people moving from Pascal to C, and then from C to C++, although presumably many went from Pascal to C++.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    152. Re:Modula-3 FTW! by Zordak · · Score: 1

      You do understand that Pascal was first released in 1970, right? Many Pascal programmers in the 1970s asked the same question - why do we need C, with its dangerous string handling and obtuse preprocessor, if it doesn't solve any new problems?

      Um, you realize that C came out at almost exactly the same time, don't you? Granted, I wasn't programming anything in the 1970s, but I know enough history to know that the Unix kernel was already being ported to C right around 1970.

      --

      Today's Sesame Street was brought to you by the number e.
    153. Re:Modula-3 FTW! by ghjm · · Score: 1

      Well, I was programming in the 1970s, so this is recollection for me, not history. And you've got it wrong in either case.

      The famous port of the Unix kernel to C was in 1972/73, not 1970, and at that time, C was still a private language within Bell Labs. The K&R book "The C Programming Language" was published in 1978, but C didn't gain much traction outside Bell Labs until Microsoft and Borland released compilers for it in the mid 1980s.

      In the period from 1965-1970, computer science was taught using ALGOL, and between 1970 and 1980, it was taught using PASCAL - mostly the UCSD p-System. The Christmas shopping season of 1977 was the first time you could buy a computer and take it to your house, and these machines were programmed using interpreted BASIC and hand-coded assembler - nobody in microcomputers had ever heard of C. The first compiled language for microcomputers that had any widespread success was Turbo Pascal, released in 1983 for CP/M and DOS. C did not make any serious inroads into microcomputer popularity until the mid to late 1980s.

      This wasn't just some random thing - there were good reasons for it. Many of the microcomputers of that era didn't have curly brace keys, so there was a version of C where you could type (* and *) instead of { and }. But more to the point, compiling Pascal is incredibly faster and easier than compiling C. Pascal does not have a preprocessor, header files or multiple passes - the syntax of the language lends itself to being fast and cheap to use on extremely minimal hardware architectures.

      Some of the features of Turbo Pascal - like the "with" statement and the set operator - have never been duplicated in any other language. Trying to paint Pascal as an also-ran to C is both historically and technically incorrect.

    154. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      At the time Turbo Pascal compiler was tops. The programs were super speedy. Object Pascal certainly seemed much faster than C++ for GUI stuff. Check out CodeTyphon based on FPC and Lazarus.

    155. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      That would be like someone saying the same about C++, and me countering with C#.

      It really isn't. You can use Free Pascal if you prefer. It's also a good implementation of Object Pascal. Free Pascal and Delphi are the two most widely used Pascal implementations.

    156. Re: Modula-3 FTW! by Anonymous Coward · · Score: 0

      I think we are forgetting that DIV is well known to be integer division (even in non-programming circles) and / is well known to be division.
      Is there any reason to consider that someone should intuitively know that / changes its behavior based on a nuance of formatting? If it is obvious at all it is only to those who've been there before. I would suggest there are many C developers who wouldn't see the difference.

      A mathematician, Delphi developer, and even a C developer can understand the difference between DIV and / (or in the C programmers case it should be enough of a difference to at least prompt him to educate himself.

    157. Re:Modula-3 FTW! by MorphingDragon · · Score: 1

      Oh god, all these years of doing low level hackery is finally getting to me. That code means something to me.

    158. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Python is fucking fugly with fucking reiteration of fucking fucking strongly emphasized.

      1. Take your '\t' and stuff it where the sun doesn't shine. Everybody's editor will render four spaces exactly the same. Tabs are the bane of sanity. Python, depending on indentation for parsing, is begging for errors.
      2. Take your weak types and stuff them in the same places as your '\t'.
      3. Take your shitty performance, and guess what to do with it.

      Python is the refuge of those who are too cool for PHP but too incompetent to write anything that actually performs.

    159. Re:Modula-3 FTW! by MorphingDragon · · Score: 1

      All of those tools you listed run like ass. It might be cross platform ass available to everyone, but ass none the less.

    160. Re:Modula-3 FTW! by devent · · Score: 1

      My ass don't run.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    161. Re:Modula-3 FTW! by Grishnakh · · Score: 1

      I always thought Pascal was better for most purposes than C and its offspring.

      Ok, has anyone ever written an OS kernel in Pascal? How about bare-metal code which tweaks registers?

    162. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Ok, has anyone ever written an OS kernel in Pascal? How about bare-metal code which tweaks registers?

      They sure have. You, too, can write your own OS in Pascal. Nikolay Nikolov did.

    163. Re:Modula-3 FTW! by DrXym · · Score: 1
      I think it's right to say vanilla Pascal was not a good language and so every implementation went off and implemented its own extensions, hacks, workarounds. Turbo Pascal, Free Pascal, Delphi etc. I was reading Gnu Pascal's features yesterday and it's amusing to read the "features" which are features cherry picked from other implementations. There wasn't any standard to maintain cohesion or enable portability and the entire platform suffered from that.

      It's not like C/C++ is a perfect language - it's a horrible language in some ways but it's also very powerful and quite portable with discipline. It also has standards by which to measure implementations by and it has tended to keep compilers pretty close together aside from a few extensions.

    164. Re:Modula-3 FTW! by petermgreen · · Score: 1

      Unfortunately it seems it's owner has gone to the "charge locked in customers a shitload of money" strategy. That may be profitable in the short term but it's not going to win you many new customers when the alternatives are free. Theres a starter edition whose price is a bit more paletable but whose license terms are most certainly not.

      Theres lazarus of course, not sure how that compares nowadays.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    165. Re:Modula-3 FTW! by tibit · · Score: 1

      I wrote a lot of I/O code/drivers in Pascal, and also what would pass for a rudimentary run-to-completion realtime OS kernel. There was nothing fundamentally worse about it, compared to C, except for the lack of finesse in the code generator. It worked just fine, and I'd rewrite in assembly the few functions/procedures that had to be faster than compiled code.

      --
      A successful API design takes a mixture of software design and pedagogy.
    166. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Whitespace may not be significant to the compiler in other languages, but it's still significant to the human. As a human, I'm all for the significant whitespace in indentation* in Python, since you're supposed to be doing it anyway.

      *I qualified the meaning of "significant whitespace" because you make it sound like "1+2" and "1 + 2" (to give an arbitrary example) might have different meaning too. It's just indentation that Python forces religiously upon you, just like coding standards do for all the other languages, so moaning about it sounds a bit prejudiced.

    167. Re:Modula-3 FTW! by petermgreen · · Score: 1

      but in practice what you have in c is more likely

      double a = b/c

      is that doing floating point division or floored division? you can't tell without going and searching for the defintion of b and c and if you want floating point division of two integer arguments (a perfectly reasonable thing to want to do in many situations) you have to start putting in typecasts. It gets even worse in dynamically typed languages that use derivatives of C syntax.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    168. Re:Modula-3 FTW! by petermgreen · · Score: 1

      in the end, you should use the best tool suited for the job.

      I disagree with your professor here, each tool you add to the toolbox carries a cost. Especially if you want to maintain the code on a long term basis or reuse code between projects. So you need to strike a balance between the number of tools in your toolbox and the appropriateness of the tool to the job.

      It's pretty difficult to avoid C/C++, even if you don't actually code in it will find the interfaces to your operating system are defined in terms of C and possibly C++. If you are programming devices too small to run an OS you will often find a C (and maybe C++ if you are lucky) compiler is the only compiler available. So the question with a new language is not just "is this better for the application than C/C++" but "is this language sufficiently better than C/C++ to justify the costs of adding it to the toolbox and the cost of potential future problems if I want to port the application to a different target or reuse parts of it in an applicaiton for a different target".

      And much as I like object pascal I have to say that I think the answer to that question is probablly no.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    169. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Well, it should be Perl as even the creator of Perl wonders why in the hell anyone is still using Perl.

    170. Re: Modula-3 FTW! by Lonewolf666 · · Score: 1

      Seconded, because it matches the usage in mathematics.
      I don't think it makes a difference once you are used to the C syntax, but for someone new to programming the consistency with math textbooks is nice :-)

      --
      C - the footgun of programming languages
    171. Re:Modula-3 FTW! by civilizedINTENSITY · · Score: 1

      Seemed as though you were saying that modern editors made up for the difficulties, so it was OK for languages to suck. In what way does that reflect "the right tool for the job"? Seems like its more in the lines of "if you want to use a double-bladed axe as a hammer, wear gloves".

    172. Re:Modula-3 FTW! by cwsumner · · Score: 1

      Whatever you work an every day will seem easy, when you look at something you don't usually work on. You can't really know much until you have used more than one system, in day to day work.

      I have used many things, from a dozen flavors of Assembler to Clarion. I write faster in C, but I can't read it fast even when I wrote it myself. I liked Modula-2 (which is industrial Pascal) and found I could read and debug it much faster.

      When you talk about which is faster to type, maybe you should consider that modern programmers should hardly ever type much at all!
       

    173. Re:Modula-3 FTW! by cwsumner · · Score: 1

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

      This is an important point.
      In a large commercial or industrial program, strong Typing of variables and structures can have a big effect on just getting the program to run in the first place. Not to mention the good effect on long-term maintanence and stability.
      C and similar languages were made by and for Assembly language programmers and they are good for that kind of thing. Newer languages (at least some of them) were made with a different point of view, and it shows.

      How fast you can write a program is not the important thing. How fast you can get it to work reliably, is. 8-)

    174. Re:Modula-3 FTW! by cwsumner · · Score: 1

      ... Some of the features of Turbo Pascal - like the "with" statement and the set operator - have never been duplicated in any other language. ...

      Topspeed Modula-2 by Jensen and Partners (JPI). Originally planned as Borland Turbo Modula-2 but they declined and the team split off as another company. Very successful for many years. Finally merged with Clarion as Topspeeed, Inc., later SoftVelocity.

    175. Re:Modula-3 FTW! by cwsumner · · Score: 1

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

      Um... Clarion is only $1000, and works good. 8-)

    176. Re:Modula-3 FTW! by wbo · · Score: 1

      130MB would be the JDK. The JRE is a lot smaller.

      That depends on if your applications needs to support 32 and 64 bit installs or not. The current 32-bit JRE for Windows is 73 MB and the 64-bit JRE is 85.3 MB. The current JDK is 158 MB for Windows 32-bit and 170 MB for Windows 64-bit.

      If you package both versions so that your application runs optimally on both 32 and 64 bit systems (very common in my experience) then the JRE would add roughly 158 MB to the size of the installer.

    177. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      Your knowledge of 1980s pascal is as irrelevant to this discussion as would be knowledge of 1991 Java compared to 2015 Java or 1995 C++ compared to 2011 C++.

    178. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      I have found that one area that Delphi really excels at over C++ is consuming COM objects and exposing interfaces. Case in point:: I was writing an IE add-in a while back; tried it first in C++ Builder and after about a week of trying different things, was getting nowhere very fast and getting very frustrated. I switched to Delphi just as an experiment, and I was DONE in 3 days.

    179. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      So the world only needs 3 languages?

      No, the world only needs one language: JavaScript. If we needed other languages then our browsers would be able to use those. They can't because "the powers that be" have decided to only support JavaScript.

    180. Re:Modula-3 FTW! by Anonymous Coward · · Score: 0

      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.

      This does not sound like a problem with a programming language. This sounds like a problem with a user interface.

      The curly braces look approximately as fat as anything else when viewed with hexadecimal.

      Okay, that was sarcastic. Seriously, though, with CP437 I think they're looking slightly wider than parenthesis and square brackets. They're certainly just as wide. So if you're using a pitiful GUI, then don't complain about a language. Replace what's pitiful. I imagine that any half-way decent editor in a GUI will support customizing what font you use before the programmer of that editor bothered with adding support for syntax highlighting.

  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 itzly · · Score: 1

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

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

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

    8. Re: Discussion is outdated by Anonymous Coward · · Score: 0

      ... and Delphi (as well as to a lesser extent, Lazarus due to its Object Pascal compatibility) has a freaking huge library, both first- and third-party, of very high level components and frameworks. I actually find it a bit overwhelming having recently returned to using Delphi. Check out docwiki.embarcadero.com just for the official frameworks, they are quite rich.

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

    10. Re:Discussion is outdated by itzly · · Score: 1

      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.

    11. 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.
    12. 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
    13. 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.

    14. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      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?

      It may not be PC to say this, but the main reason is that Indian Java programmers on H1B visas are dirt cheap.

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

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

    17. Re:Discussion is outdated by jedidiah · · Score: 1

      Also, that bit about anti-Pascal criticisms being outdated or due to the "wrong implementation" pretty much destroys any idea that it would be superior for "cross platform" development. The excuses for those misconceptions show why Pascal would have a hard time being useful for "cross platform" purposes.

      What subset of "modern Pascal" do you have to restrict yourself to avoid those "problems".

      --
      A Pirate and a Puritan look the same on a balance sheet.
    18. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      I use Pascal because I like to get shit DONE

      If all you need DONE are GUI applications that haven't already been done 1000x before, that can't leverage the vast set of specialized libraries to be found in the more popular languages, and that only you need to maintain - then knock yourself out!

    19. Re:Discussion is outdated by QRDeNameland · · Score: 1

      Actually, I would "villify" that you wrote "5 languages" then listed six...seven if you count C and C++ as separate languages as most people do. Oh, and that you misspelled "vilify".

      But otherwise, good points.

      --
      Momentarily, the need for the construction of new light will no longer exist.
    20. Re:Discussion is outdated by Lonewolf666 · · Score: 1

      What subset of "modern Pascal" do you have to restrict yourself to avoid those "problems"?

      In practice, I guess you'd have to choose between Embarcadero's Delphi and Free Pascal.

      AFAIK Delphi is the only platform that still has significant commercial usage, but too expensive for hobbyists.
      Free Pascal is probably the most popular open source Pascal variety, and the one I know of that seems to be actively maintained.

      I think the rest of Pascal is thoroughly irrelevant these days ;-)

      --
      C - the footgun of programming languages
    21. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      You do overlook the staggering amount of COBOL and legacy Fortran code used across the world, from banking to meteorological institutes to academic science. There's vast amounts of code in those languages and it's not going to change in a hurry, partly because it's not worth the effort that would be involved porting it all to something more modern, and partly (and less importantly, since it would hardly be insurmountable) because Fortran in particular still has some significant advantages on optimisation when dealing with massive arrays.

      This isn't to take away from your core argument, except that I think you overestimate the extent to which C dominates over *any* other language -- but those languages that it doesn't dominate over to the same degree aren't the almost nugatory likes of Pascal, but instead COBOL and some horrific libraries in FORTRAN IV, F66 or F77...

    22. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      there's pretty much no useful libraries/frameworks/tooling

      You should check out the free trial of Delphi. The VCL is useful, FireMonkey is useful, the parallel programming library is useful, the bluetooth library is useful, just to name a few useful things.

    23. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      I wish I had mod points, I'd give them to you. Your reply pretty much hits the nail on the head.

    24. Re:Discussion is outdated by war4peace · · Score: 1

      I realized that usually count of bugs is proportional to lines of code multiplied by how many people work on the project, and bug fixing speed is inversely proportional to the same variable multiplication.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    25. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Also, that bit about anti-Pascal criticisms being outdated or due to the "wrong implementation" pretty much destroys any idea that it would be superior for "cross platform" development.

      Why? Delphi XE7 was released in September, 2014 and targets multiple platforms. Free Pascal 2.6.4 was released in March, 2014 and also targets multiple platforms. These are the two Pascal implementations with the widest use. What's destroying the idea of using them for cross platform development?

    26. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Nobody uses gtk+++1/2/3/4/5 craptastic shit for real world development....

    27. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      You should try asking in the mailing lists, most of the serious users are registered there and thats where most of those questions appear. There's also the Lazarus forum which also works (every question I got was answered within a couple hours).

    28. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      There are still plenty of Object Pascal developers, not as many as C or Java granted. There are still new applications being written and old ones maintained. Before Microsoft got hold of it, skype was written in Object Pascal so its not that obscure as you're suggesting. As for libraries it depends what you want to do. If you're interested in Desktop applications there are thousands of components available, commercial and free. If you're interested in numerical analysis and number crunching then you have to link to existing C or FORTRAN libraries. The main advantage of Delphi (which includes the IDE, libraries and language) is productivity, especially for GUI work. Having used a number of other GUI frameworks include QT and Java Swing, Delphi's GUI development is far far more productive. The only thing that comes close to it is Winforms and the reason for that is because the designs are similar, Winforms is almost a copy of VCL. Since becoming cross-platform (including mobile), usage has also increased. It's not quite as dead as you might suggest.

    29. Re:Discussion is outdated by caseih · · Score: 1

      Sounds like you're not aware of what Qt actually is. Qt is one of the oldest, most capable, most portable GUI libraries ever made. It's a little too C++-ish for my tastes, but it's certainly not hipster or craptastic or buggy. It's been around for over 20 years but still feels modern (Qt 5 QtQuick is a game changer), and forms the basis for more than a few large-scale commercial applications. In my mind, particularly if you use C++, it's the only game in town. The only downside is it's hampered by being written in C++. It's really hard to get good up-to-date bindings for other languages that aren't as popular, such as FreePascal, as you have to thunk between the object systems.

      As for your Pascal arguments, I use Python for the same reasons. Use what works for you.

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

    31. Re:Discussion is outdated by Motard · · Score: 1

      Dude, have you even seen what's available in Delphi? The list was quite impressive even before Java existed.

    32. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      C is dead...

      chris lukehart

    33. Re:Discussion is outdated by Creepy · · Score: 1

      I haven't written Pascal since a little after college, and that was mostly stub-ins for Mac OS 7/8 (basically, extending the GUI). Once I bought Code Warrior, though, the only thing I used Pascal for was strings I had to pass to and from the OS. The other versions of Pascal I used on UNIX boxes I remember had horrible device support (if you touched a device driver it would not cross-compile on different UNIX flavors). XWindows helped immensely for display drivers in that regard, but it still wasn't adopted at my college until the early 1990s. I have no idea where Pascal is at these days in that regard.

    34. Re: Discussion is outdated by Anonymous Coward · · Score: 0

      The idea that Delphi is cross platform is completely WRONG, it is not cross platform.

      First off, the dev app itself only runs on Windows, and the apps it generate don't even remotely resemble a mac app, the look closer to some sort of flash app or something.

      There's nothing really wrong from a language perspective about the Delphi language, feature wise probly on par with c# from 10 years ago.

      The problem is that it is a proprietary closed source language from a no-name company with a very poor track record. There absolutely nothing that it offers that isn't there in c#, java or c++/qt.

      There are no libraries for it because nobody uses it, unlike the millions of .net/java/c++ libs.

      There is no justification for the cost outlay/locked into a proprietary language/no libs.

      Oh and as everyone knows this already there are NO JOBS for it either!

    35. Re: Discussion is outdated by Anonymous Coward · · Score: 0

      The problem is that it is a proprietary closed source language

      So use Free Pascal and Lazarus and be happy. What's the dilemma?

    36. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Virtually nobody? Sadly that's simply not true. Java is used in a zillion "IoT"-stuff. But yeah, that's in the user space, in kernel space, where all the exiting stuff is, it's all C.

    37. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      I second that about "a bug fix every...". Back in my first professional year (80's) our professional society gave prices for "the years best programming team", we analyzed the criteria and found that we stood a better chance of winning if we delivered products with flaws which we later corrected. You had no chance of winning if you delivered fault-free code!

    38. Re:Discussion is outdated by Anonymous Coward · · Score: 1

      You're aware Delphi's Linux support is a wrapper around Qt, yes?

      (I'm curious how Delphi is 'less buggy' for cross-platform development than Qt, seeing as it was designed from scratch to be cross-platform and people have been happily using it for that purpose for decades at this point)

    39. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Have fun writing 500 lines of c++ just to get "hello world" to show up on the screen. Oh, btw, anything you write will be GPL when you use Qt. LOL!

    40. Re:Discussion is outdated by martin-boundary · · Score: 1

      But then again, as long as customers still buy without complaining, why bother with quality?

      Because then the terrorists win.

      Seriously, bugs imply exploits imply security breaches imply more terrorists thinking they have a shot at blowing stuff up.

    41. Re:Discussion is outdated by Pseudonym · · Score: 1

      It's a little too C++-ish for my tastes [...]

      I have the opposite problem: Qt isn't C++ enough for my tastes. As a general rule, you can't program both in Qt and in modern C++ in the same program. Not without an insulation layer, anyway.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    42. Re: Discussion is outdated by wolverine1999 · · Score: 1

      Well since it runs under .NET, you can use ANY .net library with it...
      I agree that it's a proprietary closed company and the fact that there's no low cost version for education really is a disadvantage!

    43. Re:Discussion is outdated by Anonymous Coward · · Score: 1

      Oh fuck me, does this meme have to come up every single time there's a discussion about programming on Slashdot?

      When was the last time that your OS bluescreened or equivalent? When was the last time you had a server running modern software that was vulnerable to a buffer overflow?

      If you think software is now "ridiculously buggy" then I genuinely have to question how long you've been using computers, because frankly I still remember the 80s and 90s when it was normal to have to click save every 5 minutes just in case, when blue screens were a daily rather than yearly event, and when patching your services against buffer overflow vulnerabilities was a once a week event rather than a once a year event. I remember when people like Bill Gates would show off their latest and greatest only to blue screen when they plugged a scanner into it, I remember when it used to take weeks to get my network and graphics cards to work properly on Linux rather than no time at all as is now the case.

      Contrary to your rose-tinted belief, it's actually the widespread use of APIs and frameworks that's to thank for this, we have more people using them than ever and that means they're getting tested in more ways than ever and are less buggy and more stable as a result.

      About the only industry where software seems to have become more buggy is the games industry, but it's a clear exception driven by ever more ridiculous deadlines and not the rule.

      If you think that rolling everything from scratch each time is somehow a path to better software then please, just keep away from a computer. We don't need to go back to those days, no matter how misguided a fond view you might have of them.

    44. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Yes, if it weren't for those, people would use the other platform agnostic, highly performant and secure, statically typed, mature language with huge amount of existing APIs and tooling that has proven itself in the industry for two decades.
      Programming languages are trivial to learn if you stay within a paradigm. It's not like the main alternative contenders are Lisp, Haskell and Forth. If everyone needed Rust or D or Go programmers instead of Java, the Indians wouldn't take too long to adapt.

      I really don't get all the Java hate. It has it's few annoyances (Type erasure, null pointers, some parts of the API), but overall it's a simple, elegant language that get's the job done. It's neither shiny, nor witty, nor 1337, which may be why people hate on it. It's the best tool for a job and that job happens to be very common and often not very challenging.

      OT: I haven't programmed in Pascal, but I do have extensively in PL/SQL. Since they seem to share a lot of the syntax, I can conclude that Pascal sucks.

    45. Re:Discussion is outdated by T.E.D. · · Score: 1

      On an instruction cycle basis, there are orders of magnitude more C code executing

      This comment was very difficult to read, as you kept leaving off the "OBOL".

    46. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      However, if you make the wrong choice, you'll kick your ass tenthousandfold afterwards. For instance, if you're being deluded somehow into thinking that you can write insanely fast applications in Java. At first, everything might seem to be fine, until you discover that you can't speed up things any further and have to rewrite everything (or at least the most speed dependent parts) in another language. Only base types like "int" and "char" get optimized properly by the JIT, so in Java, you would have to do away with much of your object-oriented code to get more speed. Languages like C++ offer you many libraries as well, but you have more flexibility right from the get-go, especially if speed might become a concern.

    47. Re:Discussion is outdated by HiThere · · Score: 1

      No.
      Python is an open source project. Ruby is an open source project. Squeak is an open source project. D is an open source project. Racket (scheme) is an open source project. ALL have decent language documentation. And that was just a list off the top of my head. Being an open source project is not an excuse for lousy documentation.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    48. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Check out CodeTyphon http://www.pilotlogic.com/sitejoom/index.php/wiki/84-wiki/codetyphon-studio/72-codetyphon-about

    49. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      I'm sorry, but C won't be with us for hundreds of years simply because the coming rise of AI will make all code obsolete. Computers will revert to coding in machine code, simply because they won't need the intermediate translation layer that human readable code represents.

      So by making that claim, you are assuming AI is not possible (or at least, no possible for at least a few hundred years).

    50. Re: Discussion is outdated by Anonymous Coward · · Score: 0

      Well since it runs under .NET, you can use ANY .net library with it

      The Delphi .NET stuff was discontinued some time ago. There's Oxygene which is a Pascal dialect which can run on the CLR.

    51. Re:Discussion is outdated by Anonymous Coward · · Score: 0

      Do you have any evidence that programs have been less buggy in the past?

      I think it's more that bugs are found because now thousands of people and companies are constantly looking for and reporting bugs, not because of framework-based development introducing more bugs.

      Frameworks lead to a lot less of fixing the same bug over and over and over across many different products; fix one framework bug and a whole collection of related application bugs go away.

      I don't think service releases are seen as a sign of quality as much as a sign of care, that someone is actually maintaining the product.

    52. Re:Discussion is outdated by cwsumner · · Score: 1

      On an instruction cycle basis, there are orders of magnitude more C code executing

      This comment was very difficult to read, as you kept leaving off the "OBOL".

      LOL !

      Just because your current friends don't use something, does -not- mean that no one else uses it. You don't know "everyone". 8-)

  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.
    1. Re:Languages preferences are so subjective. by edibobb · · Score: 1

      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.

  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.

    2. Re:Let's flip this around by Anonymous Coward · · Score: 0

      I have no idea how I ended up typing "constrold" instead of "control" :p

    3. Re:Let's flip this around by Anonymous Coward · · Score: 0

      If you're posting anonymously, what difference, at this point, does it make?

    4. Re:Let's flip this around by Anonymous Coward · · Score: 0

      First, Pascal brought lots of stuff that you now use in the other languages.
      Second, it is quite unique (or was until some recent offerings appear) as it filled the space between high and low level (think Java/C# vs C++).
      Blazing fast compilation, thanks to a good module system, plus excellent cross platform support with no dependencies.
      Also all features you want from modern languages (generics, lambdas, rtti, etc) coupled with native code compilation (meaning very good performance plus easy deploying).

    5. Re:Let's flip this around by Motard · · Score: 1

      I want every programming tool with which I interact to have some special thing that it teaches.

      Why, for God's sake, would you want that?

    6. Re:Let's flip this around by smittyoneeach · · Score: 1

      Some of us fetish learning things. Haskell really makes you reconsider things, for all I still haven't accomplished anything non-trivial in it.

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

      Strong typing and non-native types.

      Pascal may or may not have been the first language to have type declarations, but it's the one that popularized them ... just as C++ popularized classes although Simula (aka "Algol with classes") had them two decades earlier ... and regexes were around before Perl.

      Also, Ada was deliberately (it was one of the requirements) built on Pascal syntax, although that in turn derived from Algol.

    8. Re:Let's flip this around by david_thornley · · Score: 1

      I don't learn languages unless one of two things is true. Either I need a use for it (and getting paid counts as a use), or I need to learn something different from it. Nobody's showed me anything about Pascal I can't easily do in C++, and I have no actual use for it.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    9. Re:Let's flip this around by MorphingDragon · · Score: 1

      Writing an interpreter in Haskell was pure pain the first time. Learnt shit tons about the functional paradigm though.

    10. Re:Let's flip this around by smittyoneeach · · Score: 1

      Did the interpreter feel better when it quit hurting?

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  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 Roceh · · Score: 1

      Still miss delphi sets, they were so much more powerful than c# flag attributed enums.

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

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

    3. Re: Yes. by Anonymous Coward · · Score: 0

      Go check out the latest releases.. not cheap, but I am having real fun with the new incarnation of Object Pascal. They have neat Parallel programming libs, generics, etc. that seem well thought out and syntactically clear compared to C++.

    4. Re:Yes. by Lord+Crc · · Score: 1

      If you got an enum, you can declare a set of that enum, for example:

      type
          TParam = (pAaa, pBbb, pCcc);
          TParams = set of TParam;

      You can then easily check for membership: if pBbb in Params then ...

      However the real power comes from being able to do set operations using + (union), - (difference), * (intersection) and the less than/greater than operators for testing for sub-/supersets, see the documentation for details.

      For example, if you want to check if neither pAaa nor pCcc is in Params, you can do

      if (Params * [pAaa, pCcc]) = [] then ...

      [] is an empty set.

    5. Re:Yes. by Barryke · · Score: 1

      Nice explanation here: http://www.delphibasics.co.uk/...

      There are more examples, for comparisons against one enum (not a set) this would suffice:
      if not(pAaa in Params) then ...

      Or checking for a subset:
      if [pAaa, pCcc]

      --
      Hivemind harvest in progress..
    6. Re:Yes. by Barryke · · Score: 1

      ^ that should be:
      if [pAaa, pCcc] <= Params then ...

      Seems /. didnt like the < syntax.

      --
      Hivemind harvest in progress..
    7. Re:Yes. by Anonymous Coward · · Score: 0

      In languages that aren't Pascal, we call those bitfields and use bitwise operators to do the same thing.

    8. Re:Yes. by Anonymous Coward · · Score: 0

      You can also use bitfield and bitwise operators in Pascal, sets are just extra semantics built of top of them to simplify such kind of operations.
      And believe, once you've used the new semantics you would not want to go back to manually toggle bits around.

    9. Re:Yes. by david_thornley · · Score: 1

      The original standard Pascal sets were crippled, for convenient implementation on Wirth's CDC 6600. Being able to count on "set of char" would have been very useful.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  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 Austerity+Empowers · · Score: 1

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

    2. 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.
    3. Re:One important use left for Pascal by narcc · · Score: 1

      I'm sad to say that I completely agree.

    4. Re:One important use left for Pascal by dfranks · · Score: 1

      Even for bit stuffing applications, I like object pascal better, compare this to what you have to do in C:

        TRTPHeader = bitpacked record
          Version : 0..3;
          Padding : 0..1;
          Extension : 0..1;
          CSRC_Count : 0..15;
          Marker : 0..1;
          Payload_Type : 0..255;
          Sequence : Word;
          Timestamp : Cardinal;
          SSRC : Cardinal;
          Data : Byte;
        end;

      How if I have a variable packet, I can just say:
        packet.Version := 2;
      and I don't have to deal with masking, clear, rotating, etc etc.  Not that these are difficult, but they are much less readable than a simple assignment and I get the advantage of range checking/etc.

    5. Re:One important use left for Pascal by Anonymous Coward · · Score: 0

      But what Pascal did you use, the original Pascal or the newer Object Pascal? There are huge differences between them. Object Pascal is on par with any modern language in terms of features. No one in their right mind would use the original Pascal.

    6. Re:One important use left for Pascal by Anonymous Coward · · Score: 0

      Then I learned C 6 months later and wondered why anyone would ever use Pascal. Then I saw this thread, and I wonder ....

      And I'm wondering whether your wondering came before or after the order of magnitude more runtime bugs your app encountered using C compared to Pascal? And exactly did you see in C, that made you forget pascal?

      50-90% of critical bugs that cost companies hundreds of millions of dollars, but give job security to sysadmins, come from bugs that could be easily caught by stricter languages like Pascal. C is only suited for low-level programming, such as operating systems and drivers, not common applications. Unfortunately, it's this strict type checking that makes noob programmers avoid languages like Pascal and prefer C, which gives far fewer compile time errors.

    7. Re:One important use left for Pascal by Yunzil · · Score: 1

      If you believe C is in any way better than Pascal you can not program

      Other way around.

    8. Re:One important use left for Pascal by angel'o'sphere · · Score: 1

      Yeah, that makes a good example, I was more thinking about direct rotating or masking in bytes read from a stream or something.
      As soon as you can pack stuff into a packed record Pascal is easy. But keep in mind, with some restrictions you can write similar structs in C.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:One important use left for Pascal by NoOneInParticular · · Score: 1

      struct TRTPHeader {
      unsigned Version : 2;
      unsigned Padding : 1;
      unsigned Extension : 1;
      unsigned CSRC_Count : 4;
      ...
      unsigned Data : 8;
      };

      And now I can say packet.Version = 2. I can also see that 'padding' is not at the byte boundary, so that's probably a bug. So why is the Pascal version better?

    10. Re:One important use left for Pascal by angel'o'sphere · · Score: 1

      As long as you don't convert into my fan, all is fine, narcc!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re:One important use left for Pascal by Reziac · · Score: 1

      From the user standpoint (I'm not a programmer, but I take an interest, and have rooted around a bit in various source codes), these are my observations:

      1) When a program written in C crashes, it may do damnear anything on its way out.

      When a program written in Pascal/Delphi crashes, it simply closes down and returns you to the OS.

      2) I have an ancient (1990) database program I can't live without. When it was retired from the market, its owner kindly shared source with me, which happened to be in Pascal. There's not a single comment in it, but as I know the program so well, I can tell what nearly all its code does.

      I can't say that of the other antique program which I still use and know very well (and have perused much of the source), but is written in C.

      I doubt it's entirely coincidence, or even relative marketshare, that's given us those marvelous Obfuscated and Underhanded Code contests for C, but no such for Pascal.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    12. Re:One important use left for Pascal by badkarmadayaccount · · Score: 1

      looks like data declaration section for cobol. cute.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  9. Delphi cross platform? by Torp · · Score: 1

    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.

    --
    I apologize for the lack of a signature.
    1. 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.
    2. Re: Delphi cross platform? by Anonymous Coward · · Score: 0

      The new XE7 version has true native ARM cross-compilation for iOS and Android; no Linux x86 support at all, thus no need for wine. Too bad actually, hopefully Linux target comes back someday...

    3. Re:Delphi cross platform? by Motard · · Score: 0

      No, Kylix was a complete failure. It was an attempt to lure the next generation Turbo Pascal users, But that next generation was made up of Linux fans that didn't want to pay for *anything*.

      Subsequent to that they started targeting cross-platform development on the latest devices.

    4. Re:Delphi cross platform? by BarbaraHudson · · Score: 1

      I think that, if it hadn't absolutely sucked performance-wise, many of the people who had already bought Delphi would have been quite happy to shell out of a linux version.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    5. Re:Delphi cross platform? by Motard · · Score: 1

      The people who bought Delphi were Windows users. They didn't need a Linux version.

    6. Re:Delphi cross platform? by BarbaraHudson · · Score: 1

      I paid $500 for Delphi 1 when it came out, $374 (upgrade price) for Delphi 3 Pro, and would have happily paid $500 for a native linux version. I'm sure I'm not the only one. Just like I would have happily paid for a BC++ linux version, same as I did for the Windows version.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    7. Re:Delphi cross platform? by laa · · Score: 1

      The IDE used wine, but the apps were native. You could even do server side Apache dynamic libraries for your linux web server. Technically it was a nice effort (even though the wine IDE discouraged three of the seven potential buyers). Commercially it never stood a chance, it lacked a market and it was obvious it could never create one.

      --
      Why does the kernel go through stable and then unstable forks? Can't it always be a stable build, like with Windows?
    8. Re:Delphi cross platform? by BarbaraHudson · · Score: 1

      Not only was I ready to pay for it, but so was my employer at the time. Would have been happy to pay a couple of grand (same as I convinced a previous employer to get on the Delphi alpha/beta testers program) if it had worked as advertised, but even the generated apps were way too slow to be usable. Even Java was (a lot) quicker - and that's not saying much back in those days.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    9. Re:Delphi cross platform? by laa · · Score: 1

      We did some test apps during the alpha/beta testers program and purchased one license for "recreational use". We created some half-production use web server apps with it, but it was mostly used to play with. Nothing with GUI, though, only server stuff.

      Now that I come to think of it, there was something funny with the UI code. Did it hardlink in QT? I think it did. Borland (or whatever they were called at the time) coughed up some dough and got a license where they could link in QT libraries in the executables. It was portable, but probably anything but quick.

      --
      Why does the kernel go through stable and then unstable forks? Can't it always be a stable build, like with Windows?
  10. Multiple lex levels are a pain at runtime by Anonymous Coward · · Score: 1

    The language itself was fairly civilized.
    The nested procedures made a sort of hiding with some of the same capabilities as classes.
    They worked well for somethings, but incurred an implementation issue of needing multiple lex levels of the stack accessable at run time.
    C and C++ with one lex level work just fine accessing stack variables using the stack pointer.
    Pascal required an extra frame pointer for each active lex level.

    I wouldn't start a new project in Pascal, but suitable compilers are available, I would not hesitate to maintain an existing project.

  11. a great first language to learn by Anonymous Coward · · Score: 0

    teaches all the necessary concepts of programming in a clean way. was the first language I leant .. then moved on to c, c++, java, ocaml. I think I could focus on the fundamentals rather than language features with Pascal.

    1. Re:a great first language to learn by HiThere · · Score: 1

      FWIW, there's nothing intrinsically wrong with Pascal...or less than with C or C++. Java is worse, hobbled by 16-bit unicode, a horrible decision, which was justifiable at the time the decision was made. (Unicode should be either utf-8 or utf-32 [UCS-4]. I generally prefer utf-8, but that requires more complex library support.)

      OTOH, the only real advantage of Pascal is fast compile times, and optimal execution times (which can easily be matched in C).

      So, yes, its underrated, but there's probably no good reason to change to it.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  12. Eiffel, Delphi, Smalltalk, Object Rexx by Anonymous Coward · · Score: 1

    Why don't Slashdotters invest their scarce free time on some of these other "underrated" OO languages from the past?

    A. Because there's no real momentum behind any of them in today's marketplace, same as Pascal.

    1. Re:Eiffel, Delphi, Smalltalk, Object Rexx by Anonymous Coward · · Score: 1

      I use Lazarus a lot. But then I programmed in Pascal in the 1980's.
      I am proficent in C/C++, Java and SQL but Pascal is my preferred language.

      It is a shame that more people don't look beyond C/Csharp or god forbid Java.

      Sure there a millions of Java classes that can be used. Very often their use leads to very lax programming.
      I have lost count of the number of shared Java classes that looked good on paper but... were total crap. Memory leaks and really inefficient use of Heap storage are just the tip of the iceberg.

  13. Advantages are gone. by drolli · · Score: 1

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

    1. Re:Advantages are gone. by itzly · · Score: 1

      I'd rather have 0 terminated strings than strings with a length byte.

    2. Re:Advantages are gone. by HiThere · · Score: 1

      Sorry, but the length defined strings are optional, though common in Pascal. UCSD (and other early) Pascals usually buit that into the language, but I believe that now it's a part of a standard library, and alternates can be defined (though probably not with the same name). I'm not sure why you consider Pascal data structures more "well defined" than C structs.

      P.S.: Strings in C can also be handled with a length byte. The zero terminated strings are purely a library convention, and can be overridden.

      FWIW fpc Pascal has a string type in it's library that uses a length value longer than a byte.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    3. Re:Advantages are gone. by Pinky's+Brain · · Score: 1

      In the last 2 decades on a general purpose processor? Why? AFAICS it has been proven without any room for reasonable doubt that programmers have to be protected against themselves in this ... and the performance impact hasn't been relevant in a long time.

    4. Re:Advantages are gone. by Anonymous Coward · · Score: 0

      Back in the day C struct types shared a single namespace. This is why in old code you see the struct members with a prefix unique-ish to the struct, exactly to avoid name collisions with other structs. Pascal had "clean" record types, with each its own namespace, C only got those a goodly while later. Pascal also has a convenient with statement that makes working with records a lot more convenient.

    5. Re:Advantages are gone. by Anonymous Coward · · Score: 0

      Good luck overriding the overwhelming force of nul-terminated strings in the C library! All you end up with is a different class of bugs when your counted strings that allow nuls then get passed to some other C library that uses nul termination. And, yes, some of those are security bugs.

      dom

    6. Re:Advantages are gone. by Anonymous Coward · · Score: 0

      Right. Strings with a length byte are limited to 255 characters maximum.

    7. Re:Advantages are gone. by HiThere · · Score: 1

      Yes. There are numerous reasons to "not fight city hall". But that doesn't mean you can't do it for a good enough reason. E.g., I use tab spacing at the start of Python lines. This causes formatting problems if I use idle, but to me its worth the cost. And I've occasionally had reasons to use a length terminated string in C...though I usually also zero terminate it. (IIRC the reason was that I needed to include 0 valued bytes in the string.)

      Similarly you can use zero delimited strings in Pascal, but you need to write the support routines that you would need, and since current Pascal has a string type that isn't limited to 255 chars it they would appear to be rarely needed.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  14. 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 metamatic · · Score: 1

      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

      And that's still a problem today. There's no standard for OO Pascal, and the ANSI Pascal standards have been moribund since 1990.

      That's why I abandoned Pascal (and Modula-2): I didn't want to get locked in to a single vendor.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    3. Re:Early fragmentation by HiThere · · Score: 1

      Did you ever try to run C on the Apple ][? UCSD Pascal was available, and worked well. C required an add on z-80 chip, and it was still a subset implementation. (Check out "Lifeboat C", though I think that was a later, and more capable version.)

      So the situation is more complicated than you are assuming. I didn't get a full C compiler until AFTER I had gotten an 8086...which means probably that the IBM PC was already around.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    4. Re:Early fragmentation by Motard · · Score: 1

      Turbo Pascal was quite successful into the IBM PC years. Iin fact I'm wondering if it even existed before the IBM PC)..

      But I've use the UCSD-P system, Turbo Pascal and Delphi, and never had the problems you describe. Sure, some were more evolved than others, but I can't ever recall anything more than preferring a specific implementation.

    5. Re:Early fragmentation by Anonymous Coward · · Score: 0

      UCSD was the "standard" Pascal. When the IBM PC first came out, it offered PC-DOS, CP/M-86, and UCSD as available OSes. You already know how that worked out.

      dom

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

    7. Re:Early fragmentation by LWATCDR · · Score: 1

      You do realize that TurboPascal was insanely popular on both the PC and CP/M?
      The reasons where simple.
      1. Cheap
      2. Turbo Editor Toolbox.
      3. Turbo Database Toolbox.
      4. Turbo Telcom Toolbox
      5. Turbo Graphics Toolbox

      I sold like hotcakes well in the the start of the Windows era and Borland even had an Object Windows Library OWL before MFC took over that market.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    8. Re:Early fragmentation by david_thornley · · Score: 1

      What puzzles me about that idea is that C took over on Microsoft OSes and MacOS, which were not heavily influenced by Unix at that time. C must have been seen as generally better, possibly because K&R C was far better than Wirth's Pascal.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    9. Re:Early fragmentation by david_thornley · · Score: 1

      Turbo Pascal became insanely popular on single-tasking systems because it was much easier to use.

      On my CP/M computer, I would write and execute a C program like so:

      1. Start a text editor (most of which were pretty bad on CP/M).
      2. Write or change program.
      3. Quit text editor, with nagging feeling that maybe I did something wrong, since it was going to take so long to get back here.
      4. Run compiler, with awkward command line. (If there was a compile error, go back to start.)
      5. Change disks, since my floppies were too small to hold both the OS, the compiler, and the linker with libraries.
      6. Run linker, with awkward command line. (If there was a link error, change disks and go back to start.)
      7. Execute program.

      With Turbo Pascal, I'd start the program, load my program (if I was changing an old one), and then edit and compile and run as I pleased. IDEs are nice, but on a single-tasking computer they're SO much nicer.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    10. Re:Early fragmentation by Anonymous Coward · · Score: 0

      You are correct. If a college had UNIX hosts then they taught C. Not the best reasoning to pick a development language that has multi-os targets. Steve Jobs used /bought Objective-C for a reason.

    11. Re:Early fragmentation by putaro · · Score: 1

      I did most of my work on Unix before I started at Apple in '95. All of the new OS development was being done in C by then. I suspect that before most of the OS development had been done in 68K assembler, not Pascal. When the switch to PPC started, Apple needed a cross-platform systems programming language and Pascal was not it.

      This article from '93 references how the industry mindset had switched to C/C++ and that pushed Apple.

      https://www.schneier.com/essay...

      One thing to remember is that at that time, both Macs and PCs were not very powerful machines and large applications were being developed for Unix workstations.

    12. Re:Early fragmentation by epine · · Score: 1

      Turbo Pascal became insanely popular on single-tasking systems because it was much easier to use.

      Many aspiring programmers were ruined by precisely this ease of use, getting into the habit of massaging compiler complaints out of their code base with their fingers instead of their brains.

      In C, if your compiler complains about an unsafe comparison between signed and unsigned, one can eliminate that complaint pretty quickly by tossing in a cast operator. Eliminating a braino ... not so fast.

      GUI-facing code often benefited from the rapid turn-around cycle of a "turbo" IDE, whereas algorithmic code typically didn't.

  15. Object-oritented FORTRAN by QuietLagoon · · Score: 1

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

    .

    1. Re:Object-oritented FORTRAN by Anonymous Coward · · Score: 0

      For the last 25 years, we've just called it Fortran.

  16. It just stinks as a language. by Anonymous Coward · · Score: 1

    I already knew c/c++ in college and they tried to teach me good old turbo pascal dos, one of my most painful memories.

  17. Critical mass? by fuzzyfuzzyfungus · · Score: 1

    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 crap and excellent stuff; but (with the specific exception of somebody who has mastered a specific set of skills and tools and would be very pleased for it to become an esoteric specialty just in time to land a few lucrative consulting gigs before retirement), are there really situations where you say to yourself "Yeah, Language X is great and all; but it would be better if there were fewer people using it, less incentive for commercial support or non-bitrotting FOSS support, less useful advice floating around, and fewer openings for people with a knowledge of it."?

    It is obviously the case that a pure monoculture is not a recipe for success(barring a yet-to-be-invented language that can in fact be all things to all people, well); but a language that is good, possibly even modestly superior; but lacks some specialty feature of elegance and power, are you ever better off on the underrated one?

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

    1. Re:Its very verbose by Motard · · Score: 1

      Pascal has some syntactical annoyances, although I hardly see how separate header files improve things in that respect.

    2. Re:Its very verbose by Anonymous Coward · · Score: 0

      This is just a myth, Java especially is one of the most verbose languages ever. I recently just ported a C# project to Object Pascal and the pascal version is around 70% smaller.

    3. Re:Its very verbose by Gramie2 · · Score: 1

      With the modern Pascal IDEs (Delphi and Lazarus), you declare a procedure/function in the interface and press a hotkey that generates the skeleton for the implementation. It's fast and easy.

      What I loved about Delphi, when I used it professionally 7 years ago, was compiling about 300,000 lines of code in under five seconds on a typical office PC. That kind of quick feedback made it easy to test things and find syntax errors.

      Also built-in range checking on strings and arrays, ridiculously easy data-bound controls (at a time when even Microsoft was telling people not to use the VB ones), great set handling (as mentioned above, and I still miss it in today's languages), EXEs produced with no dependencies.

      The Pascal (well, primarily Delphi) community was always very helpful, and most 3rd-party libraries came with source code.

      A lot of people are complaining about "being/end", and I have to say that I prefer curly braces, but that is by no means a significant issue (especially because IDEs highlight and collapse blocks, and in fact write the "begin/end" for you).

    4. Re:Its very verbose by Anonymous Coward · · Score: 0

      I for one enjoy having reasonable compilation time when I change one implementation in a big project.

    5. Re:Its very verbose by Anonymous Coward · · Score: 0

      Dont be so rational with the McFacebook generation !

    6. Re:Its very verbose by david_thornley · · Score: 1

      Putting everything into the header files, and having a .cpp file that just includes the headers, is a valid optimization under some circumstances. Most of the time, it makes it really hard to figure out what's going on.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  19. Turbo Pascal was the "dangliest danglies" by Anonymous Coward · · Score: 0

    Borland's Turbo Pascal was my introduction to serious programming with the Object Windows Library (OWL), before getting on to the multiple disk nightmare and wonder that was Turbo C++.

    Pascal lasted exactly long enough to be completely destroyed by C++ at one end taking the object oriented approach, and Modula-2 being the "language of explanation" for CS.

    Even that died the death when Visual Basic stomped everything in its path in the commercial arena, with Visual C/C++ taking everything elsewhere. Somewhere along the way Delphi shone very brightly for a few months....

    1. Re:Turbo Pascal was the "dangliest danglies" by gatkinso · · Score: 1

      OMG! OWL... on Object Pascal. What a blast from the past!

      --
      I am very small, utmostly microscopic.
    2. Re:Turbo Pascal was the "dangliest danglies" by Motard · · Score: 1

      Borland's Turbo Pascal was my introduction to serious programming with the Object Windows Library (OWL), before getting on to the multiple disk nightmare and wonder that was Turbo C++.

      Pascal lasted exactly long enough to be completely destroyed by C++ at one end taking the object oriented approach, and Modula-2 being the "language of explanation" for CS.

      Even that died the death when Visual Basic stomped everything in its path in the commercial arena, with Visual C/C++ taking everything elsewhere. Somewhere along the way Delphi shone very brightly for a few months....

      Well, years anyway. There was actually a Microsoft program manager that was quoted as saying something like that Microsoft should thank God for Borland every day. As someone who used both VB and Delphi, I could see all of the things MS was lifting from Delphi. Until they finally lifted its architect.

  20. Java is Pascal++ by Anonymous Coward · · Score: 0

    Your wish has already been granted: Java has all the training wheels and kiddie guards that Pascal has and most of the features of modern languages (except for the ones that interfere with the aforementioned training wheels and kiddie guards). There's no real need to go back to Pascal.

    1. Re:Java is Pascal++ by gatkinso · · Score: 1

      I used Pascal extensively back in the day... and I really don't remember Pascal ever generating byte code, nor was there a Pascal virtual machine. Plus Pascal supports pointers, doers not have garbage collection, and is very strongly typed.

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

      --
      I am very small, utmostly microscopic.
    2. Re:Java is Pascal++ by Anonymous Coward · · Score: 0

      The Jensen&Wirth compiler generated bytecode for a virtualized stack machine called the P-Machine (the bytecode was called P-Code), and they included the source for an interpreter as well. This made it easy to port the compiler to a variety of operating systems and machines by simply porting the interpreter to your local machine; this would allow the pcode compiler to run and then you could modify the pascal compiler sources to generate native binaries. There was a popular OS called UCSD P-System that had the operating system, compiler, and assorted utilities (editor, file explorer, etc) all compiled to P-Code, which interpreters written for everything from mainframes to 8-bit microcomputers. It supported other languages as well (Fortran, Modula-2 to my personal knowledge), and it was one of the original operating system offerings for the IBM PC.

    3. Re:Java is Pascal++ by gatkinso · · Score: 1

      That stuff was even before my time - but IIRC that was more akin to an interpreter than a VM... this was running on the PDP-11 where I went to college and I only had access to the VAX... so I cannot say for certain. However there **was** what we would these days call a just in time compiler that generated object (or something ?) code (this must be the P-Code you mention) for the interpreter so I will give you points for that as that is definitely Java like.

      --
      I am very small, utmostly microscopic.
    4. Re: Java is Pascal++ by brianerst · · Score: 1

      Then you didn't do it far enough back. The entire concept of a virtual machine was popularized by the UCSD Pascal p-system (BCPL had the O-system in 67 but no one used it). Not only was it the precursor of the JVM (James Gosling called the p-system the main influence on Java's VM) but it also virtualized the entire OS - UCSD Pascal was one of the three original packaged OSs for the IBM PC.

      Even Wirth created p-system/p-code style Pascal compilers. Until the advent of Compas/Turbo Pascal, Pascal was hardly ever compiled into machine code.

    5. Re:Java is Pascal++ by putaro · · Score: 1

      UCSD P-system was a virtual machine. introduced back in '78. I think it was most popular on the Apple II, though it ran on PC's and even the PDP-11. I went to UCSD in the mid 80's and we learned Pascal on PC's but the PDP-11's (these were small graphics workstations, not minis) were running RT-11, if I remember correctly and we used them for the assembly language class.

    6. Re:Java is Pascal++ by Anonymous Coward · · Score: 0

      UCSD P-Pascal ?

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

    8. Re:Java is Pascal++ by Anonymous Coward · · Score: 1

      http://en.wikipedia.org/wiki/UCSD_Pascal
      This was a very common Pascal system (Apple II Pascal, for example) in the late 70s and early 80s and was based on a virtual machine interpreting what today would be called byte code. The design of the p-Machine influenced the design of the java VM.

    9. Re:Java is Pascal++ by Anonymous Coward · · Score: 0

      Java's single-inheritance class system is very similar to that in Object Pascal except Pascal did not have interfaces.

      Object Pascal also has interfaces.

      No separate header files: Interface declaration and implementation in the same source file.

      Yes, if you want. But if you're using object interfaces then the interface declaration can be in a separate unit if you prefer.

    10. Re:Java is Pascal++ by Anonymous Coward · · Score: 0

      Pascal has interfaces.

  21. C is just a Macro Assembler with curly brackets by Anonymous Coward · · Score: 0

    There. I said it.

    C is nothing more than a Macro Assembler. Byte my shiny metal assembler.

    1. Re:C is just a Macro Assembler with curly brackets by crunchy_one · · Score: 1

      How often I've wished this were true. Here is an example of why C isn't an assembler. How do you access the condition codes maintained by the underlying machine? Try writing C that adds together two 8 (or 16 or 32 or 64 or whatever) bit binary integers while preserving carry out of the high order bit without having to perform additional integer operations to either synthesize the carry or recover it from an addition wider than the operands. C implements a simplified virtual ALU that has no notion of carry or overflow. It is certainly not the only language that does this, but it does make it impossible (or at least extremely inefficient) to do some things that an assembler allows as a matter of course.

  22. 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. . . .
  23. I liked pascal, I really did by Anonymous Coward · · Score: 0

    Turbo Pascal on DOS was great. Nice, neat, small, fast compiler, if not terribly fast code. Except for that last bit, it beat C hands down, no sweat, by a stunningly large margin. Now I'm on a Unix and as clunky as the C (and C++) toolchain is, it's part of the system and so easily overlooked. And my mind moved to C, since while Pascal is pretty good, if I'd try to write it now I'd invariably get stuck with the differences in ; and such. It's just... well... too many factors to switch back really, starting with the obvious: Pascal is about on par with C in language level and I'm on Unix now. I like writing compact, portable code and for that C is hard to beat on explicitly C-based Unix. Of course, in a sense it's cheating. Sorry, Pascal.

  24. 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 Anonymous Coward · · Score: 1

      "Hacked together shit wastes programmers' time."

      I'm not over the hill, but FFS, why is this such a foreign concept for 90% of the people I have worked with? You're just screwing your future self!

    2. Re:Hints from an over-the-hill programmer by Anonymous Coward · · Score: 0

      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

      Have you ever looked at the Linux kernel framework? Would you call the LK process management code "great"?

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

    4. Re:Hints from an over-the-hill programmer by phantomfive · · Score: 1

      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.

      Well said. I would suggest that not everyone has seen expressive code, though.

      --
      "First they came for the slanderers and i said nothing."
    5. Re:Hints from an over-the-hill programmer by Anonymous Coward · · Score: 0

      Yeah I am so tired of the programming language cat-fights. Bad programmers produce bad code in all languages. The common thread is organization--or lack thereof. No programming language can ever impart organizational discipline on a programmer because that depends on a host of environmental variables (sorry) that are not technical in nature: No one is going to want to fire up a massive IDE and create a whole repository to write a little utility that fixes a registry value. No one wants to use a text editor to maintain an enterprise-scale custom .Net application suite. And yet this doesn't account for personality, coworker attitudes, company policies, past practices, management styles or just plain dumb luck.

      I really wish the nerd rage would stop. Let the professors argue and use the best tool for your task--or use the tool your employer uses because that's what you need to get the job done. When I hear these arguments it's like hearing people argue about whether a piano or a guitar is best for music, or whether blue is better than yellow. I also wish employers and programmers alike would stop pretending that one programming language is a world unto itself. Like you're fated to some sort of coding destiny that can never be changed. You're not freakin' austere code monks keeping secret knowledge--you can learn something new or do it someone else's way. All programming languages work in a similar way and and employers need to stop demanding applicants with 170 years of .Net 2.0 programming experience. Hey maybe if you trained a worthy applicant in the bizarre and hilarious ad-hoc procedures of your company, they'd be a little more loyal and cooperative you know?

    6. Re: Hints from an over-the-hill programmer by Tablizer · · Score: 1

      People can usually read their own tangled mess better than other people's tangled mess because one typically knows one's own style of tangleness than others'.

      Programmers tend to invent a custom short-hand that they personally like, but like actual short-hand, it may not be easy for others to figure out.

    7. Re:Hints from an over-the-hill programmer by david_thornley · · Score: 1

      Flowcharts? And I thought I was old!

      Flowcharts suck. Their information density is low, which means either the logic is horribly fragmented or you're crawling around on the floor, and you have to physically move to see the overall logic. Pseudo-code is far better.

      It's true that I couldn't explain C++ code to Mom. On the other hand, I couldn't explain any other technical details to her, no matter how phrased or in what language. She had the worst grasp of anything technical of any highly intelligent person I ever knew.

      Some problems are just plain hard and complex, and really can't be explained in simple language to outsiders. Programs that solve these make me a lot of money, so there has to be uses for them. On the other hand, I suppose anything you can put on a flowchart can be simply explained to most intelligent people other than Mom.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    8. Re:Hints from an over-the-hill programmer by Reziac · · Score: 1

      "To be a great programmer, you need to write code that reads like English."

      That's an interesting observation, and see what I (not a coder but an interested bystander) say above about two programs I know equally well as a user -- one in Pascal (I can pretty much grok what all the code does despite zero comments), the other in C (lots of comments, but still makes my brain hurt even when I can figure it out).

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    9. Re:Hints from an over-the-hill programmer by Toshito · · Score: 1

      To be a great programmer, you need to write code that reads like English.

      So what's you're telling us is that we should use COBOL? ;-)

      --
      Try it! Library of Babel
  25. No by vanyel · · Score: 1

    No

  26. No, but Object Orientation is a fad that has faded by DanielOom · · Score: 1

    Pascal gave way to Modula and Oberon and it inspired Ada.

    Then you got things like Borland Object Pascal / Delphi, but once you include Object Orientation, it no longer should be called Pascal, just some proprietary language.

  27. 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 DexterIsADog · · Score: 0

      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

      50+ is old? Huh.

      Well, you forgot a third class - 50+ (old? really?) people who still learn about new tools and concentrate on process and quality, instead of sticking exclusively to what worked early in our careers. I am one of those.

      But then, I graduated from coding to management about 10 years ago, which probably explains it. :-)

    2. Re:This. SO MUCH This. by brunes69 · · Score: 1

      If you are in management, then I imagine you agree with my post.

    3. Re:This. SO MUCH This. by DexterIsADog · · Score: 1

      Not really. My point was that you were generalizing too much.

    4. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      The APIs, tools and frameworks we already have should be good enough for anybody.

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

    6. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      That is why, at the age of 65, it is time to get out of Dodge and let someone younger do this kind of work. It has been fun and change is change.

      If you have never done macro level CICS, then you more than likely think DOTNOT is magic...screen, code behind what more needs to be said, just who gives you the most libraries.

      Have a good day.

    7. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      50+ is old? Huh.

      Yes. Next question?

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

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

    10. Re:This. SO MUCH This. by DexterIsADog · · Score: 1

      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.

      Yeah, that slapdash mentality is a large part of what I have to manage, so we don't experience continual disaster. I didn't say I was a software developer any more. I ride herd over business analysts, systems analysts, and the menagerie of IT who do the programming.

      Fortunately, I have a long technical history, and even though I got my degree about 8 years before the first browsers, I picked up web programming just like I did every other model, from mainframe to minicomputer to PC, to web services. It's so much easier to manage my folks when they realize they can't bullshit me. :-)

    11. Re: This. SO MUCH This. by brunes69 · · Score: 0

      Unless you can give me all of Apache.org in Pascal I am not interested because it ewill mean lower quality applications that take 10x as long to develop because you will have to reinvent the wheel.... again and again and again.

    12. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      I cut down trees to make boards. You know why? Because then I get the board I want, not just what happens to be laying around. True, it's a boutique way to make things, but that the difference between craft and art I suppose.

    13. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      ... Someone who is 40 today entered college just as web browsers were being invented. ...

      being invented by the people who are now 40 and 50 years old do the math

    14. Re:This. SO MUCH This. by Billly+Gates · · Score: 1

      I know people who went back to school at 45 and found jobs as software developers before even graduating! Do not tell me this as the 2002 recession ended.

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

    16. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      You might like LINQ. In C# for example:

      var results = from p in Programmers
          where p.Age > 50
          select new { p.FirstName, p.LastName };

      foreach (var p in results)
          Console.WriteLine(p.FirstName, " ", p.LastName, " is not *that* old");

    17. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      I don't know how going deeper in the Microsoft dungeon of proprietary langage is any better than writting a raw SQL query. Why not use function calls to the database layer?

    18. Re:This. SO MUCH This. by Anonymous Coward · · Score: 1

      I am a 30+ year old developer who has been working with Object Pascal, C, and C++ right out of college.

      From a business standpoint, there is nothing i cannot accomplish with Object Pascal that I cannot accomplish with C/C++, or vice versa.
      IMHO, Object pascal greatest strengths are:

      1. Fast compilation, and can generate native cross platform almost instantly. Hence the motto, "Write once, compile everywhere".
      2. Its Compiler - FPC. Smart, does many things for the programmer. Should be able to compile any project without a makefile setup; as long as you have a toolchain setup properly in the fpc.conf file. Links staticly with everything from the RTL/VCL/LCL libraries.
      3. The runtime library and the availability of RAD components, including the terminal emulator component. You do not have to "cut down the trees, mill the lumber, and forge the nails" to build a woodsheed.

      I do not have a problem with Object Pascal syntax; although I wish that they are less verbose. ie) begin .. end else begin .. end; array[0..2] of ObjectType?
      IMHO, here are some of the disadvantages:

      1. The FPC compiler / Build process
                a. Not as flexible and bug free as the GNU C compiler/liker. Most bugs I experienced are compiler related. And the latest compiler fpc-2.6.x uses 300% cpu power, when compared to the 2.4.x version.
                b. ** I ** could not link with a static c library. I believe the compiler/linker does not support this feature.
                c. The programmer does not have as much control over the build process, compared to C/C++, auto-tool & cmake build process.
      2. The runtime library - the entire RTL is in a sandbox, and most opensource software now-a-day are C/C++. Has to create bindings/wrappers to use most open-source libraries.
      3. Defines the interface and implementation in the same unit - bad convention. Harder to design highly complicated software.
      4. Good for business logic applications, not good for low-level embedded applications. * I would NEVER use it to write any kind of embedded software.
                a. The language abstracts too many things that are obvious in C/C++.

      5. Multiple inheritance, and collection templates
                a. It only supports single inheritance.
                b. Object pascal generic type is similar to C++ templates; and you have to define their types before you can use them. With C++, you can use a collection template and have it defined on the stack instantly, ie std:vector. With object pascal, you have to jump through hoops to do that.

      In short, Object pascal has some deficiencies; but it is a really good tool if you focus more on Rapid Application Development (RAD), cross platform development, and quick/easy compilation and installation. I think the language is under-rated because it is a higher level language and most open-source projects do not use it because the build process is not highly user-customizable and the interface/implementation are too tightly defined; and hence it does not have much of an identity in the opensourcce community.

    19. Re:This. SO MUCH This. by IronAmbassador · · Score: 1

      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.

      Shit, i'm only in my 30s and still run into this problem! No one seems to want to learn what a library is actually doing under the hood anymore!

    20. 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
    21. Re:This. SO MUCH This. by MooseMiester · · Score: 1

      Anyone who gets in to this business... and doesn't salivate at learning something new constantly... picked the wrong career.

      I've been coding since 1979, making me super/super ancient fossil, but I still love learning new things. I have bitter angry friends who refuse to learn new stuff, so I know where you are coming from. But don't lump all us old farts in the trash bin, because BIG SURPRISE you're going to be one of us far sooner than you realize.

      --
      Murphy was an optimist
    22. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      I went to NeXT developer camp in summer 1991 and we put together apps exactly the way you do today on MacOS and iOS. Using earlier versions of the same tools and frameworks in use today. The only difference was the class names were prefixed with "NX" instead of "NS."

    23. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      3. Defines the interface and implementation in the same unit - bad convention. Harder to design highly complicated software.

      What makes it harder?

    24. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      3. Defines the interface and implementation in the same unit - bad convention. Harder to design highly complicated software.

      What makes it harder?

      I like being able to define an interface on the top of a unit (aka file), and the implementation (code) on the bottom half of a unit.
      But for example, when there's a need to design a more complicated piece of software. Let's take the linux kernel as an example. As you read through this example, please keep in mind that the implementation is just object code, and the interface is does not care how it is implemented for each architecture.

      Simple example, software reboot/kexec interface of the arm architecture.

      ARM is really an architecture that multiple micro-chip manufacturers use to lay their own subsystems on top, and how they implement reset is totally different. It is a policy of a reset or power controller. **from the top of my head without checking the code**, the kernel would call arch_arm_reset(char *mode);

      the under-lying code (implementation) is actually compiled independently based on manufacturer, and product model.

      for instant,

      Freescale - implements reboot by flushing cpu caches, and call reboot for it cpu family.
              - IMX6 may implement reboot differently
              - IMX5 may also implement differently.

      Atmel - also flushes caches, and shuts down peripherals on the EBI bus, like a SDRAM/DDRAM controller, and then request reboot from the reset controller.
              - ARM9xx core may implement reboot differently
              - ARM Cortex may also implement differently.

      Again, this is an example of a single interface. The kernel core api does not care how it is implemented. The programmer can choose what implementation to use at build-time.

      Another reason why it is harder because if the interface and implementation are separated, creating a third-party opensource or closed-source library would be extremely easy. You would just compile the the implementation into a static or dynamic library and distribute the header/interface files.
      And if you never get this far, one day you'll realize that you can not link delphi/object pascal application to a static c library - dont ask me why please.

      Thank you.

    25. Re:This. SO MUCH This. by Anonymous Coward · · Score: 0

      Another reason why it is harder because if the interface and implementation are separated, creating a third-party opensource or closed-source library would be extremely easy. You would just compile the the implementation into a static or dynamic library and distribute the header/interface files.

      Not sure why you think third party libraries are hard in Object Pascal. If anything, the component model makes it easier than in other development environments. You can distribute it as source and have people build it in Delphi or Free Pascal, you can distribute as a DLL with an import unit, you can distribute it as a package for both dynamic and static linking, you can distribute it as compiled DCUs only if you want.

      If you want to separate the interface and the implementation on the source level there are many ways to achieve this in Object Pascal. You can use object interfaces. Or you can have an abstract class (or a class with empty implementation) in one unit with a factory for the concrete classes implemented in other units. Or you can use the $INCLUDE compiler directive with conditional defines to source the guts of the implementation from multiple files.

      And if you never get this far, one day you'll realize that you can not link delphi/object pascal application to a static c library - dont ask me why please.

      Well, in fact you can - don't ask me how please.

    26. Re:This. SO MUCH This. by Leus · · Score: 0

      C# is no longer proprietary. Get your biases updated, people!

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

    1. Re:My introduction to procedural languages by TechyImmigrant · · Score: 1

      Ditto. I was happy as a pig in shit programming Pascal in 1987. Compared to Apple Basic it had types.

      >Assembler (who codes in that any more, though?).

      Er me. But I work for a company that builds CPUs. So it's usually to bang on corner cases.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  29. Referring to the year is outdated marketeering by Anonymous Coward · · Score: 0, Interesting

    The prevalence of java isn't due its* APIs, it's** because "everyone else does it, too" in the enterprise, meaning a large pool of mediocre and therefore interchangeable code grinders. That this then results in lots of APIs that no single person can keep in his head all at once is only to be expected, but hey, we have GUI-enabled IDEs to solve that problem for us, don't we? But that last bit really isn't the selling point. It's that pool of readily available interchangeable people. It isn't a coincidence that the off-shoring out-sourcing craze throve on "low-skill tasks, like programming". That's typically (often stunningly low quality) java because those out-sourced-to people wouldn't have a prayer of writing C and having it run and not crash consistenly. Those who employ java coders generally aren't going for the high-brow stuff, they have boring business logic to get written and run.

    * possessives get no apostrophe.
    ** apostrophes indicate contractions, which you can expand.

  30. VHDL, Verilog, System Verilog, System C by TechyImmigrant · · Score: 1

    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 logic bit type in VHDL means you need libraries before you can do anything.
    OVM is beyond the wit of man to comprehend from any modern language theory.
     

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    1. Re:VHDL, Verilog, System Verilog, System C by MorphingDragon · · Score: 1

      You think those are bad, try the Academic languages that based on LISP, Haskell and its ilk.

    2. Re:VHDL, Verilog, System Verilog, System C by MorphingDragon · · Score: 1

      Try the HDLs based on LISP and Haskell, then cry in the corner.

    3. Re:VHDL, Verilog, System Verilog, System C by TechyImmigrant · · Score: 1

      You mean EDIF. Been there, done that. God it sucked.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    4. Re:VHDL, Verilog, System Verilog, System C by TechyImmigrant · · Score: 1

      Haskell is quite unpleasant. It's like they pretend that it's a pure language by giving all its hacks academic names. Monads? Currying? Closures? Hacks.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  31. I make my living with Pascal by Anonymous Coward · · Score: 1

    I make $200K+/yr doing freelance work, all in Delphi and Oxygene. New projects and old, Windows and iOS.

    Why? I get to choose my own tools. Since it's faster to market, it's therefore more profitable for me. I find the syntax is less error prone than most of the realistic alternatives.

    Most estimates I see still put Pascal users over 1 million, but it seems like a stealthy unknown, like Python used to be.

    I can understand why Pascal does not have the market share of C#/C++/Java, and why programmers are forced to use them. But not why programmers would prefer them.

  32. I am reminded of a line... by Anonymous Coward · · Score: 1

    ...from C.A.R. Hoare:

    The more I ponder the principles of language design, and the techniques that put them into practice, the more is my amazement at and admiration of ALGOL 60. Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors.

    -- C. A. R. Hoare, "Hints on Programming Language Design", 1974

    Bearing in mind that Pascal was, arguably, the only Algol successor to actually improve the language by tightening up its notion of "types" and removing a number of ambiguities, it, too, would arguably be an improvement on most of its successors - but its successors include Object Pascal, Modula2 and 3, Oberon, and Component Pascal, each of them clearly refining, simplifying, and uniting concepts into languages hardly larger or more complex than Pascal itself. The same just cannot be said of C. C++ is PL/I on steroids, designed primarily to keep compiler writers in lifelong employ supporting features that most programmers have never even heard of, let alone used. And Java and D-flat continue the slide by being syntactically-compatible with C but with entirely different semantics.

    1. Re:I am reminded of a line... by geminidomino · · Score: 1

      As far as quotes go, the only thing that one has over the bog-standard contents of C++ vs Java, PHP vs Python, and Ruby vs. EverythingElse, etc.. net flamewars is that

      A) It was made by "a big name."
      B) It's more eloquent

    2. Re:I am reminded of a line... by david_thornley · · Score: 1

      While ALGOL was a great achievement, it wasn't very usable as designed. There was no specific way to distinguish keywords from other names (the version I've got the most experience with quoted the keywords), there was no I/O whatsoever in the language, and some of the language concepts (like call-by-name) were screwy (just try writing a swap-values function).

      Most languages nowadays are ALGOL descendents. BASIC was a simplified version of FORTRAN when it came out, and most of the other early languages (COBOL, Lisp) never got many clear descendants. C is an ALGOL descendent, not having much relation to FORTRAN, COBOL, or Lisp. Both Pascal and C were a lot more practical languages than ALGOL.

      BTW, your opinion on Pascal vs. C is just an opinion, and you didn't provide supporting evidence, and Java is not syntactically compatible with C.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  33. Re:No, but Object Orientation is a fad that has fa by HiThere · · Score: 1

    fpc is Object Pascal, and not a proprietary language. Unfortunately, its also poorly documented.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  34. How Pascal Literally Saved My Life by Anonymous Coward · · Score: 0

    I learned Pascal on MSDOS in a computer science class in High School.
    I wasn't even suppose to be in the class because my math grades didn't meet
    the prerequisite requirements, but with some arm pulling I was able to
    convince the teacher that my interest in computers would compensate for
    my mathematical shortcomings.

    Pascal's effectiveness as a learning language is based simply
    on that fact that its syntax resembles the english human language.
    Very little is hidden from early developers by way of obsfucation of
    foundational principles.

    By way of this language, I then learned C, then C++.
    I went on to major in Mathematics. This happened
    because programming provided me the intellectual
    sandbox that made the universe of mathematics
    navigatable for me.

    Thank you Pascal & MS-DOS
    xoxoxo

    1. Re:How Pascal Literally Saved My Life by Anonymous Coward · · Score: 1

      So before Pascal, you were at imminent risk of death?

      Did majoring in math allow you to research a way to solve a complex mathematical equation that resulted in a doctor unlocking a new process to create a new drug that cured you of the once-terminal ailment you had?

      If not, perhaps you don't realize what "Literally" actually means.

    2. 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."
    3. Re:How Pascal Literally Saved My Life by Anonymous Coward · · Score: 0

      All I learned were pointers, the difference between "by value" and "by reference"... and why not to use GOTO.

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

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

  36. So I've forgotten entire programming languages! by Anonymous Coward · · Score: 0

    I've completely forgotten Pascal. I used it in school, and did a lot of Delphi stuff in the 1990s. But haven't touched it in well over a decade or more, and I was a Delphi holdout with legacy code. No, Pascal is not rated at all. It's been put out to pasture.

  37. "Slightly uncomfortable" is a pedagocial advantage by radarskiy · · Score: 1

    Pascal may lose as a language for in the field, but for reasons that make it useful in teaching programming. It has all the pieces you'd want in a language and you can both learn the concepts and make something with them, but in a way that is probably a pain. This leave the student open to the concept that languages have different strengths and to chose languages based on the relevance to the type of problem you are trying to solve.

    If you start with a language where it is easy to get a lot of the early work done, you tend to get stuck in a rut with it and want to use it for every problem.

  38. i++ by Anonymous Coward · · Score: 1

    > For instance, "++i" is a more immediately recognizable idiom than "i := i + 1".

    It's been "i++" in Pascal for many years.

    1. Re:i++ by Ronin+Developer · · Score: 1

      ++i is not the same as 1++.

      I have been working in Object Pascal, and C, and Obj-C and Java and numerous other languages for many years. I still prefer Object Pascal since I have been working with it since 1995. It's my preferred language for my own development. But, at work, I use what is most appropriate to meet our client's needs. Delphi has yet to be the correct choice. Our clients are either, PHP/Drupal, JAVA or C#/.net shops. Delphi doesn't have a place in web app development.

      There was an argument earlier about why do we need another language, another tool chain etc. Hmmm. I seem to recall that Pascal and Object Pascal were around long before most of today's "modern" languages. I think we have the right to ask the same question of those languages.

      The biggest argument I hear against PASCAL and Object Pascal is it's verboseness. While I would agree that all the begin/end blocks can seem annoying at times, nobody I know mistakes begin/end keywords for variables. And, single line statements don't need a begin/end block. I have heard arguments about the excessive use of white-space or the need for a semi-colon. Giving whitespace significance in code is an awful idea. Nothing could possible go wrong there could it?

      The primary reason the language has suffered is because of what transpired at Borland/Inprise/Embarcadero after Delphi 7 was released. Quality suffered at the expense of making profit and developers migrated to cheaper or free solutions. I can't say I necessarily blame them - the product IS expensive. The migration of developers away resulted in a significant downsizing of the tool and component vendor community as well. At the same time, OSS became very popular. Still, Delphi continues to evolve. The tool permits rapid development of Windows/Mac and, on the mobile side, iOS/Android is a true cross-platform manner. While some might bitch about the FireMonkey framework, it does get the job done for cross-platform UXs. There will always be things that it can't readily do such as accessing certain frameworks out of the box. But, many frameworks have been translated. You can still access Java code on Android once you run the bridging tool and then adding the bridge units. Or, you could still write native iOS apps. But, if I am going that route, I would use the native tool chain rather than translate the headers (that's the vendor's job). That's just me.

      I don't know if Delphi will survive. But, to speak against it without knowing what it can do is ignorant. Ignoring other languages and tools just because is just as ignorant as well.

    2. Re:i++ by AntiSol · · Score: 1

      Agreed.

      Object Pascal, more specifically Delphi, is one of the better languages I've ever worked with. I wrote Delphi code professionally for about 2 and a half years using Delphi 7, and I've written a lot more Object Pascal in my spare time, both on Delphi and Lazarus. The only reason I stopped writing delphi for a living was that I started working on more web-based applications and Delphi doesn't shine in quite the same way if you're not doing a desktop GUI application. You can use it to write console apps and network servers and whatever you want, but it's real strength is in developing a GUI app for the desktop.

      Yes, the syntax is more verbose than something like C, but it's FAR less ambiguous and offers many many less 'gotchas' - it's much much easier to both read and write. A great example is the existence in c of both '++i' and 'i++' - something I found fairly unintuitive and unnecessary at first.

      Yeah, C is probably better and maybe even more readable if you're writing a device driver. But how often do you write device drivers? In my experience it's roughtly 100% applications and 0% drivers. I doubt there's anybody out there who has 100% drivers and 0% applications. I think that Pascal is a really good 'midle ground' langauge which gives you helpers for the most common things (e.g a string datatype) but still gives you lots of power - it's possible to write a device driver or even an operating system in Pascal (google it - there are a couple). The Delphi compiler is also pretty damn clever and it does a really good job of building executables that run fast.

      I have often lamented the fact that C and other languages lack no "assignment" operator like object pascal does. In Delphi, you never ever find yourself writing:

      if (a=1) { printf('oops, i just did assignment rather than comparison'); }

      because the assignment operator is :=, not a simple equals sign. In my perfect world, langauges like C would use a colon for assignment and a single equals sign for equality:

      int a: 42;
      if (a=42) { //true }

      These days, being a linux-only person, I don't use Delphi any more. But whenever I want to do something quickly with a GUI, Free Pascal and Lazarus are always a very attractive choice. The biggest problem with Lazarus is that it doesn't have the same huge ecosystem of custom controls Delphi has. It's a pity they couldn't make it fully compatible with delphi code (they have tried, porting isn't all that hard, it's just time-consuming).

      If you want to quickly throw together an application (ranging from 'simple' to 'massive') with a GUI interface which compiles into apps that run fast on just about any plaftorm out there and don't require a framework to run on (java, .net), then I can't make a better recommendation than Lazarus and Free Pascal. If you're happy with only a few platforms and the cost, Delphi will give you a slightly richer environment.

      Is Pascal underrated? Yes, very much so.

      P.S: Delphi is your granddaddy. I've heard that the original project name at borland was something like "VBK" - "Visual Basic Killer". They were talking about Visual Basic 1.0. Delphi has been around for a long time.

      P.P.S: You are using "liberated" and/or evolved Delphi ideas if you're using .net. The chief .net guy was the chief Borland guy who did a lot of the delphi work before Microsoft offered him his own yacht. Yet somehow .net still wasn't as good as Delphi 7.

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

  40. Pascal is overrated by Anonymous Coward · · Score: 0

    Pascal is overrated, actually.

    Even as a teaching tool, Pascal is overrated.

    1. Re:Pascal is overrated by Motard · · Score: 1

      Pascal is overrated, actually.

      Even as a teaching tool, Pascal is overrated.

      What an astounding amount of insight you've shown. Why, reading your logic, I wonder how I ever could've been fooled.

  41. Hints from an over-the-hill programmer by Anonymous Coward · · Score: 0

    Jerry, is that you?

    Say, I'm really sorry about taking that job at Standford and leaving you to pick up my work.
    I tried to get management to hire somebody to replace me, but you know how budgets are.

    Taking this job at Stanford was a really good career move and something I've wanted my whole life.
    I hope you find it in your heart to forgive me and move on. I'd hate to see this experience turn you
    into a bitter person.

    I hope you can find it in your heart to forgive me and move on with your life,

    -mit4life

  42. Re:"Slightly uncomfortable" is a pedagocial advant by Anonymous Coward · · Score: 0

    I agree. As a teaching language it's way better than Java or C#. And when they've finished the basics and been slapped down by the compiler often enough that they're actually paying attention to the code *before* hitting compile, then it's time to move on to the advanced subjects with a more forgiving compiler and language.

    I would argue that teaching students just one language is a disservice to students in any case. And if you have to let them run through several, then by all means start with Pascal and then move on to more difficult stuff.

  43. 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.
  44. A teaching language by Anonymous Coward · · Score: 0

    Pascal was invented by Niklaus Wirth as a teaching tool for computer programming and computer science. He never intended it to be a production language. He invented Modula for that. FWIW, Wirth was the PhD advisor for my good friend Bruce Ravenel who later was one of the key architects for the Intel x86 processor family.

    1. Re:A teaching language by Motard · · Score: 1

      But then came the USCF P-System and Turbo Pascal, And nobody's asking about Modula.

  45. Push Start to rich by tepples · · Score: 1

    For the last 25 years, we've just called it Fortran.

    But how long have you been able to PUSH START TO RICH with Fortran?

  46. Hints from an over-the-hill programmer by Anonymous Coward · · Score: 0

    I agree with you and your mother. If a programmer can't explain his code, my red flags go off all over the place

  47. 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
    1. Re:Pascal? ... I vaguely remeber something ... by vanners · · Score: 1

      Are you dis'ing teachers? What is wrong with being a teacher? You are employable because of them, so don't think that being a teacher is any less worthy than being a programmer.

      BTW I write enterprise level applications for one of the world leading engineering companies - in Delphi. I out-code the companies C# programmers every day of the week, so don't tell me that Delphi isn't up for it.

      Oh, also BTW: Delphi programmers still look down their noses at VB programmers in much the same way that C programmers look down their noses at Delphi programmers (and practically everyone else too). It's an entrenched pecking order based on the apparent power of the language. Don't feel bad about it, I don't. ;)

  48. Pascal? by Anonymous Coward · · Score: 0

    Do people still use Pascal programming language? Just asking because I haven't seen much about Pascal or Delphi. I remember using some programs that were made in Borland Delphi in the late 1990s. The IDE is simple. Not many jobs need a programmer with a background in Pascal or Delphi.

  49. 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.
    1. Re:Pascal is awesome, but... by Motard · · Score: 1

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

      These days? Pascal predated all of 'these days'. What was the point of all of those other languages?

    2. Re:Pascal is awesome, but... by gatkinso · · Score: 1

      True - the march of science is never ending - and current language design owes much to Pascal.

      I guess it would be more precise to ask what is the point of resurrecting an old language that doesn't extend current languages capabilities? One thing about Pascal.... that stuff compiles FAST!

      True it would let me recompile all of my undergrad work - all of which I would have to scan/OCR or fat finger in as it is all hard copy. Not sure how the world of CS advanced without access to that corpus of cutting edge work.

      --
      I am very small, utmostly microscopic.
  50. What a silly question by Anonymous Coward · · Score: 0

    The real question is not whether Pascal is underrated but whether it is really a live language at all. Pascal is the Latin of programming languages and has been for at least the last 20 years. Just because a very few people still use it doesn't mean it has any life left in it.

  51. Delphi must evolve by Anonymous Coward · · Score: 0

    I am a Delphi developer since 1996 and today Object Pascal is a PITA. I hate to work to make a dumb compiler happy. Here is a list of my pet peeves:

    1. Object Pascal don't have multi-line strings and it is difficult to write SQL using lots of string concatenation.
    [code]
    SQL := 'select * from MyTable'#13 +
                            'where A = B'#13 +
                            'inner join X = Y';
    [/code]

    2. Only now, just in XE7, I finally can do array concatenation: "[code] a := [1,2,3] + [4,5,6]; [/code]. Too little, too late.

    3. I think that I live to alloc and free memory.
    [code]
    S := TStringList;
    try ...blablabla...
    finally
        S.Free; // for ever and ever.
    end;
    [/code]

    4. 95% of my code is just this: memory allocation and loops. Always the loops. I can write [1,2,3,4,5].map {|x| x + 100 } in Ruby. One line, no bugs and I am happy. In Pascal, I need to declare a variable to use in the for-loop, and I need to initialize a temporary variable to sum the values.

    5. I just can't buy a new computer. If I buy a new computer, or if I need to format my computer, it will take days or weeks to reinstall all the components, plugins and extensions. It was hard to reconfigure Delphi, make the right colors for the syntax highlighting, etc. About the colors, Delphi IDE Theme Editor helps nowadays.

    6. It's hard to program for the web in Delphi. By the way, if I try to buy Delphi online, I need to send a FAX to them. I think that to be online is hard to Delphi. And I know about mORMot (a breath of fresh air) and Unigui. But we need better syntax.

    7. Today, except Delphi, all compilers can infere the type of a variable. Dumb, dumb compiler. I think that Anders Hejlsberg don't put comments in the compiler sorce code, and then he left Borland/Inprise to work in Microsoft. Because this, Chuck and Danny can't do a good work in the compiler. And when they left too, goodbye language enhancements.

    1. Re:Delphi must evolve by Motard · · Score: 1

      I can write [1,2,3,4,5].map {|x| x + 100 } in Ruby.

      I think I've just written off Ruby.

  52. Move On by Anonymous Coward · · Score: 0

    Even Nicholas Wirth moved on to Modula2 and Oberon2, maybe you should too! ;)

    1. Re:Move On by Motard · · Score: 1

      Yes, because those are so popular now.

  53. What's New in the Object Pascal Language .. by lippydude · · Score: 1

    "Power and simplicity, expressiveness and readability, great for learning and for professional development alike, these are some of the traits of today's Object Pascal."

    "A tool for all trades, with compilers and development tools, embracing the mobile era, A language ready for the future, but with solid roots in the past.", (Marco Cantù, 2014) link

  54. There are three kinds of people: by Anonymous Coward · · Score: 0

    those who can count, and those who cannot...

  55. Semantics and linguistics? by Anonymous Coward · · Score: 0

    I was never very fond of the syntax and semantics of any of the C-style dialects, even though that's how I got into programming. Object Pascal, on the other hand, immediately resonated with my brain's built-in parsing machinery. I think to a large extent, this is also linked to literacy and linguistics. You can read pascal code like you read a book, and it flows naturally and it makes sense without a lot of extra effort. Additionally, it conforms to a lot of the notation taught in standard algebra courses, with the equal sign "=" meaning "is equal to" and with ":=" meaning "assignment". It uses sets and set operators and it uses terms such as "records" instead of "structs" (why on earth would you introduce a word such as "struct" when there exists perfectly valid terminology in the dictionary already?) There are other examples, such as the keyword "pragma", which never made any sense to me. It seems that whoever invented C syntax put a lot of effort into making it distinct from ordinary language. And why is the multiplication sign used to denote pointers? Why the convention with a small initial letter? Why the dual underscores? There's just so many things that don't make any sense at all.

    1. Re:Semantics and linguistics? by Anonymous Coward · · Score: 0

      other things deficient with C:
      having to use pointers in the parameter list when using more than a certain number of parameters, but having to use dereferences in the prototype, but then that rule also changes when the prototypes of the functions are in a header file. Fun eh?

      no built in string type. damn near impossible to reliably and consistently prevent buffer overflows because of this.

      No built in array type.

      Overcomplicated compilers due to shortsightedness in the original design of the syntax of the language. Since it goes by the philosophy "just do everything with pointers" (see above), assumptions can't be made which in turn makes the compiler uncomplicated and FAST. Instead you have to spend 20-30 years kludging together a buggy and ultimately hopeless compiler called GCC. Then after that becomes obviously a lost cause, have the original language designers give up and turn their attention to a language which borrows many of the key features of Pascal, and call it Go. LOL!!!

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

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

      VB pretty well was Pascal in one incarnation.

    3. Re:Delphi is dead, just accept it. by gatkinso · · Score: 1

      Not much to think about - at one point the Borland tools were head and shoulders better than Microsoft's. Then MS came along and in a classic and well documented debacle, poached all of Borland's talent, copied their tools... ...and gave the world the autistic encephalitic mutant that is MFC.

      --
      I am very small, utmostly microscopic.
    4. Re:Delphi is dead, just accept it. by Anonymous Coward · · Score: 0

      The writing was on the wall when Hejlsberg decided to work on C# and Borland sold its programming tools division. That told everybody what the commitment was going to be going forward - very little.

      Yeah, C is essentially unchanged since about 1990, but that's the exception to the rule.

    5. Re:Delphi is dead, just accept it. by Anonymous Coward · · Score: 1

      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/???

      So I guess Lazarus is proprietary and locked to Windows.......oh wait, its completely open source and crossplatform (linux/windows/mac/freebsd/amiga/etc)

      What could delphi possibly every offer that in not in not available in C#???

      Speed, compiles to native code across many platforms and architectures, not locked to Microsoft (ironically considering your false criticism), Free in both senses of the word, compiles blazingly fast, runs blazingly fast, allows you to actually develop GUI applications that WORK with minimal effort (in contrast to GTK, cocoa, etc which you will have to read 10 phone books to figure out how to just to even a basic app, then they will change the framework out from underneath you LOL).
      Let's see what else, oh yeah, actual readable an maintainable code.

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

      LOL when you say shit like that I know you havent even coded in Java. Have fun in class dependency hell and endless frustration fixing broken runtime environments.

      Visual Studio is freaking FREE, yes, FREE, and supported by an actual company like Microsoft.
      Noope you have to pay money and its CLOSED SOURCE. Not free in ANY sense of the word.

    6. Re:Delphi is dead, just accept it. by david_thornley · · Score: 1

      Actually, the base versions of Visual Studio are free, and if you're doing hobby work they may work well enough. Anything useful for serious work has a serious price tag. I'm also surprised at C# being listed as a cross-platform language. It might develop as such, but we'll have to see. It's been mostly Microsoft-specific for most of its life.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    7. Re:Delphi is dead, just accept it. by vanners · · Score: 1

      In the immortal words of Weird Al Yankovic: "Everything you know is wrong...". Yeah, some of it was right in the Noughties, but we are now half a decade from then and Delphi has moved on. You should too.

      While we are still waiting on Linux to be reintroduced (Kylix really isn't the solution you're looking for) you can get to Linux through Lazarus, but apart from that we target all the still viable platforms except Windows RT (though I think that is stretching "viable" to its limits). Perhaps if MS had allowed more than .Net apps to work on it (like they did with the ugly but-it-will-still-run-MS-Office hack) there would be sufficient apps around for it to be relevant. Hmmm giving Delphi (et al.) that platform to target apps for may have saved RT - ironic!

  57. A couple of things missing by Anonymous Coward · · Score: 0

    1. Inherit from struct/record.
    2. Multiple inheritance.
    3. Templates.
    4. No recent direct access object. There is Tobject but mostly deprecated. Class uses indirect access which can slow down computer programs. (Pointer chasing problem).
    5. No macro language.

    These short comings hurts it's software engineering design capabilities and limit performance. It's compile speed is unmatched though, for short little programs/demos it's great. For bigger software development it's probably lacking too much unfortunately.

    1. 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.
  58. 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!

    1. Re:Pascal vs Wirth's newer languages by Anonymous Coward · · Score: 0

      I got into Oberon-2 a few years back and really love it. Oberon-7, while I haven't used it, appears to be even more concise than Oberon-2. I do like the OO features of Oberon-2, like type-bound procedures (methods), which he seems to have abandoned in Oberon-7.

  59. Re:"Slightly uncomfortable" is a pedagocial advant by gatkinso · · Score: 1

    It is easy as piss to read - which makes it great for beginners and for algorithm prototyping (that you can actually compile and run).

    --
    I am very small, utmostly microscopic.
  60. Maybe its not Pascal its pascal people by EmperorOfCanada · · Score: 1

    Pascal is one of those languages like Powerbuilder and even Java that people learn the one language and then drag it through the decades kicking and screaming. At least with Java the language is being kept somewhat fresh but I don't think there is much I respect less in the computer world than a one language programmer.

    1. Re:Maybe its not Pascal its pascal people by vanners · · Score: 1

      Yeah, I am a Pascal (Delphi) person. I admit it. I have tried other languages but I still prefer Delphi. I like Python, but don't write enough trivial code to really make use of it. There is no way I would use it on a 100,000+ line application.

      I was trained in C# and can't for the life of me work out why I would want to use it over Delphi. I am over 3x more productive in Delphi than I am in C#, and I have proven to be more productive than a team of 3 C# programmers where I work.

      As an application programmer I prefer the running speed of the applications I write over the slowness of Java and interpreted languages. The last time I tried C++ it felt too much like C with objects hacked into it, and I really don't like how slow C is to develop in.

      I am happy that others like these other languages, but I just can't find a compelling reason to put Delphi down for them.

  61. Maybe under-inflated? by Celarent+Darii · · Score: 1

    Well Pascal is a pretty good measure of pressure, one Newton per square meter is a nice metric number. Yet for daily life we always use kilo- and hecto-Pascals, so perhaps it is a bit under-rated.

    Maybe that is what happened to the Patriots' footballs?

    1. Re:Maybe under-inflated? by Anonymous Coward · · Score: 0

      Yeah, and has nothing to do with the Mathematician Blaise Pascal. What a load of nonsense you write.

      http://de.wikipedia.org/wiki/Blaise_Pascal#Leben_und_Schaffen

      He is a giant and you stand on his shoulders. Unknowingly, it should be noted.

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

  63. Nim is the greatest! by Anonymous Coward · · Score: 0

    Nim (formerly known as Nimrod) is greatest and most under-rated programming language ever!

    --libman

  64. Apparently you didn't use it enough... by Anonymous Coward · · Score: 0

    -- and I really don't remember Pascal ever generating byte code, nor was there a Pascal virtual machine

    You seem blissfully unaware of p-code and the various p-code 'virtual machines' that existed as far back as the mid 70s. To quote:

    • Although the concept was first implemented circa 1966 (as O-code for BCPL and P - a code for the Euler Language), the term p-code first appeared in the early 1970s. Two early compilers generating p-code were the Pascal-P compiler in 1973, by Nori, Ammann, Jensen, Hageli, and Jacobi, and the Pascal-S compiler in 1975, by Niklaus Wirth.
    • Programs that have been translated to p-code are interpreted by a software program that emulates the behavior of the hypothetical CPU. If there is sufficient commercial interest, a hardware implementation of the CPU specification may be built (e.g., the Pascal MicroEngine or a version of the Java processor).

    -- Plus Pascal supports pointers

    Hmmm, let's see...

    In Pascal, you create a reference to an object via a declaration [myObject: ^Object] then use the new operation to create a new object [new(myObject)].
    In java, you create a reference to an object via a declaration [Object myObject] then use the new operation to create a new object [myObject = new Object()].

    Nope, nothing similar there.

    In reality, most languages 'supports pointers,' it's just how much the programmer has to be directly involved in the process that differs; from C's &-* notation, to Pascal's ^ and var parameters, to Java's reference-by-default for non-trivial types, if you have dynamic allocation you must have some form of pointer to reference the allocated memory.

    -- doers not have garbage collection

    I'll have to give you this one. Back in the days of Pascal, slow processors and limited RAM meant you didn't have the luxury of letting a program fill up available RAM and then take a time out to clean up the allocation tables. Garbage collection did exist, just at the operating system level.

    Now processors are blazingly fast and RAM is cheap and plentiful, so languages like Java can incorporate a garbage collection system that at least avoids the pitfalls of manually managing pointers. God forbid that your JVM ever actually has to invoke garbage collection, since if it does you can kiss your performance good bye.

    -- and is very strongly typed

    You keep using that word, I do not think it means what you think it means...

    To quote about Strongly Typed Languages:

    • Java, Pascal, Ada and C require all variables to have a declared type, and support the use of explicit casts of arithmetic values to other arithmetic types. Java, C#, Ada and Pascal are sometimes said to be more strongly typed than C, a claim that is probably based on the fact that C supports more kinds of implicit conversions, and C also allows pointer values to be explicitly cast while Java and Pascal do not. Java itself may be considered more strongly typed than Pascal as manners of evading the static type system in Java are controlled by the Java Virtual Machine's type system. C# is similar to Java in that respect, though it allows disabling dynamic type checking by explicitly putting code segments in an "unsafe context". Pascal's type system has been described as "too strong", because the size of an array or string is part of its type, making some programming tasks very difficult.

    Apart from external vs. internal garbage collection (a product of the times when Pascal and Java were created), your extensive use of Pascal back in the day didn't help you notice just how similar these two languages are. With the addition of objects in Object Pascal, they are now even more similar.

    Back in my day when Java was first created, I used to comment on how much Java appeared to be Ada but with C/C++ syntax.

    1. Re:Apparently you didn't use it enough... by Anonymous Coward · · Score: 0

      Sorry grandpa, Pascal does support all pointer operations you have in C, in a 1 to 1 mapping, and does so since 20 years (or even more).
      You can manually alloc and free memory (GetMem/FreeMem), cast integers to memory adresses, and do any kind of low level pointer manipulation you want.
      This is what people usually mean when they say a language supports pointers. Sorry, but just having references to objects its not the same.

      "the size of an array or string is part of its type", again, something that was only part of the original language almost 40 years ago. The fact that manual memory allocation is support already means that any kind of C style string/arrays can be done, but not only that, the language supports dynamic size arrays and strings.
      In short, just refrain yourself from posting wrong information if you don't know what you are talking about.
      Go take your alzheimer medicine, maybe you forgot it today.

  65. Oracle PL/SQL based on PASCAL by Anonymous Coward · · Score: 0

    I actually like PASCAL. May not be as cool as the latest fad languages like ruby and java and scala, but it is good. Oracle even used it for the basis to add programming logic to SQL for stored procedures triggers and anonymous blocks. Oracle even used it for their RAD develipment tool called oracle forms. Not sure if anymone uses that anymore.

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

  67. Pascal was a teaching language by paai · · Score: 0

    It seems that most people have forgotten that one of the goals of Pascal was the teaching of programming and algoritms. As far as I am concerned, it did a good job, although later I learnt C and preferred it as a tool. And now I am old and lazy and just use a combination of Bash and awk for quick and dirty stuff and PHP for more complicated things.

    Paai

  68. Yep by Anonymous Coward · · Score: 0

    It is by far the most underrated language of all!

  69. Missing my Pascal dialect by Anonymous Coward · · Score: 0

    This month is the 40 year anniversary of COMAL

  70. Convergent evolution? by jandersen · · Score: 1

    Personally, I'm not one of the critics of Pascal; it was my first, real programming language, and I enjoyed it a lot.

    But over the years, although languages have been through a sort of Cambrian explosion, aren't beginning to see that they are converging towards the same end goal? Nearly all major language families now have things like object orientation, functional programming features etc, and I wonder if we are not going to end up one day with 'just one' (ie: a few) language again? One of the effects you can already see is that it is quite easy to move from one language to another - certainly within the C family (C, C++, Java, Javascript, ...) and even from one family to another.

  71. people compare IDEs not languages by Jacek+Poplawski · · Score: 1

    When most people hear "Pascal" what they really have in their minds is "Turbo Pascal" by Borland. So they compare very old Borland IDE with Visual Studio or Eclipse.

  72. What is Pascal ? by GuB-42 · · Score: 1

    You have the original Pascal, Delphi, Object Pascal, etc...
    Even if all these language are based on the same syntax, they are all different. It is like saying that ObjectiveC and C++ are C, we can take it even funther and say that Java is C because they share the same operators and have similar syntaxes.

    begin/end vs braces and := vs = doesn't matter much in the choice of language, that's just syntaxic sugar.

  73. Code generation by FithisUX · · Score: 1

    FPC (this is what I have the money to buy) is a good target for code generation. FPC people need a nimrod for Pascal that extends (and not substitutes) the syntax of FPC so that valid pascal is valid pascal-nimrod. In this language they could add functional features. FPC as it is has nothing more to offer to programming. Even if I find C a low level language, I believe it is very good. Nimrod guys seem to have the same opinion.

  74. 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.
  75. Every language by msobkow · · Score: 1

    Every language is both over-rated and under-rated by their fans and detractors respectively.

    The key thing a professional programmer learns is to use the right tool for the job at hand. That means being fluent in multiple languages, databases, frameworks, and toolkits. While I have been focused exclusively on Java for the past several years, that's because it buys me the cross platform portability that I want, not because it's "better" than C/C++, C#, or even Pascal.

    I'd be quite content to do some more C++ work at some point in the future. C# was kind of fun, too.

    But PHP I hate with a passion. I'd far rather write servlets with Java than dive into that unholy abortion of untyped interpretation.

    --
    I do not fail; I succeed at finding out what does not work.
  76. BINGO by Anonymous Coward · · Score: 0

    Newer is not necessarily better.

    In many ways, Pascal is doing it the Right Way and many younger languages actually do Very Stupid Things. Like being typeless oder using void* patterns.

    Many new things are a retardation and that holds true in multiple ways. Like "lets have promiscuous sex" is a retardation which nutures horrible STDs like AIDS.

  77. Pascal And Algol as OS languages by Anonymous Coward · · Score: 0

    Pascal and Algol were/are used by the MPE and Burroughs operating systems.

    Both were and are highly popular with their users.

    Unix was the el-cheapo, easy-to-hack replacement. Many developments in the computer business are about making something el-cheapo and el-hackable. c.f. PHP and Ping Of Death.

    We should really question the Church of Unix, as they have to a large degree made this Cyber War Domain happen.

  78. MPE by Anonymous Coward · · Score: 0

    ...was done in a Pascal-like language. HP then killed it off in order to please Oracle. It refused to die for a long time because of very loyal user base.

    All the MBA fun.

  79. Delphi's excellent & why... apk by Anonymous Coward · · Score: 0

    Delphi took me from C/C++ & VB (my "then favorites") - nothing touched Delphi to get C++ (heck, better, proof's below) power & speed + abilities (except for multiple inheritance model)... & to build it as fast/easy as VB too?? You couldn't TOUCH that combination!

    A test resultset from (from a competing language's "trade rag", of all places) "VBPJ" (Visual Basic Programmer's Journal) issue Sept./Oct. 1997 "Inside the VB5 Compiler" saw Borland Delphi LITERALLY "knock-the-chocolate" outta MS' offerings, overall, in performance...

    STRING SUITE:

    Delphi = .275ms
    MSVC++ = .500ms
    MSVB = 4.091ms

    ---

    MATH SUITE:

    Delphi = 1.523ms
    MSVC++ = 2.890ms
    MSVB = 7.071ms

    ---

    API GRAPHICS METHODS SUITE:

    Delphi = .269ms
    MSVC++ = .293ms
    MSVB = 292

    ---

    TEXTBOX FORM LOADING SUITE:

    MSVC++ = .012ms
    Delphi = .069ms
    MSVB = .072ms

    ---

    ACTIVE X FORM LOADS:

    MSVB = .114ms
    Delphi = .495ms
    MSVC++ = .778ms

    ---

    NATIVE TO LANGUAGE GRAPHICS METHODS SUITE:

    MSVC++ = .293ms
    MSVB = .455ms
    Delphi = .503ms

    ---

    In the 6 tests given, Delphi won the majority (overwhelmingly in fact, in what ALL PROGRAMS DO, math & strings work + graphics strong showing #1, & only 1 "outright loss" (2 second places))...

    * "Argue with the numbers..."

    APK

    P.S.=> I used it to create this recently:

    APK Hosts File Engine 9.0++ SR-1 32/64-bit:

    http://start64.com/index.php?option=com_content&view=article&id=5851:apk-hosts-file-engine-64bit-version&catid=26:64bit-security-software&Itemid=74

    It's 100% free, no strings attached, & The BEST in the security antimalware & antispyware business currently per a very recent test of antivirus/antispyware/antimalware efficacy http://www.av-test.org/en/news/news-single-view/17-software-packages-in-a-repair-performance-test-after-malware-attacks/ per that VERY recent test's results, also host & RECOMMEND my program for hosts -> http://hosts-file.net/?s=Download

    If THAT tells you anything as to what you can produce using Delphi/Object-Pascal!

    ... apk

  80. Hello old friend.. by Anonymous Coward · · Score: 0

    I've been a dev now for nearly 20 years. I had 'Classical' Pascal taught in High School. I've touched pascal a few times briefly since back in the 90's and not much enticed me to stay. C, C++, Asm, LISP, and Ada were where it was at for the places I worked.

    Then a year ago I got a legacy project at work to manage and extend. Hello Delphi and wow.. Object Pascal. Steep learning curve. I've since grown fond of it. Whilst my main bread and butter is C/C++ and Java seems to be dwindling (Hurrrah!) as less client projects seem interested post oracle .. this is pleasant.

    About six months ago, I started giving Lazarus and FPC a hiding in my spare time. I'm really enjoying it. Once I stopped programming C++ using Object Pascal and looked to use the features of the language as they were intended (interfaces, properties, Actions (!!!), .. $etc), I'm really digging how I can solve problems easily and quickly without the language getting in the way. It's easy to think. I can't say that for Java or C# where t feels as though I'm constantly boxing with the language design for even simple things in other languages.

    People whinge at the verbosity .. I think this is not worth worrying about and I don't see it any more and frankly find it more pleasurable to read. After a while, you won't notice I suspect. I don't.

    This may seem odd, but I was a die-hard ASM, C and C++ (..or DIE!) person. So, this is a pleasant change.

    Perhaps others will lose the trolling, spend some time learning the features of the language and spend six months of hobby time with it. It's pretty darned good.

    My 5c worth. :)

  81. DoD work in the 80s used TP by Anonymous Coward · · Score: 0

    Mostly for PCs embedded in things like AAVs, M60 and M1 tanks, HMMWVs, associated weapons systems, etc.

    Used TP to make 'disposable' data acquisition systems using several pallets of surplussed IBM XTs. Nothing in C, all in TP and inline assembly.

    Attempted to use various DOS C compilers, but emitted object code was too unreliable to run all day at the range or test track.

    These day, its C and Python, or its not gonna get done...

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

  83. why it failed.... by Anonymous Coward · · Score: 0

    Because if Pascal were to have taken of instead of C, then system and application software wouldn't only have about 1/1000 of the buffer overruns, integer overflows, and other security critical bugs that are a result of the C programming language. And the NSA just couldn't have that, now could it? So C it was, for the masses.....

  84. 2 things I miss about Pascal by Tablizer · · Score: 1

    1. Nested functions: avoids verbose parameter passing for repeating narrow-purpose sub-routines.

    2. Type declarations go after the variable name, not before. This is a more natural order than C-style in my opinion.

  85. Block Styles [Re:Modula-3 FTW!] by Tablizer · · Score: 1

    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.

    It also improves readability to document which kind of block is ending.

    (VB is indeed inconsistent, but that's a problem with the language, not the End-X approach in general.)

    1. 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.
    2. Re:Block Styles [Re:Modula-3 FTW!] by Tablizer · · Score: 1

      You are correct that one can use comments for such, but if it's part of the language, then first, It's always there rather than relying on the good-will of team coders; and second, the parser can use that info to make error messages a bit more useful (typically a message closer to the actual problem block).

  86. Long Live Pascal by Anonymous Coward · · Score: 0

    Pascal is the best language there is
    And Delphi is the best development environment ever created
    And that is all I have to say about pascal
    FG

  87. FWIW Delphi vs .NET by BubbaJonBoy · · Score: 1

    My day job is as a Delphi programmer (with some C#). My first language was C on an old Zilog Z80 Unix server back when AT&T gave the source code away. Learned Pascal on both Unix and CP/M. Later used C and C++ on many machine control projects using PC's. Discovered Delphi when it was included as an add-on for controlling ESI trimming lasers. Used it in the entire production line when we were developing a line of solid state pressure transducers. Delphi was used to characterize the sensor strain gauges by temperature cycling and the data used to trim the sensors to spec with the ESI laser all data being tracked using barcodes. I would not have attempted the job using C/C++ at that time when the Watcom and Zortech compilers reigned.
    I only bring up ancient history to point out that I've coded in a variety of environments and I still find Pascal in all of its variations to be a very capable tool. Not to say that it is the only tool or the best tool - it is one of many great tools in a good developers war chest.

  88. I spent years working with Delphi; I agree! by Paul+Fernhout · · Score: 1

    Delphi had many great aspect, especially compile time. My wife and I put about six person years into a project together, much of the time working in Delphi. I knew (and even had taught at the college level C/C++), but she knew mostly Pascal. We did some work in C++, but got hit by the compile times (this was back working with PCs starting around 1995) as well as all the other issues writing in C++. Then we did some in Digitalk's Smalltalk/V, but got worried about lack of support for the proprietary version we were using (we could not have guessed that later is became a free-as-in-beer Smalltalk Express). Wish we had kept to Smalltalk though, as then we could have moved to Squeak a couple years later, and my wife and I really liked Smalltalk. But Smalltalk back then was also slow and had some other limits. So we moved to Delphi (the earliest versions, never moving to later versions beyond 2.0).

    Here is GPL'd source for of our garden simulator in Delphi:
    http://www.kurtz-fernhout.com/...

    GPL'd Delphi source and translations for two other applications (PlantStudio and StoryHarp software) is here:
    https://github.com/pdfernhout/...
    https://github.com/pdfernhout/...

    In retrospect, I think maybe we could have made the C++ approach also work better by writing unit tests for parts of the code and compiling only them in small projects. And I think I'd have much rather have the code in C++ right now than Delphi as far as long-term portability, including now translating to asm.js for web browser deployment.

    But, for good or bad, I made the decision a decade ago to port it, and wrote code to parse Delphi and spit out Java and Python (doing a lot of the heavy lifting, but you need to futz with the GUI stuff and some other changes). I only got the StoryHarp app working (in a limtied way) in Java, plus I got the guts of the PlantStudio drawing algorithm in Python for a test for the OLPC.

    I'm moving more into JavaScript now, for easy deployment in web browsers, so I might modify those tools to do JavaScript now? But not sure it was worth it, given the rise of Lazarus and the fact that, generally, you learn so much from writing an application that if you were to build it again, you'd do it differently.

    But, in any case, Delphi was overall a pleasure to work in as far as a compiled language. Speedy. Fast turn around. Good debugging (although some library bugs with memory leaks were frustrating in the early versions -- we used memmond and its memory leak patches, plus other patches I created and found for the Delphi VCL).

    When Squeak first came out, I played with generating Delphi pascal for its VM to use for Windows, but after the Windows port came out, lost some interest in that, and also got sidelines by looking into Squeak -> Newton porting. In retrospect, I wish I had finished the Squeak to Delphi port and code generation tooling, and never bothered working towards a Newton Port as the Newton OS did not want to support any more C++ than small routines, the OS's event loop conflicted with the Squeak polling architecture, Newtons had too little RAM, and of course the Newton was to be abandoned. Meanwhile, Delphi (especially via Lazarus) is still going strong!

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  89. Are you kidding me!?! by Anonymous Coward · · Score: 0

    Pascal will /never/ succeed at the prices Delphi is going for now. Up to £4000 /per year/.

    That's a great way to kill off a language.

  90. Verbose APL by zooblethorpe · · Score: 1

    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.

    Semi-serious question:

    What happens if you use the --verbose command-line option with an APL program?

    Granted, the option affects the output at runtime, while APL is the language the program is coded in -- I'm not that confused. But it got me to wondering. :)

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."
  91. Someone's still using it? by whitroth · · Score: 1

    I haven't heard of anyone using it in, oh, 20 years or so.

    And yes, in '89-'90, I used it (along with C) at work.

    Why would you *want* to use it? I mean, for one thing, it was invented as a teaching language, and didn't even have i/o (really!) - that was bolted on afterwards. For another, didn't it become java (I mean, can you say writeln, boys and grrls?)?

                        mark

  92. Re:No, but Object Orientation is a fad that has fa by Anonymous Coward · · Score: 0

    Use the Delphi documentation for FPC and Lazarus. It is a clone.

  93. Re: Readibility by Anonymous Coward · · Score: 0

    Code is as readable as you write it.

    I once wrote a tool that took Pascal and converted it to Borland C and kept the formatting.

  94. Partisanship aside... by vanners · · Score: 1

    I think we need to focus on the question at hand.

    Most developers have a language preference. Whatever language you are most experienced in is usually the one you develop in the fastest (with a few rare exceptions). You can also expect to be more accustomed to the syntax, libraries etc. of your preferred language. The question wasn't "what language do you prefer?" it was "Is Pascal underrated?".

    Given the comments that went along with the question I think any rational person, weighing Pascal's current standing against the other major languages would have to consider that it is. It still may not prompt you to use the language, but it might prompt a few to have a look at what is new.

    I think the motive behind this post is to get all the ex-Delphi devs to go and have another look. If you have moved on to "more modern" languages it may surprise you to find that there are few if any features missing in the latest version. If you are in academics it may prompt you to use Delphi/Pascal as a teaching tool again (it was the language of choice for a long time because of its intuitive and accessible structure). If you are a sole programmer wanting to target an app to multiple platforms it is definitely worth looking at. Yes, there is Java, however Delphi XE7 is the first language that I know of that deals neatly with the UI differences between platforms, and even between form factors (see https://www.youtube.com/watch?...) let me know if another IDE has anything like this? (seriously, let me know!).

    One other thing to consider: C is (according to some admittedly debatable language rating websites) the #1 most popular programming language, yet even C11 hasn't evolved as far as Pascal. Delphi is called, old, out-dated, past its prime. Its death has been called so many times Resurrection Man ( http://en.wikipedia.org/wiki/R... ) is amazed at its survival. Yet it has practically every feature found in modern languages and its popularity is increasing (if you believe Embarcadero).

    Is it underrated. I program in it, I hear the comments about it, and yeah - practically everybody underrates it.

  95. One other thing -- C# is Delphi in drag :-) by Paul+Fernhout · · Score: 1

    http://en.wikipedia.org/wiki/A...
    "Anders Hejlsberg (born December 1960)[2] is a prominent Danish software engineer who co-designed several popular and commercially successful programming languages and development tools. He was the original author of Turbo Pascal and the chief architect of Delphi. He currently works for Microsoft as the lead architect of C#[1] and core developer on TypeScript."

    I would have used dot net and C# alone for that reason based on liking Delphi -- except that the main line of those has long been proprietary and single platform compared to other language options which are free and/or multi-platform.

    I'd be curious if you have by any chance tried C# and what you thought of it in comparison to Delphi?

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  96. Underrated or not, Pascal has no niche by steveha · · Score: 1

    Pascal might be underrated but it doesn't matter. There is no place for Pascal in the modern programming world.

    When I went to college, Pascal was the standard teaching language. I have studied it pretty thoroughly and I understand it pretty well.

    Pascal was designed as a teaching language. There are features in Pascal that are stripped-down, and I think it was just to make the teaching easier. In particular, why must all goto labels be integers rather than strings? I'd much rather write goto cleanup_after_fatal_error than goto 1000. It was a tiny bit simpler to write a Pascal compiler because of this limitation.

    If you know C and really want to understand why Pascal didn't win over C, get a copy of Software Tools in Pascal. Look at all the places they had to work around limitations in Pascal, and consider how to write similar code in C. In all the cases, I realized that they simply wouldn't have had a problem in C.

    Also, after writing the above book, Brian Kernaghan wrote an essay Why Pascal Is Not My Favorite Programming Language and if you have rose-colored glasses for Pascal I suggest you read it.

    C really is the king of the "third-generation languages". In its earliest form it had dangerously little type-checking, but in its modern form (where you use function prototypes so the compiler can check types) it has type checking similar to Pascal, with all the benefits that provides. And it has all the little things I appreciate, such as terminating a loop early using break. In Pascal, to terminate a loop early you needed to either clutter up the loop conditionals with an extra flag variable (early_exit or some such) or else you had to use goto to break out (with a numeric label target, of course).

    "But wait," some of you are muttering. "I used to write Pascal programs and I remember using break..." No, you didn't used to write Pascal programs: you used to write Turbo Pascal programs. When Borland created Turbo Pascal they fixed all of the worst problems of Pascal, pretty much by just doing whatever C did first. I wrote a lot of Turbo Pascal and I liked it very much.

    But this points out the biggest problem of Pascal: it was not well specified, and as a result it didn't work a lot of the time. Where a spec is weak, you tend to get different implementations doing different things, which is horrible for portability. The wonderful book Oh, Pascal! discusses the brokenness of the I/O in Standard Pascal, and the various ways that Pascal implementations work around the problem, and summarizes with Cooper's Law of Standards: "If it doesn't work, it doesn't stay standard."

    For Pascal to have a niche, it should do something a lot better than C, for it is C that it needs to displace. But IMHO there really isn't anything it does very much better than C, and there are numerous areas where it's a non-starter unless it copies features from C.

    Given the massive installed base of C, C isn't going anywhere, and that leaves no room for Pascal; Pascal does the same sort of things as C does, but not as well.

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
    1. Re:Underrated or not, Pascal has no niche by Anonymous Coward · · Score: 0

      Also, after writing the above book, Brian Kernaghan wrote an essay Why Pascal Is Not My Favorite Programming Language and if you have rose-colored glasses for Pascal I suggest you read it.

      Right, your post is sort of the case study in what was said in the summary. Kernighan's essay was written in 1981. Pascal's very much moved on in the last 34 years. The two most widely used implementations of Pascal today are Delphi and Free Pascal. Both implement Object Pascal. Try them both out. They're good.

  97. Definitely underrated by Anonymous Coward · · Score: 0

    Pascal's definitely underrated. The libraries and types defined in the Pensees are instructive even years later.

  98. Beginners language by Anonymous Coward · · Score: 0

    I'm sure this has been said already, but.. here goes nothing:

    I'm not anything even close to being an "experienced programmer" even though I've dabbled a wee (and I mean, WEE) bit in languages like QBasic, AMOS Professional and AmigaE. Best (or "most sophisticated") programme I've ever made was a diceroller for roleplaying games, I did this one i AMOSPro back in 1992 or thereabouts.

    Anyways, this was at the same time as a couple of friends of mine were doing coding as part of a college class, and the teacher back then said "we could've used some kind of BASIC dialect, we could've used C or C++, we could've used 6510 assembler, heck we could've used 80*86 assembler for this class. Problem with all these languages, though, is that they are so loose in how they are typed up, that, especially for a beginner, missing a curly backet or a semicolon, or putting in a semicolon where there should be none, is far to easy. So we use Pascal for the beginners class because it is very strict in how it is typed up in the sourcecode. Which hopefully leads to a better readability structure if and when you choose to move over to C or C++ or any other coding language"

    This was the reason I was given back in 1992 or thereabouts. I'm not saying it is neither true, nor untrue. Mayhaps it's just an urban legend that the teacher had heard. maybe he was a Pascal fanboy. Maybe he simply didn't know any better himself, I'm couldn't tell then and I certainly can't tell now.

    However, from what I've heard of the times, Pascal was pretty much the language of choice for the beginners college classes (and even for senior school students back in Norway) mostly with the aim of teaching good readable coding techniques.

    I'm sure this will be refuted by people who have far more experience in coding than some who's best effort was a dicerolling programme written in AMOS Professional, though ;)

  99. But Pascal *is* in widespread use!! by tibit · · Score: 1

    Everyone here seems to forget that a variant of Pascal is, for better or worse, also standardized as an IEC 61131-3 language. It's called Structured Text (ST). It is in rather widespread use in industrial automation. ST is also one of the languages you can use to write the actions of the Sequential Function Charts (SFCs), also known as Grafcet. SFCs provide most of UML State Diagram functionality. Standardized support for state machines is still not in C++, after so many years!

    So Pascal isn't dead in the mainstream, it's just that it's not the mainstream you might think of. A lot of products in your fridge have been packed in machines controlled in part by Pascal code.

    --
    A successful API design takes a mixture of software design and pedagogy.
  100. That's no Moon! by DarthVain · · Score: 1

    Your post got me thinking. What did they use for programming for the mission to land on the moon. They only did it once, so their was really only one programming language used.
    http://en.wikipedia.org/wiki/A...

    The answer: Assembly Language or specifically AGC. So there you go...

  101. PL/SQL by DarthVain · · Score: 1

    Perhaps the development of database centric programming languages (at least in enterprise environments) diminished the demand of general purpose programming languages to do that sort or work.

  102. Delphi compiles much faster by Anonymous Coward · · Score: 0

    All c code look the same, making it hard to navigate in.
    I have worked with C, C#, C++, VB, Modula2 and SImula. Object Pascal wins, and compiles also much faster.