Slashdot Mirror


30th Anniversary of Pascal

GrokSoup writes "UC San Diego is holding a public symposium on Friday, October 22nd, honoring the 30th anniversary of the Pascal programming language. Oh the memories of undergraduate bubble-sorts ..."

587 comments

  1. More serious apps... by grub · · Score: 5, Informative


    Pascal was more than just undergrad bubble sorts. The original Mac had all the hooks and development stuff in Pascal. If memory serves the Mac was the largest Pascal project going. Using C (Lightspeed C, circa 1986 or so) was a real bitch on the machine.

    --
    Trolling is a art,
    1. Re:More serious apps... by JPriest · · Score: 5, Informative

      Well there is Object Pascal which Delphi is based on. Delphi is losing popularity but is a very good (and underrated) language. The first GUI applications I made were in Borland Delphi.

      --
      Saying Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders.
    2. Re:More serious apps... by hh1000 · · Score: 2

      I think Pascal played a huge role in successfully getting the first Macs to work as well as they did.

    3. Re:More serious apps... by MouseR · · Score: 2, Interesting

      The original MacApp framework, in the 80s and early 90s, was also based on Object Pascal before Apple moved the code to C++.

    4. Re:More serious apps... by Anonymous Coward · · Score: 5, Informative

      Actually, the chief designer of C#, Anders Hejlsberg, was the chief architect of Turbo and then Object Pascal. He took many ideas from Object Pascal into C# and .NET.

    5. Re:More serious apps... by ChaosDiscord · · Score: 5, Interesting
      Pascal was more than just undergrad bubble sorts.

      Though the world would have been a better place had it been so limited. My pet peeve was the weirdly brain dead default string implementation. Strings weren't null terminated, instead the length of the string was stored. That's a good idea. A bad idea is using the first byte of the string to hold the length. 8 bits to store the string length means a maximum string length of 255 characters. I worked on a large project that had originally been written in Pascal. We used p2c to convert it and maintained it in C. An early task was removing the 255 character long string brain damage and replace it with intelligent strings (in our case C++'s generally good and absolutely superior to Pascal's std::string). Still, I got to read and occasionally maintain the Pascal master for a variety of reasons. The code dealing with strings was always irritating. Sometimes it just ignored the problem (creating potential buffer overruns), sometimes it just crudely limited the string length (meaning, for example, that you couldn't have a URL longer than 255 characters), and sometimes it used some weird chained string extension that I never quite understood. Mac programmers I know told me that the 255 limit was pervasive throughout MacOS as late as MacOS 9. Most unfortunate.

      (To be fair, it did seem like a pretty good language, and I really dug the "with" idiom. A healthy revision (that may have happened, I don't stay up to date on Pascal) could have turned it into something more mainstream and successful. Hell, let's be honest, I just wanted to bitch about the stupid strings...)

    6. Re:More serious apps... by Retric · · Score: 4, Informative

      I was coding in Pascal today. It's just about the oldest GUI program I know of and it still works. It's a single app that handles a flat file database, a real time system for job dispatching with a great GUI, payroll, redundant backup over the network, job capture ect. And it's still readable after 14 years. Damm to bad Pascal lost out to C/C++.

    7. Re:More serious apps... by BorgCopyeditor · · Score: 2, Funny

      Bah! 255 bytes ought to be enough for anybody.

      --
      Shop as usual. And avoid panic buying.
    8. Re:More serious apps... by mertner · · Score: 5, Informative

      Yes, the 255-length limit on strings can be bothersome, and to address it a new dynamic string type with a 32-bit length was introduced in Delphi 2: AnsiString.

      That is 7 Delphi versions ago, btw, so it's not exactly new any more :-)

      The advantage of the "Short" strings is that they can be allocated on the stack and thus have no memory manager overhead, pointers etc associated with them - which makes them simple to use. And many strings *are* less than 255 chars, always.

      If you need longer strings, use Delphi 2 or later. The AnsiString implementation is certainly heads and shoulders above the std::string from the STL, which I have found to be astonishingly inefficient several times.

      I guess it's all a matter of taste :)

      --
      -- As long as the answer is right, who cares if the question is wrong?
    9. Re:More serious apps... by charstar · · Score: 0, Troll

      ...that explains some things....

    10. Re:More serious apps... by Anonymous Coward · · Score: 0

      Wow, that was constructive.

    11. Re:More serious apps... by Lars+T. · · Score: 4, Funny

      Two words: signed char -Hell yeah, now that makes sense.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    12. Re:More serious apps... by shish · · Score: 1
      And look at something else interesting: The mac made heavy use of a language that didn't allow buffer overflows. And how many buffer overflows were there? None.

      We should learn from this

      It really is time for someone to come up with a language as powerful as C, but with array bounds checking...

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    13. Re:More serious apps... by Anonymous Coward · · Score: 0

      Apollo's (they were bought out by HP) UNIX GUI was entirely written in Pascal, I believe. This would have been 1987 onwards... Quite superb.

    14. Re:More serious apps... by Erik+Hollensbe · · Score: 1

      A serious chunk of BBS systems and software (like doors and utilities) were written in pascal as well.

    15. Re:More serious apps... by mattyrobinson69 · · Score: 1

      wouldn't that be possible by just amending the header files?

      infact,(if it could be done,) it could be done in GCC, a few months after, no new programs (compiled by gcc) would have buffer overflows.

      im probably wrong though, as usual

    16. Re:More serious apps... by flithm · · Score: 1, Troll

      What are you talking about? No one incorporated any new ideas into C#! It's a direct rip off of java!

      These "ideas" you speak of that come from Object Pascal... where are they? Can you name _any_ of them?

      As for proof that C# is a rip off of Java... well all you have to do is learn both... or rather, learn one, and you can see how similar they are. And then all you need to do is ask yourself "which one came first?" and you can see who's the ripper, and who's the ripee.

      And for all you C# fanatics who are going to cry "But they're clearly different, you can't just learn one and know both, the API is totally different!"

      Sorry, but renaming Vector to ArrayList does not change the fact that it is a rip-off.

      We really shouldn't be surprised though. This is the norm of Microsoft Business Ethics (tm). And there's nothing explicitly wrong with it. If they can do it, and do it better, more power to them!

      Just don't go on about their innovation. Puhhleeze.

    17. Re:More serious apps... by aled · · Score: 3, Insightful

      my two words: buffer overruns.

      --

      "I think this line is mostly filler"
    18. Re:More serious apps... by aled · · Score: 1

      You are twice wrong. You are wrong in your proposition then you are wrong in supposing you are just probably wrong.

      --

      "I think this line is mostly filler"
    19. Re:More serious apps... by LWATCDR · · Score: 1

      Actually the company I work for made a few million dollars selling an app we wrote. We have moved to C++ now but Pascal served us very well.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    20. Re:More serious apps... by Anonymous Coward · · Score: 0

      Errr... a C programmer complaining about lame string implementations.. Isn't that ironic. May I remind you that C has NO string implementation? Null-terminated is hardly a REAL implementation.. it's mostly a hack.

      Pascal didn't catch on because it those days the preferred language was assembler. C had the benefit of being a bit older and having been "proven" with Unix. In those days people were obsessed with performance (the machines were dinky).

      Nevertheless, Apple did promote Pascal with the Apple IIs .. but still assembly ruled.

      Just didn't have a niche.. and Delphi wasn't around yet to add the cool factor. So Pascal got branded as "beginner's language", "academic", "wordy", and even "not for the real world".

    21. Re:More serious apps... by lseltzer · · Score: 1

      The now-completely-dead company I worked for around 1983 wrote a large and complicated 4GL DBMS in various implementations of Pascal, from Apple Pascal on the Apple ][ to HP Pascal on the Series 200 (one of my versions) to MS Pascal on DOS. I can't think of a different language at the time that would have done better for us, and I followed that market. Most C compilers were trash at the time.

      Does anyone remember JRT Pascal? It was a vaporware product by a guy named, IIRC, JR Tyson, who advertised in Byte for a while but never delivered. In the era of Turbo Pascal there was a race for $0 in the language market for a while and JR was going to charge something like $29. There was also a whole line of Utah compilers, Utah COBOL, Utah Fortran and so on, and they were also dirt cheap.

    22. Re:More serious apps... by haruchai · · Score: 1

      There are two myths that M$ are trying to keep alive:
      1.) that they are innovative and would be more so
      if those pesky regulators/litigators would just get out of the way.

      2.) that the only reason they have security problems
      is simply because of their market share.

      --
      Pain is merely failure leaving the body
    23. Re:More serious apps... by flithm · · Score: 1

      It's too bad some C# fanboy got to my post before anyone else. Seems like moderators very rarely mod a post up once it has been modded down.

      At any rate... you're right, very right.

    24. Re:More serious apps... by Pseudonym · · Score: 2, Informative

      And remember, TeX is still written in Pascal.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    25. Re:More serious apps... by Pseudonym · · Score: 1
      It really is time for someone to come up with a language as powerful as C, but with array bounds checking...

      I think you're referring to C++.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    26. Re:More serious apps... by Why+Should+I · · Score: 3, Insightful

      Dude,

      You've got issues.

      Are you suggesting that because Java implemented Vector in it's API library (which, by the way is now ArrayList in Java as well) that it somehow has a right to be the only language that implements Vector, and therefore call all other languages that implement vector a rip off?

      Vector is a Collection, it's a concept that all people learn when studying computer science, so it makes sense to have that kind of 'dynamic array' in your API no matter what languahe it's in (python, java or c#).

      What you're trying to say, that the subtle differences between languages are not enough to differentiate them. Yet in today's world of hi-level languages and managed runtimes, the only thing to differentiate between languages are the subtle differeces.

      Look I don't really care which language is better (in your mind or anyone elses), the fact remains that untill C# came along with the newer language constructs and features, Java didn't even bother to implement them. So at the very least, the competition is spurring on development/innovation between the two companies.

      Oh and by the way, doesn't your language also lend itself to the 'java is a rip off of C++' arguement, since they are so similar and c++ came first ?

      It's apples and oranges dude, and your agument is a total troll.

    27. Re:More serious apps... by jesterzog · · Score: 1

      Back in the late 80's and early 90's, I remember that Pascal was a very popular language for certain DOS applications... in particular there were several popular BBS door game toolkits available for Pascal that dealt with a lot of the more complicated communications routines for talking to the fossil driver and what-not.

      Door games spend a lot of time reading and writing input and output from and to users without needing to do much low level stuff. These days you'd probably use a scripting language as most CGI applications do these days, even though it'd be likely to run much more slowly. Pascal's good at that sort of stuff, though, and although it's not as flexible as a typical scripting language it can cope with some of the same tasks (and is native code). Consequently there were a lot of BBS door games written in Pascal using these toolkits. One of the first programs that I wrote and actually released as a teenager was a simple trivia door game that was built on one of these toolkits. It sucked and almost nobody played it, but it worked.

    28. Re:More serious apps... by Anonymous Coward · · Score: 0

      Nope,

      C++ just gives you a lockbox and a key. It's up to you to lock the gun away.

      Some languages (Java for example) take away the gun, and then break all your fingers for good measure.

    29. Re:More serious apps... by Anonymous Coward · · Score: 0
      A healthy revision (that may have happened, I don't stay up to date on Pascal) could have turned it into something more mainstream and successful. Hell, let's be honest, I just wanted to bitch about the stupid strings...)

      The revision was effectively called Ada and has a moderate following in safety critical apps. Certainly you can subset Ada down to Pascal; you can even subset it to a larger domain than Pascal and have a very good, simple to-use language.

    30. Re:More serious apps... by Anonymous Coward · · Score: 1, Interesting

      Like what ? Care to detail what he's supposed to have borrowed from Pascal or object pascal ? There isn't anything in .NET or C# originating from Pascal, but you're free to prove me wrong.

    31. Re:More serious apps... by Anonymous Coward · · Score: 0

      I totally agree with you, but renaming Vector to ArrayList is not a part of that language but the standard libraries. When one compares the core language only, nobody could say C# is NOT a ripoff of Java, it's perfectly clear that M$ ripped it completely, only changing a few constructs. And that's hardly what one calls "innovation".

    32. Re:More serious apps... by 1g$man · · Score: 2, Interesting

      properties are done in c# almost exactly like they are in delphi.

    33. Re:More serious apps... by renoX · · Score: 1

      >The original Mac had all the hooks and development stuff in Pascal.

      I bet it was in the standard Pascal, but in some dialect which added some much needed thing (like dynamic memory allocation)..

      IMHO that's what killed Pascal: the standard was too restrictive and everyone had his own extension which was of course incompatible with each other: at some point too much diversity in a language is bad as it prevents portability..

      IMHO this is why functionnal language will mostly stay in the academy realm for a long time about as long as their supporter battles for Haskell, OCaml, Scheme..

    34. Re:More serious apps... by mattyrobinson69 · · Score: 1

      but isnt the scanf function for example, in iostream.h?

    35. Re:More serious apps... by Anonymous Coward · · Score: 0

      > Damm to bad Pascal lost out to C/C++.

      The horror!

    36. Re:More serious apps... by PingPongBoy · · Score: 1

      When I first studied Pascal I was so blown away by recursion and structured programming that I programmed the game of Life with a text based GUI. This was on an Apple II. The Pascal was a big difference from the line-numbered Applesoft Basic.

      There wasn't much incentive to keep using Pascal though.

      --
      Know your pads. One time pad: good for cryptography. Two timing pad: where to take your mistress.
    37. Re:More serious apps... by JustKidding · · Score: 1

      My pet peeve was the weirdly brain dead default string implementation

      Although the string implementation could really get in your way, I really hated the fact that pascal didn't have sprinf / sscanf type functions. If you needed to read integers from an ascii file, you had to write loops to copy characters until you found a non-digit.

      Also, pascal did have functions that would take a variable-length argument length (like write and writeln), but you couldn't make those yourself.

      But the thing that really bugged me was that you couldn't allocate a 64k block of memory. The biggest block you could allocate was 64k - 8 bytes. When I was doing graphics and game programming in pascal, I often needed large blocks of memory, which was eventually the reason I switched to C.

    38. Re:More serious apps... by Shinglor · · Score: 1

      A text based graphic user interface? Did you use ASCII art to draw your widgets?

    39. Re:More serious apps... by Reziac · · Score: 2, Interesting

      Happens I still use an ancient proprietary DOS database, because I haven't yet found a replacement that works as well for the job. And a while back I talked the coder into giving me a copy of the source code, which proved to be in Pascal.

      Now, I'm an interested bystander but not a programmer. Nonetheless, just from knowing the app well in everyday use, I can make sense of the Pascal source (even tho there's not a single comment anywhere) -- enough to have some idea what I'd like to tweak, and maybe even how to do it.

      Now THAT is readability!

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    40. Re:More serious apps... by shrykk · · Score: 1

      A text based graphic user interface? Did you use ASCII art to draw your widgets?

      When I was a kid I wrote all kinds of routines for pop-up windows and drop-down menus in QBASIC, that worked in text mode. Like the poster above I wrote a game of life. It was great fun, doesn't everyone do this?

      I stopped using BASIC when I got my first C compiler. Pascal is a nice-looking language but something about C just appeals to me more, even when you spend hours trying to debug your declarations of pointers to pointers to functions etc.

      --
      #define struct union /* Reduce memory usage */
    41. Re:More serious apps... by julesh · · Score: 1

      Yes, the 255-length limit on strings can be bothersome, and to address it a new dynamic string type with a 32-bit length was introduced in Delphi 2: AnsiString.

      That is 7 Delphi versions ago, btw, so it's not exactly new any more :-)


      However, it is a non-standard extension not supported by recent versions of Pascal on all platforms, which severely limits its usefulness.

    42. Re:More serious apps... by NoOneInParticular · · Score: 2, Insightful
      And let's not mention the fact that 'Vector' is a very inaccurate name for an 'Array'. Vector comes from C++ (STL), and was named thus and not 'array' simply because it was found that many legacy C and C++ programs already used the name 'array' all over the place to describe *gasp* arrays. It would have been a pain to remove all these. So now with C++ we're in the situation where std::vector denotes an array, while std::valarray denotes a vector (you know, that mathematical object that contains a few primitive types and needs to be manipulated as a whole.).

      The original Java designers apparently didn't stop to think why the this was called 'vector' in the first place and just put it in the spec, this while they didn't have legacy code to contend with. Once they found their 'Vector' was too slow for its most common use they invented something weirdly called an 'ArrayList' (which looks more like the std::vector). Now wow, that's a weird name: is it an array or a list??? They probably refrained from using Array because at that point they needed to conted with legacy code :-) Ah well, I think that nobody would argue that Java at its core is very consistent anyway (String.size, Collection.size(), T[].length?).

    43. Re:More serious apps... by Anonymous Coward · · Score: 0

      Whoever modded this interesting needs to get a clue.

    44. Re:More serious apps... by jeremyp · · Score: 1

      That's an implementation issue. Blame the compiler, not the language.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    45. Re:More serious apps... by SenseiLeNoir · · Score: 1

      In Delphi (Object Pascal) it has a new large string lib, which gives up to 2gb (or more i think) strings.

      The beauty of its implementation comes in the technical details. it is both a index length, AND a null terminated string. Its space on the heap is dynamically allocated, and garbage collected.

      if you do the following:

      var
      s: String;

      you can do:
      s:= ' a massive string.......';

      but you can also refer to the String as a Null Terminated string too:

      var
      p : PChar;

      p := pchar(s);

      Pointer aritmetic is also supported on Pchars (just like C)

      p := p + 1;

      and dereferencing as chars is equally simple:
      p^ := 'c';

      Allowing things like this:
      while (p^ #0) // not null
      begin
      p^ := '*';
      inc(p);
      end;

      and althoguh the above code looks very highlevel, the compiler properly inlines the code to create a very compact binary for it.

      PS, before anyone comments about the C++ style comments, yes Delphi DOES support it.

      --
      Have a nice day!
    46. Re:More serious apps... by SenseiLeNoir · · Score: 1

      oops, Slashcode removed the less than / greaterthan in the not equals.

      --
      Have a nice day!
    47. Re:More serious apps... by SenseiLeNoir · · Score: 2, Interesting

      the reason why Borland Turbo Pascal was used a LOT was because of its hacker support amongst geek teens, especially here in Europe. We had the SWAG archives, which were accessible via BBS's.

      --
      Have a nice day!
    48. Re:More serious apps... by TheRaven64 · · Score: 1
      Oh and by the way, doesn't your language also lend itself to the 'java is a rip off of C++' arguement, since they are so similar and c++ came first ?

      Not really. Java is semantically a lot more like Smalltalk or Objective-C than C++, although syntactically it does resemble C++.

      --
      I am TheRaven on Soylent News
    49. Re:More serious apps... by tigersha · · Score: 2, Informative

      An ArrayList is a list implemented with an Array internally. A LinkedList is a list implemented a slinked list. Both implement the List interface (ie they support the same operations).

      The difference is that the one has constanct time appends and inserts (the linked list) while the other one has constant time indexed lookup (the Arraylist). Both are needed because the access patterns of the collection cannot be predetermined by the API.

      The naming convention used is quite logical if you bother to look further.

      The same naming convention also goes for the other collections in the API, such as Set (HashSet ... ) and Map (HashMap...)

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    50. Re:More serious apps... by NoOneInParticular · · Score: 1
      The naming convention used is quite logical if you bother to look further.

      Ok, looking a bit further, it looks like it should have been called a ArrayListSerializableClonableRandomAccess, but that might be too much even for Java. Given the naming of HashSet and HashMap, I think we could settle for RandomAccessList ;-)

    51. Re:More serious apps... by Viol8 · · Score: 1

      "std::string from the STL, which I have found to be astonishingly inefficient several times."

      Which is why char* is still used by most C++ coders that i know where they can.

    52. Re:More serious apps... by master_p · · Score: 1

      Is that the reason why WINAPI is __PASCAL? :)

    53. Re:More serious apps... by Mikkeles · · Score: 1
      'It really is time for someone to come up with a language as powerful as C, but with array bounds checking...'

      You may want to check out Ada. There was a strong Pascal influence in it's early specifications.

      --
      Great minds think alike; fools seldom differ.
    54. Re:More serious apps... by bilgebag · · Score: 1

      There's an HTML version of the last SWAG release from 11/29/1997 here http://www.bsdg.org/SWAG/

    55. Re:More serious apps... by Anonymous Coward · · Score: 0

      Why? It's an example of a feature in C# which is in C# because the designer of C# also designed Delphi, and therefore it's bang on. In what way is it clueless to moderate it up?

    56. Re:More serious apps... by Anonymous Coward · · Score: 0

      It's better than Python, where the same data structure is called a "list".

      Hello, Guido - when I see "list", I think O(N) lookups and O(1) insertion. Your lists have O(1) lookups and O(N) insertion. Whatever happened to the principle of least surprising behaviour?

    57. Re:More serious apps... by Anonymous Coward · · Score: 0

      Although the string implementation could really get in your way, I really hated the fact that pascal didn't have sprinf / sscanf type functions.

      Given that sprintf and sscanf have been responsible for more major security flaws than Bill Gates himself, I'm not sure their absence from any language can be described as a disadvantage.

      Though I do rather like the OCaml implementation - it's typechecked at compile-time, so you literally can't pass an integer to %s.

    58. Re:More serious apps... by Anonymous Coward · · Score: 0

      Delphi AnsiStrings aren't garbage-collected in the usual sense: they're reference counted. Which makes more sense in this specific context, as it's hard to have cyclic references in a string, but is a bad thing in general terms (slower and less reliable than most modern full garbage collectors).

    59. Re:More serious apps... by Anonymous Coward · · Score: 0

      everyone had his own extension which was of course incompatible with each other: at some point too much diversity in a language is bad as it prevents portability..

      IMHO this is why functionnal language will mostly stay in the academy realm for a long time about as long as their supporter battles for Haskell, OCaml, Scheme..


      Er, what? In what way is the problems of dozens of incompatible extensions to one language (that people might reasonably expect to be compatible with itself) even remotely related to the existence of several completely different and wholly unrelated languages that only an imbecile would expect to be remotely similar?

      You might as well say that scripting languages will never catch on for as long as their supporters are battling for Perl, Python, Ruby...

      Oh, wait, they went and caught on anyway, didn't they?

    60. Re:More serious apps... by oldwarrior · · Score: 0

      >>In those days people were obsessed with >>performance (the machines were dinky).

      real pro implementations are STILL obsessed with performance, even on totl machines. It's what sells and what makes software succeed. That's why most pro sw is still in C (C++).

      --
      If it were done when 'tis done, then t'were well it were done quickly... MacBeth
    61. Re:More serious apps... by Scherf · · Score: 1

      These "ideas" you speak of that come from Object Pascal... where are they? Can you name _any_ of them?

      Properties. Nuff said.

    62. Re:More serious apps... by renoX · · Score: 1

      > related to the existence of several completely different and wholly unrelated languages that only an imbecile would expect to be remotely similar?

      Except that they all more or less embodies the 'function programming language' concept.

      > You might as well say that scripting languages will never catch on for as long as their supporters are battling for Perl, Python, Ruby...
      > Oh, wait, they went and caught on anyway, didn't they?

      Perl is mainstream, yes.
      Python and Ruby? Hardly!
      In my current project, it was refused to use Ruby, the reason: not enough developers know Ruby and we're going to use Perl even though we've already lost many, many days rewriting Perl applications because developpers usually creates ugly unmaintenable Perl script: the language really doesn't help!

      And what is preventing Ruby and Python to become mainstream? First that Perl is there yes, but also those two are battling for the 'clean script language' niche and two is one too many, remember this is a fashion industry!

    63. Re:More serious apps... by Anonymous Coward · · Score: 0

      Ah, Pascal! Yep, them were the days! I too waited for UCSD Pascal to become available (and even contemplated UCSD Pascal as an OS when I was buying my first PC. (Went with MS-DOS 2.0, as I recall.)

      But then Turbo Pascal came out. What, forty bucks or some such? When every other bloody native compiler was hundreds and hundreds of bucks? Had to do SOMETHING to get away from MBASIC, the available free or cheap BASIC compilers were too limited. I loved 80x86 assembly language, of course (goes without saying), but it was just too cumbersome for real hacking. (Contributions to MS-Kermit notwithstanding.)

      So I bought Turbo Pascal 1.0. And never looked back for years!

      Ah .. what a trip. No longs? No biggie, write your own (thus "TOADLONG", adding long integers to the language via assembly language libraries). Hate floating point because it's so bloody slow? No biggie: TOADMATH (infinite integers, well almost: an integer 65535 characters long is usually big enough for about any calculation you want to make). Again, assembly language routines, just plug them right in.

      Yep, did some serious hacking in good old Turbo Pascal. It was flexible, forgiving, clear, understandable .. everything C was not :-) Lots of free code floating back and forth, source being shared, lots to learn and enjoy. The TurboPascal category at SIMTEL was an active place, fer shur.

      I finally was forced into C, kicking and screaming, simply because that's where all the commercial stuff was being done (and most of the public domain from the universities). But I still miss Turbo Pascal. Never made the shift over to Delphi (I hate OOP), never had the need for GUIs (being a command line sort of guy). I can still spot a Turbo Pascal screen to this day :-)

      Thanks for the memories.

      David Kirschbaum
      Toad Hall

    64. Re:More serious apps... by RiBread · · Score: 1

      These "ideas" you speak of that come from Object Pascal... where are they? Can you name _any_ of them?

      Properties

      Someone else said it already, but it bears repeating.

      *real* component based development, the uses clause, forms; there are so many great features to list about Delphi and Object Pascal. However, properties are the root of most of the coolness.

      But as they say "Imitation is the most sincere form of flattery"

    65. Re:More serious apps... by mertner · · Score: 1

      I think that in real life, those that still code in Pascal consider Borland the standard-setter, and Borland has set the de facto standard with its compilers for quite some time. I don't know of any serious Pascal-based tools that are not to some extent compatible with Borland - and where they are not, they strive to be.

      This includes FreePascal, Virtual Pascal, TMT Pascal, etc.

      If there are still any "standard Pascal" compilers out there, I find it hard to imagine that they are useful for anything other than teaching. Standard Pascal doesn't even have the Short String type that started the thread, since it was introduced by... Borland :)

      --
      -- As long as the answer is right, who cares if the question is wrong?
    66. Re:More serious apps... by julesh · · Score: 1

      You know, I'd forgotten that. When I did Pascal at university, we used a version that didn't have strings. You had to use char arrays, and it didn't have the concept of null termination, either, so all strings were fixed length.

      God, that was an awful experience.

      (I learned Pascal with BP7, which was a seriously cool piece of software. Recently tried installing it again, but it dies on startup with a runtime error. Y2K issues, I guess :( )

    67. Re:More serious apps... by HishamMuhammad · · Score: 1

      No. In fact it dies on computers faster than 190 MHz. Computers started to cross this barrier right soon after I learned Pascal, so I started to see programs break all over. There's a patcher program for generated binaries, and for the environment itself.

      If you're curious, the problem is with the timing code of the CRT unit. (Yay, travel back memory lane!)

    68. Re:More serious apps... by Shulai · · Score: 1

      Java designers rarely stopped to think about anything. You find examples in AWT, I/O, and I guess a lot other places, but I didn't touch it seriously in years, as I got disappointed when find the differences between the hype and the real language.

    69. Re:More serious apps... by Shulai · · Score: 1

      Well, Im still waiting for Smalltalk blocks.
      Listeners inner classes don't appeal me.

  2. Loved it!!!! by Jeffery · · Score: 5, Interesting

    Loved Turbo Pascal, learned it in high school, was even remaking the first zelda on it, but was pixelizing everything, so it looked way better... sorry but that's pretty uber geek in my mind.. that was a long time ago.. this is also my first post, so i wish to formally introduce myself to the /. community!

    --
    President Bush Supporter
    1. Re:Loved it!!!! by Anonymous Coward · · Score: 1, Funny

      You must be new here.

    2. Re:Loved it!!!! by Staos · · Score: 1

      You must be new here!

      Sorry. Couldn't resist.

      --
      In Soviet russia, only old Koreans profit from pictures of Natalie Portman stored on Beowulf Clusters.
    3. Re:Loved it!!!! by Anonymous Coward · · Score: 4, Funny

      i for one welcome our jeffery overlord.

    4. Re:Loved it!!!! by Jeffery · · Score: 1

      well i'd consider myself an underling.. a fellow slashdotter named kredel introduced me to /. along time ago, i read all the articles, but this one i had to post on.

      --
      President Bush Supporter
    5. Re:Loved it!!!! by Anonymous Coward · · Score: 5, Funny

      Hello an enjoy your stay. Remember, you are more than just a number to us, user 810339.

    6. Re:Loved it!!!! by serutan · · Score: 1

      Pixelized Zelda does sound pretty cool actually, for back then. Wish I had a dollar for every fun project I never finished back then.

    7. Re:Loved it!!!! by Jeffery · · Score: 1

      it was very good, i was making an exact replica of the original zelda, but with much better graphics.. for only a year into the language (only during school hours) i had the world mostly made, no music yet, was getting motions down, but still very bugged and no monsters made yet, i'd love to go back and finish it.

      --
      President Bush Supporter
    8. Re:Loved it!!!! by iamcf13 · · Score: 1

      The first real programming language I learned in college. My first Turbo Pascal program, a simple equation solver, was a kludge that showed it's roots in BASIC, the programming language I knew at the time. Once I properly wrapped my head around the structured programming concept, I was good to go and was off to the races. Nowadays, I think up the code in Visual C++ (almost always just plain C with CString support), type it into the IDE, compile it, and run it with usually no more than minor compile-time/run-time errors. If you are interested, an example of my C coding skills is here--a non-trivial software solution to a real problem that I myself use on a regular basis. :)

    9. Re:Loved it!!!! by AndroidCat · · Score: 4, Funny

      For your first quest, locate Slashdotter #810340 and razz him for being new here.

      --
      One line blog. I hear that they're called Twitters now.
    10. Re:Loved it!!!! by Abasher · · Score: 1

      At The Royal institute of technology here in Sweden it's mostly Java, but also Mozart Oz in some courses. I quite like it. Some things we learned would be very hard to get a feel for with other languages. You can easily get under the hood of Mozart Oz, although it's a very high level language.

    11. Re:Loved it!!!! by Anonymous Coward · · Score: 0

      I sgree, I learned Pascal in high school as well. I believe it is a great stepping stone into the world of structured programing without having to worry about the syntax issues with C. I was doing animation and stuff in Pascal myself. I must admit I probably would have failed freashmen college C if I did not have the Pascal background. I feel that every computer student should have at least one spoonful of Pascal.


      Its a shame that Pascal never really became as popular as C. The syntax of Pascal is much more user friendly, and makes for easier troubleshooting, and I really dont know of much that you can do in C that you cannot do in Pascal.

    12. Re:Loved it!!!! by Wraithlyn · · Score: 4, Interesting

      Similar experience here, made the jump to Turbo Pascal in early high school and never looked back. I really miss Pascal strings and arrays, they were so simple to use compared to say, Java. The 256 char limit and 64K data structure limit were a bitch though. Interestingly enough I was also building a "Zelda-ish" game, but it never went anywhere. Spent most of the time designing tilesets with Improces. (Anyone remember that gem?)

      For my final CS project in high school, we had to basically write an interpreter for a small set of assembly instructions. A rudimentary virtual machine, in other words. Well of course the normal approach was a simple text-prompt interface, but I used a shareware graphics library (Fastgraf?) and built a GUI right up from the bare pixel level, with multi-windowing, menu system, illustrated help, 'advanced' features like Start At and Trace, and even user selectable mouse cursors. Ah the memories.. ;) I also wrote a bunch of graphics demos that I probably still have kickin around.. wonder how'd they run today? :)

      Anyway, welcome to Slashdot! Don't feed the trolls. :D

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    13. Re:Loved it!!!! by niteice · · Score: 1

      If you can get the code, you ought to post it online.

      --
      ROMANES EUNT DOMUS
    14. Re:Loved it!!!! by Anonymous Coward · · Score: 0

      YOU FAIL IT (it is being funny).

    15. Re:Loved it!!!! by mattyrobinson69 · · Score: 1

      i live in england, and i finished my btec national diploma last year (course for 16-18 year olds) - we did pascal in the first semester (argh!) fortunately, i got through it by knowing my tutor would protect the class from french invasion.

      YEAH!!!

      (the germans are coming!)

    16. Re:Loved it!!!! by forkazoo · · Score: 1

      You seem to be posting something related to the topic... You must be new here.

    17. Re:Loved it!!!! by mikechant · · Score: 1

      For my final CS project in high school, we had to basically write an interpreter for a small set of assembly instructions.

      For my Numerical Analysis module project at Uni, I was allowed to write any code I liked to do anything, as long as the code was in Fortran. I guess they assumed people would write Numerical Analysis related programs, but they didn't state this so I wrote an 8088 processor emulator. The professor who graded it said it was 'outside his area of understanding' and gave me about a 90% mark!
      I did cheat slightly. The emulator basically worked, and ran real 8088 assembler programs in fortran on a Multics system. It ran slowly, but faster than a 'real' 8088. However, there was a hard to trace bug causing stack corruption in certain cases, and I just didn't have time to track it down before I had to hand in my assignment - so I just edited the output script to remove those pesky rogue values...

  3. Started with QBasic by FuzzzyLogik · · Score: 2

    I've never used Pascal, I started programming in QB, went on to VB(5, then 6), then did C++, then Java, now Objective-C.

    I think when I start teaching programming classes at my old high school I'm going to start with Python so you get one language that can do both objects and procedural programming... anyone recommend otherwise? I'm just a bit curious.

    1. Re:Started with QBasic by Gentoo+Fan · · Score: 4, Informative

      You could give Ruby a shot.

    2. Re:Started with QBasic by mrmargolis · · Score: 1

      I have had great success with teaching ruby as a first language.

    3. Re:Started with QBasic by FuzzzyLogik · · Score: 1

      Well one of the key requirements is "happiness" in windows. Not sure how well ruby works in windows haven't tried it. But I almost feel like starting with procedural programming is best and then working up to OOP the second year. I am not _very_ familiar with ruby but does it allow you to write procedural programming or is it strictly OOP? I think the idea of Objects would throw students unfamiliar with programming off pretty quickly.

    4. Re:Started with QBasic by Anonymous Coward · · Score: 0
      Ruby is hands-down the cleanest and most beautiful language I've ever used.


      Yes, you can write procedural stuff, and the basic library is a very shallow OO hierachy, so it fits most programming styles.


      My favorite being functional programming... where the block/closure support is absolutely phenomenal.

    5. Re:Started with QBasic by m_cuffa · · Score: 1

      *laugh* I thought OOP was supposed to be more intuitive...

    6. Re:Started with QBasic by Marxist+Hacker+42 · · Score: 1

      Procedural is just object oriented monolithic in a single class.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    7. Re:Started with QBasic by ameoba · · Score: 1

      If your definition of "OOP" is based on things like Java and C++, where OO is just an extension of procedural code, that's arguably a good route to take. The more you move towards 'pure OO', the less it makes sense to do this.

      --
      my sig's at the bottom of the page.
    8. Re:Started with QBasic by omicronish · · Score: 1

      I think Python is a great language. One of my favorite features is the interactive interpreter. It's great for trying little bits of code quickly, and might be useful for in-class exercises where everyone follows along. At least that's what's supposed to happen in theory; in actuality you'll likely have half the class surfing and chatting ;)

    9. Re:Started with QBasic by Anonymous Coward · · Score: 0

      Try Common Lisp... That gets you one language that can do objects, procedural, and functional programming out of the box and with the addition of one small library, it can do logic programming too. And if they haven't coded in the past, you don't have to worry about the unfamiliarity of the syntax.
      Finally, like Python, Common Lisp has an interactive interpreter which can greatly ease debugging.

    10. Re:Started with QBasic by Anonymous Coward · · Score: 0

      Python is ideal because it is fairly popular and can be extended and embedded. It's procedural and object oriented. You can create whole programs or run in command-line mode. It has a simple syntax. It is open source.

    11. Re:Started with QBasic by Linker3000 · · Score: 1

      Holy cow!

      I downloaded QBasic today to run a small prog I wrote years ago to process unwanted commas in the middle of CSV files (in-between quotes)!

      Prior to this I pulled out a copy of GWBASIC but it didn't like the code!

      My first ever prog was written in BASIC on a Commodore PET 3016.

      --
      AT&ROFLMAO
    12. Re:Started with QBasic by Usquebaugh · · Score: 1

      Smalltalk via Squeak

    13. Re:Started with QBasic by gnuLNX · · Score: 1

      Nice....Mine was a Commodore 64...new a guy with a vic 20. Basic was so damned easy....making sprites and such..oh the days.

      --
      what?
    14. Re:Started with QBasic by LnxAddct · · Score: 1

      I recently started using ruby. It is really really nice thus far. I run it on linux, but this is a one-click installer for windows. Check it out, it's worth eventually at least mentioning to students so they know it exists. Python or ruby are good languages to start off with, but I found that javascript seems to spark people's interest the quickest. I believe its because you instantly create graphical projects with things that can move, flash, and that you control. It's also very easy for them to show off their javascript creations to their friends and family so there is a motivational factor as well. Most people aren't too impressed with the command line despite its power and it would take a while for you to get to anything graphical in python or ruby. Javascript is cross platform, works just about anywhere and requires no special tools or programs other then a web browser. It's worth at least thinking about. Good luck.
      Regards,
      Steve

    15. Re:Started with QBasic by the+real+darkskye · · Score: 1

      I started programming in QB, went on to VB(5, then 6)

      <yoda>The dark side I sense in you</yoda>

      --
      Music is everybody's possession.
      It's only publishers who think that people own it.
      Fuck Beta
      ~John Lenno
    16. Re:Started with QBasic by Anonymous Coward · · Score: 0

      Python is a very good choice. Mainly because beginners don't understand indentation, and dynamic typing is just more didactic.

      Beginners never understand what those semicolons and curly braces and stuff are for.. Python is a great first language.

    17. Re:Started with QBasic by HFXPro · · Score: 1

      Even better try Objective Caml. The fast functional programming language with one of the best object systems around. In fact, I've looked at the additions Haskell is making to add object oriented programming. OCaml is largely being used as the basic template.

      --
      Reserved Word.
    18. Re:Started with QBasic by Anonymous Coward · · Score: 0

      Also see Blaise (http://blaise.sourceforge.net), a scripting language based on Object Pascal.

    19. Re:Started with QBasic by ozmanjusri · · Score: 1

      Why not start them off with Befunge or Brainfuck? http://en.wikipedia.org/wiki/Brainfuck If they survived that, even VB would seem like a sensible an consistently designed language....

      --
      "I've got more toys than Teruhisa Kitahara."
    20. Re:Started with QBasic by fucksl4shd0t · · Score: 1

      *laugh* I think OOP is more intuitive...

      --
      Like what I said? You might like my music
    21. Re:Started with QBasic by fucksl4shd0t · · Score: 1

      downloaded QBasic today to run a small prog I wrote years ago to process unwanted commas in the middle of CSV files (in-between quotes)!

      As much as I love legacy code, why didn't you just take 5 seconds to rewrite the small prog in python with their nice csv module? Or perl, or whatever.

      --
      Like what I said? You might like my music
    22. Re:Started with QBasic by Linker3000 · · Score: 1

      Download Qbasic + Run prog = 3 mins.

      Download and Install Perl on PC...
      +
      Learn perl

      OR

      Do similar with Python

      Tough one that.

      --
      AT&ROFLMAO
  4. What do they teach in undergrad now? by Moby+Cock · · Score: 4, Insightful

    I too recall the heady days of Pascal in undergrad. Trying to explain to my lab partner how one could have an array of arrays... But that was a long time ago and I pose the question. What language is the "teaching language" now? Do they have Pascal?

    1. Re:What do they teach in undergrad now? by Oxy+the+moron · · Score: 1

      At my university, it is either C++ or Java. :)

      --

      Proudly supporting the Libertarian Party.

    2. Re:What do they teach in undergrad now? by FuzzzyLogik · · Score: 1

      I just asked a similar question, but when I was a CS major I jumped right into C, procedural C++ basically (they used cout/cin and not printf or anything from C per say). I know a lot of people were lost in that class and you really find out who knows their stuff and who doesn't.. weed out the ones not up to snuff pretty quickly. If that didn't get ya then Assembly was pretty rough once you got halfway through UG :)

    3. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Probably Java -- at least that's what they use here.

    4. Re: What do they teach in undergrad now? by Black+Parrot · · Score: 3, Insightful


      > But that was a long time ago and I pose the question. What language is the "teaching language" now? Do they have Pascal?

      Pascal, C, C++, Java, ... it's about time to change again. The lifecycle of a teaching language is about the same as the period required to get a degree, virtually assuring that schools turn out a mass of BS's who are monolingual in whatever language industry just quit using.

      --
      Sheesh, evil *and* a jerk. -- Jade
    5. Re:What do they teach in undergrad now? by MustEatYemen · · Score: 1

      the fools are using Java as the learning language now....

    6. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Java mostly I think. Here (a small Canadian university) we start out with Java and continue with other languages.

      There's plenty of exposure to Perl, Python (A student just finished providing a tutorial on Python for fellow students actually...) and Bash for those who want it. Bit of a lean towards things Linux these days thankfully.

    7. Re:What do they teach in undergrad now? by Djehuti · · Score: 1

      The (UK) Uni's still think Java is fashionable so that's fairly common.

      e.g. in the land of Mr Cox --
      http://www.swan.ac.uk/compsci/undergrad/scheme s/Le vel1.html#pd

      The righteous are trying to persuade them to use Python instead.

    8. Re:What do they teach in undergrad now? by ucblockhead · · Score: 5, Insightful
      I find it unfortunate that Universities usually use "professional" languages like Java or (before that) C++ rather than a language specifically designed to be clear to new programmers. Unfortunately it means that students end up spending more time learning the oddities of the language than on programming in general.

      It's like teaching people to drive with semi-tractor trailers.

      --
      The cake is a pie
    9. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Oberon (derived from Pascal), probably switching to Java in the near future

    10. Re:What do they teach in undergrad now? by lifeblender · · Score: 3, Informative

      Now they teach with Haskell, Scheme, Lisp, and C++. I'm not kidding about the Haskell or Lisp, at least at UT Austin. My first cs class, 307, (I skipped the basic C++ "Comp Sci II" class) was in Haskell, and man that was hard. Of course, once I learned Haskell I loved it, and __every other programming language in the world__ became easy once I took a second class in it. Other professors for the 307 class teach using Scheme. Later, I had lots of classes that used C++, one that suggested C++ or Lisp and let me use Haskell (Compilers), and a great class about ACL2 where I learned Lisp from Professor J Moore, an experience I'll never forget. So yeah, they hit us with Haskell (or Scheme) pretty early on, had a large focus on C++, and let the crazy professors teach in Haskell or Lisp if they wanted to.

      Some wackos at places like UT Dallas try to teach freshman about Java classes, but they'll learn that's not the right approach. ;) Try starting from the basics of programming, THEN move to data structures, not the other way around.

      --
      Playing pornographics games during the day is evil! Play at night!
    11. Re:What do they teach in undergrad now? by Poseidon88 · · Score: 1
      When I started my degree in '93, we were still using Pascal as our introductory language. A couple years later, they switched to C++ and started teaching object-oriented concepts right off the bat. Somewhere in there, I picked up a couple O'Reilly books and taught myself C and C++.

    12. Re:What do they teach in undergrad now? by gehel · · Score: 1

      I was in the Swiss Insitute of Technology. It was Ada still 2 years ago. They switched to Java now. And some scala too.
      Ada was the best thing I could have as a first "academical" language. I wish it stayed that way ...

    13. Re:What do they teach in undergrad now? by Poseidon88 · · Score: 3, Interesting

      It depends on what you want to learn. If you just want to learn how to program, then something like Pascal might be a good place to start. My problem with it is that I didn't really understand a lot of what I was doing in Pascal. I had only a weak grasp on the concept of a pointer until I took a class in computer architecture and did some assembly programming on a VAX. A language like C is much closer to the hardware level, and while that makes it much easier to do something wrong and stupid, it also means that you learn a lot more about what is going on under the hood.

    14. Re:What do they teach in undergrad now? by m50d · · Score: 1

      It's often java. Sad but true. Some places do still have pascal.

      --
      I am trolling
    15. Re:What do they teach in undergrad now? by Hugonz · · Score: 4, Interesting
      I believe they should be using Python for teaching now. It is not masochistic and frustrating like some of the "professional" languages. You can learn procedural or OOP with it. It comes with very good documentation. It is available in Windows, unices and the Mac. It is very complete, with bindings and libs to do almost anything. It is not too verbose and strict (I'm thinking Java here)

      Pity they're going with Java for beginners nowadays...

    16. Re:What do they teach in undergrad now? by strictfoo · · Score: 1, Funny

      At the University of Minnesota they start you with Scheme.

      Yes, you read that right. Scheme. The language guranteed to fuck you up if you've by some strange chance of fate actually programmed before getting to the school. Why a school, with over 50,000 people attending (second largest in the US now) and a fairly large IT department does that is beyond me. Oh wait... no it isn't. They need to employ their crazy AI professors who bust a nut using it.

      Hell, I transfered into there as a CS junior and the still made me take the stupid class. (FUCK(SCHEME)) or something.

      --
      I've just signed legislation that'll outlaw Russia forever. We'll begin bombing in five minutes.
    17. Re:What do they teach in undergrad now? by sfjoe · · Score: 2, Insightful

      I'd be interested to know what the thiniking was that made teachers switch from Pascal to $PEDAGOGICAL_LANGUAGE.
      After all, the important thing to a freshman class is to understand what's happening in a loop, or a sort block or whatever. That fundamental stuff never changes so why change the language you teach it with???

      --
      It's simple: I demand prosecution for torture.
    18. Re:What do they teach in undergrad now? by JediTrainer · · Score: 1

      You mean something like this?

      The University of Toronto used to use it for their first-year undergrads (they now have switched to Java). It was (and, I believe still is) being used in many high schools in Ontario, Canada to teach programming.

      I started learning Turing in high school. It was quite a good interpreted language, and while it generally was safe to use, it was also capable of some pretty advanced things too. It was also quite similar to Pascal, which is what made me think of this.

      --

      You can accomplish anything you set your mind to. The impossible just takes a little longer.
    19. Re:What do they teach in undergrad now? by ornil · · Score: 4, Insightful

      The language guranteed to fuck you up if you've by some strange chance of fate actually programmed before getting to the school.

      If a language can do that to you, it is a language worth knowing. Most modern languages (read scripting, like Perl, Python, Ruby, etc) support many functional paradigms, like map, lambda functions, etc. They are incredibly useful, if you know how.

    20. Re:What do they teach in undergrad now? by alexo · · Score: 3, Interesting

      > I find it unfortunate that Universities usually use "professional"
      > languages like Java or (before that) C++ rather than a language specifically
      > designed to be clear to new programmers.


      Pascal was created to teach "correct" structured programming.
      When the prevalent paradigm shifted to OOP, it became outdated.

    21. Re:What do they teach in undergrad now? by museumpeace · · Score: 1

      At my kid's H.S. they are moving away from C/C++ and going to Java. Basic, oddly enough, never seems to have taken on the teaching role it was originally invented for. I know you said Undergrad but everything else I learned as a college freshman is now tought in H.S. programming included [though they say "what?" when you say "Fortran"]

      --
      SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
    22. Re:What do they teach in undergrad now? by Just+Some+Guy · · Score: 2, Interesting
      One of the mid-semester programming assignments in my freshman compsci course was writing a templated doubly-linked list class in C++. I completely, utterly understood the concept, and I could probably have written it in no time in 68k or x86 assembler, but that homework kicked my butt.

      The hardest part was trying to figure out when to use '.' versus '->', and the always-fun '*' versus '&'. I knew what I was trying to say, but trying to figure out how to express it in valid C++ syntax was an absolute killer at a time when I was still very new to the language. I wish our department head had discovered Python at that point.

      On the other hand, it did significantly thin out the herd of would-be compsci students. I suppose that was a good thing, maybe.

      --
      Dewey, what part of this looks like authorities should be involved?
    23. Re:What do they teach in undergrad now? by venomix · · Score: 1

      At my university (Linköping, Sweden) we start with Lisp, then on to Ada (which is very much like pascal btw) and then Java. Each of them is used to teach their specific paradigm (functional, imperativ and oo).

    24. Re:What do they teach in undergrad now? by MrSteveSD · · Score: 1

      Back when I finished my masters at Cambridge(UK) a few years back, we were using Fortran 95. There was no IDE, so debuging was fun. You just got a nice message like "Core Dumped...". Does anyone remember all the programming books that used to be aimed at kids? I'm sure in the 80's I had a number of these. Perhaps they expected everyone to be writting their own word processors and spread-sheets in the future rather than buying them.

    25. Re:What do they teach in undergrad now? by easter1916 · · Score: 1

      The first programming language used at Cork Intitute of Technology in Ireland was, for the national certificate (2-year programme) BASIC on a Prime 750 back in 1987 when I joined the computing dept. For the B.Sc. (4-year programme) it was Pascal on the same system. The 2-year guys went on to learn assembly (6502 or Z80), COBOL (shriek!), RPG II (SHRIEK!!!!) and some other languages, not sure what the 4-year folks went on to learn - I know C was their next langauge, and surely some others.

    26. Re:What do they teach in undergrad now? by Moby+Cock · · Score: 1

      Now that you mention it, I remember learning BASIC and Turing in HS. But I think that was a special case, our computer/math teacher was a real computer nut and he must have conviced someone to get so teaching computers. They must have cost a fortune back then. We had a room full of IMB XTs (I think, that's what they were)

    27. Re:What do they teach in undergrad now? by synthespian · · Score: 1

      My university went from Pascal, then to C, because Pascal was too old, then away from C, because it was too troublesome for first-timers and experimented with Java, because OOP was "the way forward." However, inexperienced students found OOP concepts kinda overwhelming and too hard to grasp (why go through all that just for procedural programming?). Then, they dropped Java and adopted...Pascal, because it allowed for the same set of skills then C, with a better type system and a cleaner syntax! Pascal! Oh, Pascal!

      Personally, it has been a source of great distress. I wish we had been doing C. Better yet - and totally unrelated - I *really* wished for SML or Common Lisp - heck, I'd settle for Scheme, if we were to use SICP - had been the languages adopted, but they apparently seem to think that becoming knowledgeable in data structures with pointers is of the utmost importance. I do tend to agree, because of the amount of code that's out there. *However*, I wish universities would look toward the future, and not be stuck to the ways of the past.

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
    28. Re:What do they teach in undergrad now? by Moby+Cock · · Score: 2, Funny

      I had one for BASIC programming on my C64 and then AMIGA. It told me how to make a bunch of silly little games. It was useful in helping me understand more about computers but now I'm addicted to video games.....

    29. Re:What do they teach in undergrad now? by PeeCee · · Score: 1
      There are actually some pretty good reasons to first teach programming in a language such as Scheme. For example, the fact that it's one of the languages with the simplest syntax and grammar (Whitespace notwithstanding). Parentheses are basically all you need. It may seem like dumbness to you, but when you're trying to introduce students to the real concepts behind programming (algorithms, flow control, etc.) having those keywords and syntactic constructs out of the way can keep them focused on the job at hand. If you've ever tried to teach freshmen you'd understand the pain of getting them to learn that variables in C can only be declared at the start of a block, and don't forget your semicolons, and scanf requires an ampersand when reading integer parameters, oh but not for strings (and you'll have to take my word for it until you learn that screwed-up pointer syntax); boolean equality, AND, OR require 2-character operators (==, &&, ||); etc.

      Not that you can keep people from learning these things forever. In fact, those that go on to being more involved in programming definitely will have to be taught something in the procedural/OO C family. But sometimes, the formal aspects of something can end up concealing the more general lessons students need to extract.

      Disclaimer: I have never written a single line of Scheme; I have only read a few brief introductions (and found it quite understandable). I have, however, been a TA for many freshmen and there are more horror stories caused by the language than you might think.

      - PeeCee

    30. Re:What do they teach in undergrad now? by jb.hl.com · · Score: 1

      I'm at college right now and learning Pascal. Tis fun.

      --
      By summer it was all gone...now shesmovedon. --
    31. Re:What do they teach in undergrad now? by telbij · · Score: 4, Insightful

      The language guranteed to fuck you up if you've by some strange chance of fate actually programmed before getting to the school. Why a school, with over 50,000 people attending (second largest in the US now) and a fairly large IT department does that is beyond me. Oh wait... no it isn't. They need to employ their crazy AI professors who bust a nut using it.


      The reason they use it is because the program is based on MIT's highly-esteemed CSCI curriculum.

      If Scheme fucked you up then you didn't really know anything about programming. LISP is a pretty questionable language for real world programming, but for the little tasks they make you do in Intro to CS it's perfect. It lets you learn about recursion and the fundamental sameness of code and data without a bunch of syntactical overhead.

      Then later when they dump you head first into C for Machine Architecture and Operating Systems you can at least write good algorithms while you grapple with pointers and memory management.

      It's a hell of a lot better then teaching kids Java's class libraries or a million magic ways to do things in Perl. A CSCI degree should not teach you things you wanted to know before, it should introduce you to all the things that make a good programmer. Study hard kid.

    32. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Not sure what they use for undergrad work in the schools, but I'm teaching a one on one programming class right now and am using Pascal. Actually using Turbo Pascal and my old undergrad books. Pascal is still great for teaching the basics.

      We'll probably move on to Python or Java later to cover more "modern" stuff.

    33. Re:What do they teach in undergrad now? by gotem · · Score: 1

      because people usualy learn more when they do something wrong and stupid

    34. Re:What do they teach in undergrad now? by legojenn · · Score: 1

      At my college, it was C++, but with no object-oriented elements until the third semester.

      --
      I make a reasonable middle-class wage by going to work and not spamming blogs with scams.
    35. Re:What do they teach in undergrad now? by rjh · · Score: 2, Insightful

      The reason why you're learning Scheme is because you're learning computer science, not programming. If you want to learn programming, go to DeVry. If you want to learn computer science, learn Scheme.

      Want Scheme to be an object-oriented language? You can make it one pretty easily, but first you have to understand the concept of closures and lexical scope. Want to learn functional programming? You can make a Y-combinator in just a few lines. Want to learn backwards-chaining declarative logic? Under 100 lines.

      The beauty of Scheme is twofold. One, it's so minimalist that by itself it's almost useless; and two, in the process of making Scheme useful, you learn a lot about the way languages are designed and why they're designed that way. I didn't truly understand exceptions until I understood Scheme's call-with-current-continuation, for instance.

      If you want programming, go to DeVry. If you want to learn computer science, stick with Scheme.

    36. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Just wondering, why is Lisp questionable for real-world programming? I mean, you certainly wouldn't want to write heavily performance-oriented code in it, but for many things Lisp can be very applicable. Take, for instance, Yahoo Store which was coded up in Common Lisp.

    37. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      My school is currently using Java as the main programming lanaguage because the school doesn't have to pay to keep it current since students can just download the lastest version.

      I had fun when I took a class in Visual Basic. The school was (and still is) using VB 6 and I was using VB .net at home. There's a bit of a difference between the version. My instructor gave me extra credit for figuring out the differences on my own. The only reason the school haven't upgraded from VB 6 is money and a two-year process to get the money approved.

      There are classes in machine language, Javascript CGI and ActiveX. C++ is indirectly taught in the program design and unix/linux classes. The numerical math course recently switched over from C++ to Java.

    38. Re:What do they teach in undergrad now? by Davorama · · Score: 1
      It's like teaching people to drive with semi-tractor trailers.

      Good idea! And while we're at it, let's move all programming classes to brainfuck.

      --

      Davo -- Free speech, free software, AND free beer.

    39. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      yeah but everyone should at least understand the concept of "type" a strong typed language should be used

    40. Re:What do they teach in undergrad now? by deiol · · Score: 1

      Well when I first started in high school 4 years back we learned Turbo Pascal. Turbo Pascal was intro and C++ was the advanced class. I did both. Then my senior year they switched languages. Intro learns Visual Basic and advanced learns Java. I retook these classes cause the teacher was a friend and let me in.

      This goes out to him:
      Java is hot Chuck!

    41. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 1, Interesting

      Unfortunately, learning to program in Pascal is like learning to drive in a go-kart.

      Much as the go-kart is a toy which was never meant to drive on public highways, Pascal is a language which was never meant to write real programs.

      Pascal, as defined by Wirth, was a mainframe batch programming language, so things like filenames and array sizes could not be defined at runtime. Your programming assignment would tell you how many elements your array would need to be, you would hard-code that in, and you would run your program. There is no way to write a function that accepts an array of any size, or a string of any size, let alone an arbitray array of arbitrary strings!

      Sure, just as you can add things like body panels and turn signals to a go-kart, any reasonable implementation of Pascal will have modern file I/O, variable-length strings, etc. -- but then it's closer to Ada than it is Pascal.

      As long as you have to extend Pascal to make it useful, why not extend BASIC to make it useful? Just get rid of line numbers and add proper lexical functions and variables -- MS did this quite successfully with VB.NET. Afterall, BASIC is much easier for beginners because it doesn't have unnecessary syntax like semicolons after certain lines, strings defined as character arrays, or other things that are confusing for newbies.

      For a better list of what's wrong with Pascal, read "Why Pascal is Not My Favorite Language", written by Brian Kernighan after trying to write some basic programming tools, such as a sort algorithm, in Pascal.

      A few of the funnier/sadder reasons:
      * a function that sorts a 10-element array cannot sort an 11-element array
      * there is no way to exit from a loop from within the body of the loop
      * there is no way for a function to remember local variables (static in C)
      * there are no bitwise operators
      * there are no cast operators, so there is no way to interperet a char as an integer, convert an integer to real, etc.

      aQazaQa

    42. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0
      Some universities teach Haskell - a functional language. It has a cross-platform, open-source interpreter/compiler. Some really cool things can be done in the language, including the 'unlimited' size Integer type, lazy evaluation and higher order functions. Of course, procedural people will probably have some trouble getting used to having no real variables and no loops.

      Some sample code to find the maximum Integer in a list of Integers:

      max :: [Integer] -> Integer
      max (last:[]) = last
      max (first:rest)
      | first > max(rest) = first
      | otherwise = max(rest)
    43. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Yeah, Scheme has been used as The Ultime Ego-Check by many universities... Helsinki University of Technology used it, and may still use. Its main purpose really is to make sure every "uber-geek" who knows a bit of C or Java gets proper reality-kick-in-the-butt. And to expand your mind, too, if you can take it.

    44. Re:What do they teach in undergrad now? by pjt33 · · Score: 2, Informative

      The University of Cambridge starts with SML, and then after a term follows on with Java.

    45. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0
      Ugh. That is both Cruel AND Unusual...

      Above is not to say language doesn't have its place (it does)... just that entry-level introductory language it ain't.

    46. Re:What do they teach in undergrad now? by vivin · · Score: 1

      The universities try to give students an experience of what is currently used in the industry. When I started college in 1999, it was Java. Prior to that, C++. However, it's up to you how many languages you want to learn. You can just stick with what they teach you at school, or you can take the initiative and go out learn more. I think it rests with the student. I knew a BASIC, C, and C++ when I started college. Java was easy to pick up. Over the course of my college career, I taught myself Perl and PHP.

      --
      Vivin Suresh Paliath
      http://vivin.net

      I like
    47. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Scheme is a great CS language for teaching concepts, but it sucks (as badly as C++, but in different ways) for an intro to programming course. Sure, it's nice that you only have to learn parentheses and spaces as syntax, but then poor newbies spend more time counting parens than they do writing their algorithms.

      Also, it requires them to think of arithmetic expressions in prefix form. We write expressions in infix, like FORTRAN and BASIC. We compute expressions in postfix, like FORTH and RPN. Nobody's used to prefix notation unless they've already studied such things.

      Scheme should be reserved for Intro to Functional Languages or AI, not Intro to Programming.

      aQazaQa

    48. Re:What do they teach in undergrad now? by shish · · Score: 1

      We have to do pascal, but having done a load of other languages I just can't stand it; all the excess verboseness like begin and end rather than {} puts me off - whereas most of the class spend a lesson doing 30-50 lines of pascal for a program, I just use 2 minutes of perl and have a 5-10 line script that does the same thing (normally better, and more readable; but then I have the advantage of having been programming for years and they're in their first weeks...)

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    49. Re:What do they teach in undergrad now? by Erik+Hollensbe · · Score: 1

      If taught correctly, Java would give you a great cursory understanding of data structures (through it's obscenely large standard library), but not actually teach you how they are implemented, leaving the "meat" for later classes.

      In other words, you are concentrating on "learning how to program", but you're getting added value that's not apparent until the later classes.

      This might be the motivation for the move to Java.

    50. Re:What do they teach in undergrad now? by strictfoo · · Score: 1

      If Scheme fucked you up then you didn't really know anything about programming.
      Hmm... interesting thought. The problem was that the program I came from was taught entirely differently than the way it was taught. While I really like the theory aspect of Computer Science, I prefered to learn the theory through heavy amounts of programming.

      Then later when they dump you head first into C for Machine Architecture and Operating Systems you can at least write good algorithms while you grapple with pointers and memory management.

      Using C for your Machine architecture class? Interesting. So, scheme good for the first two years, and then use C to study machine architecture?

      It's a hell of a lot better then teaching kids Java's class libraries or a million magic ways to do things in Perl.
      I agree. I came from a program that used C and C only. Without all the stuff that makes life easier. I've had classes which required students to use C or C++ and they're lost without their precious Java libraries.

      Study hard kid.
      Thanks, but I'm not a kid.

      --
      I've just signed legislation that'll outlaw Russia forever. We'll begin bombing in five minutes.
    51. Re:What do they teach in undergrad now? by DNS-and-BIND · · Score: 1

      Aren't computer scientists the ones who actually never write any code?

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    52. Re:What do they teach in undergrad now? by strictfoo · · Score: 1

      "A lot" is two words. You wouldn't say "alittle", would you?

      Yes, actually I would say that. I wouldn't write it though.

      --
      I've just signed legislation that'll outlaw Russia forever. We'll begin bombing in five minutes.
    53. Re:What do they teach in undergrad now? by tsq · · Score: 1

      You criticize Java as being too verbose and strict, but that's probably a good thing for some beginning programmers.

      --
      This sig is Y2K compliant.
    54. Re: What do they teach in undergrad now? by gidds · · Score: 1
      I think it depends on the language, and on what's being taught.

      C++ would be a totally stupid first language; I don't think it's suited as a teaching language at all. Even C is too finicky in many ways.

      But Java is a fairly clean language. I'm biased coz I use it a lot, but I'm quite happy with the idea of using it as a teaching language, especially for OO. Its object model is sufficiently similar to C++ &c that the general concepts it teaches will be applicable elsewhere, and its syntax and semantics are simple enough that it shouldn't cause too much head-scratching or wasted time.

      So no, I don't think there's anything wrong per se in teaching a professional language, as long as that language is suitably clear and orthogonal that the concepts being taught come over well, and other areas of the language don't interfere.

      But no course should teach just one language! I'd suggest at least one strongly-typed and one weakly-typed (e.g. a 'traditional' one and a 'scripting') language, including at least one OO language, and if there's time, a declarative language, a functional one, and some assembler as well. All of these can give valuable insight into the nature of computers, and approaches to problem-solving.

      --

      Ceterum censeo subscriptionem esse delendam.

    55. Re:What do they teach in undergrad now? by GlassHeart · · Score: 1
      If you want to learn programming, go to DeVry. If you want to learn computer science, learn Scheme.

      Because the world is full of either "scientists" who never have to write real code, and "programmers" who never have to write good code? Your oversimplification ignores all the ones who actually understand the science and can express their designs in real world computer languages.

    56. Re:What do they teach in undergrad now? by rjh · · Score: 1

      It's not an oversimplification. It's a statement: study one, or study the other; but don't study one and fool yourself into thinking you're studying the other.

      I'm a computer scientist--I'm a grad student in CS in a very theoretical curriculum. I also have a very strong background in real-world programming. So yes, speaking as someone who's done both, if you want programming, go to DeVry. If you want CS, study Scheme.

      Once you're done with one, study the other if you like.

    57. Re:What do they teach in undergrad now? by maw · · Score: 1
      Why wouldn't you want to write performance-oriented code in lisp? Compiled lisp isn't as fast as heavily optimised C, but it's close enough, and it lets you do more.

      Its real problem is that talking to the OS is harder than it should be.

      --
      You're a suburbanite.
    58. Re:What do they teach in undergrad now? by maw · · Score: 1

      You cannot be serious.

      --
      You're a suburbanite.
    59. Re:What do they teach in undergrad now? by aled · · Score: 1

      While I really like the theory aspect of Computer Science, I prefered to learn the theory through heavy amounts of programming.

      Theory is theory and practice is practice. In my university we were almost never teached any real language and when we were it was only a few lessons, exceptions were pseudocode and some assembler (for an invented architecture and x86). It was up to you to catch up on the particular language needed in each class to do the assignments. I think that helps to catch new languages more easily.

      --

      "I think this line is mostly filler"
    60. Re:What do they teach in undergrad now? by aled · · Score: 1

      I wonder what would be in your sig if Bin Laden just says he endorses Bush.

      --

      "I think this line is mostly filler"
    61. Re:What do they teach in undergrad now? by FuzzyBad-Mofo · · Score: 1

      They tried that. When I was a lad, BASIC (Beginner's All-purpose Symbolic Instruction Code) was the "teaching" language that was meant for the classroom. Since large numbers of students became familiar with the language, some foolish people decided to use it for actual work. We've been suffering from the fallout ever since.

      It was like teaching people to drive with go-karts, then trying to haul freight with go-karts since so many people knew how to drive them..

    62. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      I had BASIC in high school and Pascal later. The problem with statically typed languages (like Pascal and Java) is that beginners don't get it. They just don't understand all the variable declarations and stuff. BASIC had the advantage of being less "noisy" in that regard.. its flaw was its lack of basic modularity features and structured programming features.

      But beginners need to understand the concept of PRINT and not be distracted by the subtle difference between PrinT and PRINT. Semicolons, braces and other fluff are also distracting from the main concepts if, while, for, arrays, etc.. And the compiler?? Just complains all the time. Why not try out your program line by line?

      I think Python is a much better beginners language than Java.
      (disclosure: I teach beginning Java courses)

    63. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0
      I prefered to learn the theory through heavy amounts of programming

      Yeah.. I did heavy amounts of programming. But no amount of programming taught me about Turing Machines, whether something is computable or not, finite automata, complexity theory, big-O, tree and graph theory, number theory (for cryptography), etc...

      I think going to a University is better for those things. You can program all you like but you won't learn these things without a good textbook AND a good teacher (preferrably).


      Study hard kid.
      Thanks, but I'm not a kid.

      I'm sorry you're not a kid.. you would have been repairable.
    64. Re:What do they teach in undergrad now? by ThousandStars · · Score: 1
      My University uses Java in its CS 101 and 102 classes.

      WPI, which is down the road, also uses Java so far as I know.

    65. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0
      A few of the funnier/sadder reasons:
      * a function that sorts a 10-element array cannot sort an 11-element array


      procedure sort(var x:array of element; count:integer);

      * there is no way to exit from a loop from within the body of the loop

      for i:=0 to 20 do
      if i = 5 then break;

      * there is no way for a function to remember local variables (static in C)
      procedure foo;
      const x:integer = 42;
      begin
      if x = 0 then
      exit
      else
      begin
      dec(x);
      foo;
      end;
      end;
      * there are no bitwise operators

      x:= 42 and 69;

      * there are no cast operators, so there is no way to interperet a char as an integer, convert an integer to real, etc.

      Converting reals to integers requires calling round() or trunc(), but otherwise the casting goes like:
      var ch:char;
      b:byte;
      ...
      ch := char(b);
      b := byte(ch);
      I'm not sure when you used pascal (in the 70s maybe?) but everything you said can be done with all current pascal compilers. And, most of those abilities have been around since the early 80s. Some have always been there.
    66. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      I'll bite


      A few of the funnier/sadder reasons:
      * a function that sorts a 10-element array cannot sort an 11-element array


      I don't remember my pascal.. so I won't comment.


      * there is no way to exit from a loop from within the body of the loop


      You aren't supposed to in the pure structured programming Pascal is trying to embody. So instead you use flags. If you don't like flags, there's always goto Mr.


      * there is no way for a function to remember local variables (static in C)


      Maybe because it is a bad idea? Think multithreaded...


      * there are no bitwise operators

      don't remember.


      * there are no cast operators, so there is no way to interperet a char as an integer, convert an integer to real, etc.

      not true there are functions that do this.

    67. Re:What do they teach in undergrad now? by rsheridan6 · · Score: 1
      You can write very fast code in lisp. Check out this article about Lisp beating C++ in a number crunching oriented benchmark. Sure, someone might point out that different compilers emit faster code, and benchmarks aren't always representative. But I can think of few other languages that aren't painfully low-level that could have a success story like that.

      OTOH, fast lisp code is ugly as sin.

      --
      Don't drop the soap, Tommy!
    68. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Study hard kid.

      Thanks, but I'm not a kid.

      I'm sorry you're not a kid.. you would have been repairable.


      That's a BIT harsh, isn't it? I improved more between 19 and 22 than I did in any prior 4 years of my life, and at 24 have an excellent job doing whatever research I want at a biotech startup.

    69. Re:What do they teach in undergrad now? by rsheridan6 · · Score: 1
      I tried learning Python as my first language because Eric Raymond recommended it to newbies, and it didn't work out so well for me.. the documentation I read was of the "these are the features of the language" variety and taught very little about how to program. After going throught that, I wrote some truly horrible code that would become an incomprehensible mess at around 250 lines. I had better results with two Scheme-based books, How to Design Programs and the Structure and Interpretation of Computer Programs (both available for free on the web),

      This is not a deficiency of the Python language, rather that of the tutorial material available for it, and I may have just stumbled into the wrong books.

      --
      Don't drop the soap, Tommy!
    70. Re:What do they teach in undergrad now? by tepples · · Score: 1

      When the prevalent paradigm shifted to OOP, [Pascal] became outdated.

      What about Borland's Delphi (nee Object Pascal)?

    71. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Purdue engineering teaches programming concepts first with Matlab with C or Fortran (you get to choose, although C is encouraged) as the first "real" language. Matlab is good as a "this is a for loop" type introductory language and is common as a problem-solving tool accross all the engineering diciplines. The only real reason they still offer Fortran is (they say) that alot of nuclear and aero/astro legacy software is Fortran. The computer engineering school doesn't teach OOP (in our case Python and C++) until junior year. This is due to the fact that computer engineering focuses more on the embeddedsoftware/hardware interfacing side of programming than CS does.

    72. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      I finished my undergraduate at UIC last semester.

      The 101 class was just Javascript and HTML with some UNIX shell scripting thrown in at the end. From there it was C++ for the next few classes till you hit the 300 level where Java was introduced. You also got some assembler at that level. From there on it depended on what kinda class it was. Compiler Design was in Lex and Yacc. Software Engineering was done in Java as well as GUI Design since theyll pop out a GUI pretty easily. Operating Systems and Networking used C. Computer Vision used Matlab. AI used to be done in LISP but thats been replaced by C++. Computer Graphics was in C. Object Oriented Programming used C++ and Smalltalk. The Multimedia class used DarkBasic and has since moved to Blitz 3D for creating games. It all really depends on the class.

      However the lower level classes have switched from C++ to Java within the last year or so. The main reason is that you can get a GUI going in Java without much of an issue. Which is a lot more interesting to students then writing a bunch of command line programs. Its also prolly due to the fact that the Computer Science AP exam has gone from C++ to Java.

      The thing I have been taught is basicly if you know the semantics of programming you can really program in whatever language. Its really just identifying the syntax of the particular language. Of course some languages dont support the same features as other languages but if you know what youre trying to do its just a matter of trying to nail down the syntax then anything.

    73. Re:What do they teach in undergrad now? by Zaak · · Score: 1

      yeah but everyone should at least understand the concept of "type" a strong typed language should be used

      Python is a strongly typed language. More strongly typed than C in fact. People often think that Python is weakly typed because variables do not have a particular type associated with them. However, in Python it is the values that have types. Python variables are just names that make it convenient to manipulate those values.

      Python is strongly dynamically typed, like Lisp and Smalltalk. Other combinations of strong vs weak and static vs dynamic are shown here.

      TTFN

    74. Re:What do they teach in undergrad now? by Zaak · · Score: 1

      I tried learning Python as my first language because Eric Raymond recommended it to newbies, and it didn't work out so well for me.

      I'm sorry to hear that. It's true that some of the Python books out there are deficient. This book is good for teaching programming, but it's only been available for a couple years.

      TTFN

    75. Re:What do they teach in undergrad now? by Tablizer · · Score: 1

      Yahoo Store which was coded up in Common Lisp.

      Didn't they rewrite it all into C and PHP? Not that this means that Lisp is "bad", but it is hard to find many lasting real-world commercial cases of actual use, for whatever reason.

    76. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      University of Calgary, Alberta, Canada.
      CPSC 231 (1st year course). Took it last year. http://www.ucalgary.ca/pubs/calendar/current/What/ Courses/CPSC.htm#231
      Yup. It's Pascal.

    77. Re: What do they teach in undergrad now? by dsouth · · Score: 1
      C++ would be a totally stupid first language; I don't think it's suited as a teaching language at all. Even C is too finicky in many ways.

      But Java is a fairly clean language. I'm biased coz I use it a lot, but I'm quite happy with the idea of using it as a teaching language, especially for OO.

      To each his own. I think Java is a horrible first language for a CS curriculum. IMHO, Joel on Software has it right when he refers to it as a "pedagogical disaster". First learn the low-level stuff using C (or C++ without objects), then move on to OOP and Java after you know what a pointer is and how to tell big-endian from little-endian.

      Of course I'm biased since Stanford was doing C++, to Lisp, to Java.

    78. Re:What do they teach in undergrad now? by McSnarf · · Score: 1
      A few years back ?

      Fortran IV and 77.
      COBOL
      Two kinds of Assembler (IBM and 6502)

      Followed by a little Pascal, mostly during compiler building... (Not as a language meant for practical use, much too powerless and not productive enough for actual commercial or technical work at that time.)

    79. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0
      I knew programming before joining University. Everything went fine until I reached the Scheme course. There, I saw that, well, I didn't know that much. Scheme helped me to understand that.

      • Recursvie programming is the key.
      • Functional programming is another.
      • OOP is just a particular case of FP, therefore Scheme helped me to not be impressed by Java/C++ and co
      • Scheme can be used in a "pure" way, making it ultr simple
      • Scheme can express really powerful concept simply (think about continuation, tunks a.s.o.)
      • It's possible to love a language that no one loves :)


      Really, you should have a second look at it. Learning Scheme's way of expressing things helped me quite often to write better programs with other languages.

      (oh, and have a look at small talk too, just to see how clear it is, and to Cobol to understand what maintainability is about and a bit of ADA, for stability)

      stF
    80. Re:What do they teach in undergrad now? by Zachary+Kessin · · Score: 1

      SICP is one of the best computer science books out there. My Freshman cosi class was in scheme with that book. It was great. I think I learned more about computing in that book than in many other places. I wish I had my copy handy quite often, even if i don't use scheme very much.

      --
      Erlang Developer and podcaster
    81. Re:What do they teach in undergrad now? by julesh · · Score: 1

      I went to university at a time when my university still used Pascal as the first language. 3 years later, they switched to Java.

      One of the main reasons that was used in the anti-Pascal lobby was that they wanted a single language that could be used to teach 3 concepts: structured programming, object-oriented programming, and concurrent (i.e. multithreaded) programming.

      Also, a number of students complained about the dialect of Pascal that the university used, because it was utterly pointless. It lacked many facilities that they considered crucial in a language. You couldn't take pointers to variables on the stack, for instance. Files had to be statically named at compile time (the filename was the same as the name of the variable that was used to declare them!). There was no provision for breaking projects into multiple modules (actually there was; the compiler passed the source through the C preprocessor before compilation, but the lecturer specifically banned the use of this function).

      There were suggestions for one of the Modula-* languages (I forget which), and when the Ada-95 spec was released, I think a few people considered that. But Java became popular at about the same time, so from that point on the eventual outcome was inevitable.

    82. Re:What do they teach in undergrad now? by SenseiLeNoir · · Score: 1

      I am developing a system that handles £2 billion grants, and manages the entire process and maintenance.

      Its written in delphi, interfacing to an Oracle database. Delphi IS the ideal langauge for this... the probelm is the previous developers are ex-vb monkeys, who knew NOTHING about oop, and created a mess.. the first few months on the job seems like "polishing turd"

      --
      Have a nice day!
    83. Re:What do they teach in undergrad now? by Larsing · · Score: 1

      "A lot" is two words.


      No, it isn't. And it's spelled "allot". English spelling doesn't make sense, never has and never will, so stop trying to make it...


      --
      Ethics is what you say you do. Morals is what you actually do.
    84. Re:What do they teach in undergrad now? by Viol8 · · Score: 1

      "isn't as fast as heavily optimised C, but it's close enough, and it lets you do more"

      Really? I'd just love to see you write a device driver (or frankly anything low level) in Lisp then.

    85. Re:What do they teach in undergrad now? by Bitsy+Boffin · · Score: 1


      Does anyone remember all the programming books that used to be aimed at kids?


      Yep, I had a few of those, I can't remember the titles, I want to say "Byte Brothers" or something like that. Kids "whodunnit" books where they used BASIC computer programs (source provided :-)) to solve the problems. Probably still have one or two in a storage carton somewhere if I looked hard enough.

      That was of course in the 80's when exposure to BASIC was almost a given if you used a computer at all. Good luck finding books like that any more (or kids interested in reading them -- "ooooh, shiny PS2, much more interesting than boring typing").

      It's kinda sad now how kids never get exposed to programming unless they take the initiative.

      --
      NZ Electronics Enthusiasts: Check out my Trade Me Listings
    86. Re:What do they teach in undergrad now? by alexo · · Score: 1


      > What about Borland's Delphi (nee Object Pascal)?

      That was never meant to be a teaching language.
      Modula-3 was but it never took off.

      Personally, I think that smalltalk is the right language to teach OO concepts.

    87. Re:What do they teach in undergrad now? by ramunas · · Score: 1

      Well in the University of Latvia they last year switched from Pascal to C++, I was one of those lucky people who still recieved their Computers and Programming as well as Basic Structures in Pascal.

      --
      ./R My blog
    88. Re:What do they teach in undergrad now? by lifeblender · · Score: 1

      It's true that you can learn about data structures from Java. The problem is that you can't learn about data structures from Java during your first-ever exposure to the fundamentals of computer programming. You can't grasp the elegance of classes and such when you are just beginning to learn for loops, function calls, the difference between variable passing methods, how to write complicated boolean expressions, and how variable names scope throughout a program. Those fundamentals IMHO need to be learned separately and thoroughly before getting into classes, multiple files for a project, and inheritance. Java makes that 'primer' section of learning fairly tough, and if a professor tries to forge ahead without it, students (like my brother at UTD) will be lost. I would suggest Python as a good language to instruct students in such fundamentals of programming, and Haskell if I could sneak it in.

      --
      Playing pornographics games during the day is evil! Play at night!
    89. Re: What do they teach in undergrad now? by Just+Some+Guy · · Score: 1
      virtually assuring that schools turn out a mass of BS's who are monolingual in whatever language industry just quit using.

      What crap schools have you been hanging around? I graduated from the small CompSci college of a large state university and had to be fluent in C++, ML, 68k and x86 assembler, Mathematica, and a couple of invented languages to get through the core curriculum (plus Java for an optional class). Granted, it was a very highly rated small-college-of-large-state-U., but it's not like we're talking about Caltech or MIT.

      If your school graduates students who only know one or two languages (and those being the industry favorites du jour), then your school sucked. Sorry 'bout that. I hope the diploma at least got your foot in a door or two.

      --
      Dewey, what part of this looks like authorities should be involved?
    90. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      Most recent grads I have encountered on the job are 100% taught in Java, in particular, no assembly language. They are very timid about learning another language.

    91. Re:What do they teach in undergrad now? by easter1916 · · Score: 1

      Oh, and dBASE II... REXX too, I *think*.

    92. Re:What do they teach in undergrad now? by scruffy · · Score: 1
      Probably most intros are Java nowadays. Java is also the High School AP language here in the good old USofA.

      I think the first language should be a simple language without many constraints or strange syntax. It should be useful to the student even if one CS course is all the student takes. Not exactly many candidates here, but it would be nice.

      Follow up courses can bend the students' minds however way they wish. Java is about as good as anything else. It helps you put together large, structured programs about as well as any other language.

    93. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0

      allot is a different word, not to mention a different concept from "a lot".

    94. Re:What do they teach in undergrad now? by Moderatbastard · · Score: 0
      semi-tractor trailers.
      Note to Rightpondians - that's "articulated lorries" in your limey parlance. Er ... old chap.
      --
      1/3 of jokes get modded OT. If you get the joke, mod 1 in 3 insightful/interesting/underrated to restore karma balance.
    95. Re:What do they teach in undergrad now? by Anonymous Coward · · Score: 0
      there is no way for a function to remember local variables (static in C)
      Maybe because it is a bad idea? Think multithreaded...
      Perhaps, but having functions/procedures noncing around with globals is usually a worse one.
  5. Shell sort by mishan · · Score: 1

    When it comes to primitive sorting algorithms, your time would have been better spent implementing a fibonacci sequence spaced shell sort.

    1. Re:Shell sort by Jouser · · Score: 1

      I sure wish I was as smart as you and knew all the good mathematical/sorting buzzwords. Maybe this is why I can't get a job...

    2. Re:Shell sort by turgid · · Score: 1

      Just get a good algorithms book. The "Algorithms" books by Robert Sedgewick are often used in undergraduate courses, but this one is more comprehensive and I've seen it on a Real Programmer's desk...

    3. Re:Shell sort by Anonymous Coward · · Score: 0

      We use the Sedgewick book for the intro level, and the one you mentioned for 3/4th year course.

    4. Re:Shell sort by Anonymous Coward · · Score: 0

      I've never used bubble sort and I never will.

      One of my professors threatened to hunt down and kill any of us that did...

  6. Niklaus Wirth by Black+Parrot · · Score: 5, Funny


    "Europeans call me by name, Americans by value."

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re:Niklaus Wirth by Brandybuck · · Score: 1

      I always called him green...

      --
      Don't blame me, I didn't vote for either of them!
    2. Re:Niklaus Wirth by dprovine · · Score: 4, Interesting
      "Europeans call me by name, Americans by value."

      The version of this story that Niklaus Wirth told me (via e-mail) is that it happened when he was presenting a paper in New York in 1965. He was introduced by Aad van Wijngaarden as follows:

      And now I introduce to you a man who is a European and lives in America. Back home he is known and called "by name", pronounced as "Weert", but here he is called by value, pronounced as "Worth".

      Wirth considered an excellent pun, but he doesn't take credit for it.

    3. Re:Niklaus Wirth by Tired+and+Emotional · · Score: 1
      That's a decade earlier than I first heard it said of him by, I think, Anthony Tobias at a languages symposium in Auatralia. His version was "someone who can be called by name or by value".

      There are probably many /.ers who have no idea what call by name means so here is a potted description.

      In Algol 60, parameters could be passed by value or by name. Pass by name made subroutines look like macros, so the semantics were obvious - just textual substitution.

      Call by name was achieved by generating a thunk for a parameter - a piece of code that evaluated the parameter each time you needed it. This is the origin of the workd thunk, that has since been purloined for things that are clearly not thunks.

      With call by name you could pass in an element of an array (a[i] say) and have the element change by changing the value of the global i inside the routine. This was called Jensen's device.

      (Thus ends this lecture from programming languages 201)

      --
      Squirrel!
    4. Re:Niklaus Wirth by Tired+and+Emotional · · Score: 1

      Ooops - that should be Jeffrey Tobias

      --
      Squirrel!
    5. Re:Niklaus Wirth by say · · Score: 1

      Ah. That's the reason for QB and VBs incredibly strange "ByVal". I've always wondered why you ever would want to pass the variable itself into a function. In QB and VB, it does so by default. It is horribly error-prone.

      --
      Roses are #FF0000, violets are #0000FF, all my base are belong to you
    6. Re:Niklaus Wirth by Tooky · · Score: 1

      Well strictly speaking, java always passes by value, it just so happens, for things that aren't basic types, that the value passed is a reference.

  7. Let me be the first to say... by GillBates0 · · Score: 4, Funny

    program Anniversary;
    begin
    writeln ('Happy 30th Anniversary Pascal. You roxxorzz');
    end.

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
    1. Re:Let me be the first to say... by spongman · · Score: 2, Interesting

      MODULE HappyBirthday;
      FROM InOut IMPORT WriteString,WriteLn;
      BEGIN
      WriteString("Happy Birthday, Dad!");
      WriteLn;
      END HappyBirthday.

    2. Re:Let me be the first to say... by drxenos · · Score: 3, Insightful

      Or, if you really want to get anal:
      program Anniversary (OUTPUT); {* define file used *}
      begin
      writeln ('Happy 30th Anniversary Pascal. You roxxorzz') {* semicolon not need before end *}
      end.

      --


      Anonymous Cowards suck.
    3. Re:Let me be the first to say... by shish · · Score: 2, Insightful
      semicolon not need before end

      So encourages my teacher, but why? if you want to add a line afterwards, you'll need to add in a semicolon or face unexpected error messages - why not just put it there in the first place?

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    4. Re:Let me be the first to say... by rxmd · · Score: 1
      Or, if you want to get really anal:
      { No need to put asterisks inside curly braces }
      program Anniversary (OUTPUT); { define file used }
      begin
      writeln ('Happy 30th Anniversary Pascal. You roxxorzz') { semicolon not needed before end }
      end.
      --
      As a state gets corrupt, its laws multiply; the most corrupt states have the most numerous laws. (Tacitus, Annales 3:27)
    5. Re:Let me be the first to say... by tntguy · · Score: 1

      Modula this guy up!

    6. Re:Let me be the first to say... by cpghost · · Score: 1

      Even more nitpicking:

      (* curly braces were not part of the ISO standard *)
      program Anniversary (OUTPUT); (* define file used *)
      begin
      writeln ('Happy 30th Anniversary Pascal. You roxxorzz') (* semicolon not needed before end *)
      end.
      --
      cpghost at Cordula's Web.
    7. Re:Let me be the first to say... by trash+eighty · · Score: 1

      thats what most people do anyway

    8. Re:Let me be the first to say... by Reziac · · Score: 1

      Geez, "Birthday" is only up to v2.0, and already it's bloatware ;)

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    9. Re:Let me be the first to say... by julesh · · Score: 1

      (* BANGS HEAD AGAINST DESK *)

      No!

      (this line to counter lameness filter)

    10. Re:Let me be the first to say... by Anonymous Coward · · Score: 0

      (* curly braces were not part of the ISO standard *)

      Wrong. Curly braces most definitely were, and still are, part of both ISO Pascal standards in existence, which you can check yourself in section 6.1.10 of ISO 10206:1990, or section 6.1.8 of ISO 7185:1983.

    11. Re:Let me be the first to say... by drxenos · · Score: 1

      Unlike C where a semicolon is used to separate statements, in Pascal it is used to end statements. Keywords such as else and end are not statements and thus the statement before them do not require one.

      --


      Anonymous Cowards suck.
  8. Bah! by Anonymous Coward · · Score: 0, Funny

    Any project without line numbers is not a *real* project!

    These kids today...

    1. Re:Bah! by Big+Mark · · Score: 4, Funny

      Flippin' middle-agers and their line numbers, back in the days of fortran we had whitespace-sensitive code and we were grateful for what we had!

    2. Re:Bah! by slars · · Score: 1

      Yeah, and what about the "goto"s - ya gotta have a goto!

    3. Re:Bah! by Anonymous Coward · · Score: 0


      And now you can have it again, if you want to subject yourself to Python.

    4. Re:Bah! by The+I+Shing · · Score: 1

      Bah, back in my day we didn't have Pascal or Pasquale or whatever you call it. We ran the whole space program using a couple of monkeys, an abacus, and a coat we borrowed from James Dean. We didn't even have spacesuits. All we had was thermal underwear made out of lemon peels, and Vice President Sinatra personally pulled the string that launced us into space. Spacesuits and software, flibby floo!

      --
      You are in error. No-one is screaming. Thank you for your cooperation.
    5. Re:Bah! by Anonymous Coward · · Score: 0

      "back in the days of fortran we had whitespace-sensitive code and we were grateful for what we had!"

      and thanks to python, we still have it !

    6. Re:Bah! by pesc · · Score: 1

      back in the days of fortran we had whitespace-sensitive code and we were grateful for what we had!

      What are you talking about?? Back in my day, I had whitespace- in sensitive code in my FORTRAN programs. Yeah, that's right, you didn't have to include any spaces at all in the code. In fact, the parser first removed all spaces, THEN parsed it.

      C Loop from 1 to 10
      DO10I=1,10
      C Set variable DO10I to 1.10
      DO10I=1.10

      And a good old FORTRAN don't need you to declare variables either! If it begins with a D it's a float. And we were grateful!

      --

      )9TSS
    7. Re:Bah! by rewt66 · · Score: 2, Informative
      You sure ought to be grateful! My mother (yes, my mother) was a programmer in the 1950's, writing flight simulations for missiles, and working (among other places) at JPL. When she began working, she wrote in octal. She was grateful when she got an assembler!

      Writing numerical code in octal - I just can't begin to imagine how much talent that took.

    8. Re:Bah! by Anonymous Coward · · Score: 0

      back in the days of fortran

      Fortran is alive and kicking, at least in the embedded world. It has decades old unequalled ( in speed, small size, and thoroughness of debugging) optimized math libraries.

    9. Re:Bah! by bcrowell · · Score: 1
      Whitespace -- oh, I get it, like when you punch holes in the punched card, the holes are kinda black, right, but the rest of the card is sort of white? Is that what you meant?

      I'm not clear on what you mean by "line numbers," though. Like, right now as I'm card-punching this post, I do each line of my post on a separate card, and then I feed them in the reader in order. So are you saying, like, the first card is #1, and so on?

  9. Pascal was good in... by A+beautiful+mind · · Score: 3, Insightful

    ..helping to get the basics before starting to learn c. Quite nice language, although not the best, but ive seen even an operating system in freepascal ;)

    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
    1. Re: Pascal was good in... by Black+Parrot · · Score: 1


      > ..helping to get the basics before starting to learn c.

      It was explicitly designed as an instructional language, to help (or force) beginners to get into some good habits before being turned loose in the jungle of real-world IT.

      --
      Sheesh, evil *and* a jerk. -- Jade
    2. Re: Pascal was good in... by Anonymous Coward · · Score: 0

      Funny you mention "good habits" from Pascal. I am now Java programmer, with backgroun in C /C++. There a few of those "good habits" I use in these other langauges:

      1) Braces....I hate begining braces on the same line like
      if (foo) {
      }

      I was always used to
      If(foo)
      begin
      end

      thus in Java/C/C++
      if(foo)
      {
      }

      2) NEVER have more then one return from a method(function). I detest the people that have 1000 line methods with several exit points. When dealing with Pascal, "One entry point, One exit point"

    3. Re:Pascal was good in... by bot · · Score: 1

      HP's MPE Operating System was in a dialect of pascal (Modcal).

    4. Re: Pascal was good in... by Anonymous Coward · · Score: 0

      That brace convention is painful. Not only does it waste space (I remember, we all eventually wrote our pascal programs with `if (...) begin' on one line.), but it can lead to semicolon sleight-of-hand, which is the most annoying thing ever.

      The rule 2) you mention is kind of like the other rule they hammered into me: that "break" statements are BAD. It's not as ridiculous a dogma as that, but it's pretty close. It's just of no use, ever, to spend even 5 minutes joggling some extra blocks into your program to avoid those `evil' breaks. Temp variables are for the weak!

  10. 30th anniversary... by mwheeler01 · · Score: 4, Funny

    Hmmm and D&D just turned 30 too... coincidence?

    --
    Pretty widgets? What pretty widgets?
    1. Re:30th anniversary... by Nom+du+Keyboard · · Score: 4, Funny
      D&D just turned 30 too... coincidence?

      Only if the right brain didn't know what the left brain was doing at the time.

      --
      "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    2. Re:30th anniversary... by Anonymous Coward · · Score: 2, Funny

      Okay, show of hands. How many people's first program was a character sheet generator?

    3. Re:30th anniversary... by Anonymous Coward · · Score: 0

      Heh. Yeah. I bet it was some good stuff. Wonder where I can get some.

  11. Those memories may be distorted by EriDay · · Score: 3, Interesting

    After spending a few years programming in C, I took a job programming in Pascal. I figured that it was just a matter of replacing {} with begin/end, and '=' with ':='. Boy was I wrong.

    Sometimes you need a hack, and Pascal's purpose in life it to prevent those convient little hacks.

    1. Re:Those memories may be distorted by hsoft · · Score: 1

      name your hack. you can do pretty much everything with pascal (well, I only know object pascal...)

      --
      perception is reality
    2. Re:Those memories may be distorted by artakka · · Score: 1

      I was also planning to switch to Pascal, but I read somewhere that Real Programmers Don't Use Pascal

    3. Re:Those memories may be distorted by DaWorm666 · · Score: 1

      > Sometimes you need a hack, and Pascal's purpose in life it to prevent those convient little hacks.

      Which is why I like it. It is readable and maintainable. I've done my share of those hacks (ever program in Echelon's Neuron C for a processor with 256 BYTES of memory total?) but inevitably I have to figure out just what I did when I go back and look at that code later (even with extensive comments).

      In Pascal, you can still do some of those odd things, but you have to explicitely spell out what you are doing. Only in a very few instances is the code less readable than the C version (interpreting Windows API multi-z strings is one).

      Yeah, it's more typing the Pascal way, but most people can't really parse things like a = ? b : c in their heads. (Yeah, a real geek thinks that way, sure, right - A real geek makes his life easier, not harder!)

    4. Re:Those memories may be distorted by Makarakalax · · Score: 1

      a = ? b : c

      Is that really legal c? What does the ternary operator operate on?

    5. Re:Those memories may be distorted by CodeArtisan · · Score: 1

      If you need to hack, try Modula 2 (Pascal's younger brother). I have used it, with some success, even in embedded apps.

    6. Re:Those memories may be distorted by neonstz · · Score: 1
      Yeah, it's more typing the Pascal way, but most people can't really parse things like a = ? b : c in their heads.

      Neither can most C compilers.

  12. ouch! by DeepFried · · Score: 2, Insightful

    Am I the only one who felt _really_ really_ old when I read that. What have I done with the last 30 years of my life?

    --


    Who is General Failure, and why is he reading my hard disk?
    1. Re:ouch! by arivanov · · Score: 1

      Not just you. Me too. But after that I remembered that the 30 years was of Virt's pascal which was pure, but unusable (no wonder people continued to use algol and fortran). Me and many others learned pascal in its borland meaning which even in its 1.0 incarnation had some relaxations from the original academic stiff neck standard. By 3.0 it was useable for large projects and by 5.0 it was one of the best commercial rapid development languages ever developed. Unfortunately Borland never really understood the importance of windows. Otherwise we would have all been programming in pascal now, not C++. 1.0 for Windows was shit, Delphi was double shit, Delphi 2.0 was quadruple shit and from there on it just went down the drain...

      --
      Baker's Law: Misery no longer loves company. Nowadays it insists on it
      http://www.sigsegv.cx/
    2. Re:ouch! by Fred_A · · Score: 4, Insightful

      I didn't feel old, I've just been young longer than most /. readers.

      --

      May contain traces of nut.
      Made from the freshest electrons.
    3. Re:ouch! by samjam · · Score: 5, Insightful

      Borland Pascal for Windows may have been a bit freakish but I don't see how you can say Delphi is or ever was.

      I used Turbo Pascal for DOS to write real-mode device drivers that loaded before windows did that communicated and made callbacks to windows applications written in Delphi (using the DPMI 0.9 API)

      There really was nothing that could not be done or hacked with Turbo Pascal (and assembly) and Delphi (and more assembly as needed).

      Borland DID get windows, more than MS did.

      None of MS widget wrappers around the raw windows API compare in any degree to Borlands excellent VCL (Visual Class Library) that encapsulated and extended windows in a most wonderful way.

      I've seen people program in Delphi who only know how to program in C and it looked like it. Ugly, nasty code.

      I've seen Delphi code written by people who understand object Pascal and it is a dream to behold. (I've done some good stuff too).

      The reason Delphi didn't catch on enormously is partly to do with it not being a cross platorm language (object pascal I mean) butmostly for the same reasons smalltalk, scheme, EISA and so on didn't catch on. I wish I knew what that reason was.

      Sam

    4. Re:ouch! by Anonymous Coward · · Score: 0

      Read Slashdot?

    5. Re:ouch! by jawtheshark · · Score: 1
      "Virt's pascal"

      That would be Wirth. Also see his "official homepage" My first year CS was Oberon... A Pascal derivate. :-)

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    6. Re:ouch! by Anonymous Coward · · Score: 0

      Yes, Borland got Windows programming better than Microsoft did. When COM came out, Delphi 3 arguably provided the slickest, easiest-to-program implementation of it at that time.

      I'm saving my spare change for Delphi 9.

      Except for the if...then...else structure (why it can't have a "terminator", i.e., end if or whatever, is beyond me...), I would argue that Java is a lot closer to Delphi than C++ is to Java...

    7. Re:ouch! by imsabbel · · Score: 1

      One other thing i remember from usind delphi 4:
      On a pentium 133, after a click on "compile", it took 1-2 seconds to compile 100.000 lines of code. Sure it wasnt optimizing a lot, but it was like using a interpreted language. Just change something and run...

      --
      HI O WISE PRINCE. WHT TOOK U SO DAM LONG?
    8. Re:ouch! by FireAtWill · · Score: 4, Insightful

      The reason Delphi didn't catch on enormously is partly to do with it not being a cross platorm language (object pascal I mean) butmostly for the same reasons smalltalk, scheme, EISA and so on didn't catch on. I wish I knew what that reason was.

      I think the reason Delphi hasn't become mainstream is the same reason many other excellent products haven't. Microsoft cloned it with VB and kept just close enough behind that it was acceptable to choose the un-FUD'd development environment.

    9. Re:ouch! by mcguirez · · Score: 1

      Yes!

      Now where are my mod points when I need them.

      +1, insightful [sorry honorary points only]

      --
      When you hear hoofbeats, think horses, not zebras
    10. Re:ouch! by Anonymous Coward · · Score: 0

      The reason Delphi didn't catch on enormously is partly to do with it not being a cross platorm language (object pascal I mean) butmostly for the same reasons smalltalk, scheme, EISA and so on didn't catch on. I wish I knew what that reason was.

      Because they suck?

    11. Re:ouch! by Anonymous Coward · · Score: 0

      > I wish I knew what that reason was.

      Maybe stupid C trolls saying Pascal is for girlies?

    12. Re:ouch! by sproketboy · · Score: 1
      The main reason those languages did not catch on is because they came from academia instead of from business. All the successful languages made it for concrete business reasons.
      • Sucessful: COBOL - Business language - sort of cross platform (for the 70s anyway) C - High performance, Cross platform. BASIC - Retardedly easy for retards. C++ - OOP, Cross platform. Java - Write once etc..
      • Not successful: Pascal - Oooh the elegance of structured programming. Smalltalk - Oooh the elegance of object oriented programming.
    13. Re:ouch! by Junks+Jerzey · · Score: 1

      I think the reason Delphi hasn't become mainstream is the same reason many other excellent products haven't. Microsoft cloned it with VB and kept just close enough behind that it was acceptable to choose the un-FUD'd development environment.

      Incorrect. Visual Basic was first, originally released in 1991. Delphi came ~3 years later. Of course Delphi was based on Borland's earlier Pascal products, but the GUI-building part of it was new with Delphi (unless you are counting Borland's text-only TurboVision stuff).

    14. Re:ouch! by dapyx · · Score: 1

      Much of the OOP in Delphi was based on the TurboVision, but the greatest breakthrough with Delphi was VCL.

      --
      I'm sorry, the number you have dialed is an imaginary number. Please rotate your phone 90 degrees and dial again.
  13. I liked Pascal by samberdoo · · Score: 1

    It was one of the best teaching languages before OO took hold. For me it was much better than scheme or lisp type languages which were also popular at the time. I still remember the Pascal-like stuff in the original windows api.

  14. ah pascal by drivers · · Score: 2, Interesting

    I always did think that Pascal's notation for pointers and dereferencing was more intuitive than C and therefore less confusing for teaching algorthms and data structures. It also didn't let you write out of bounds of arrays. Good stuff.

  15. Delphi (ObjectPascal) rules. by Franciscan · · Score: 5, Interesting

    I use Pascal all day, every day. I laugh myself sick thinking how much time my C++ developer friends waste on stuff that takes days in ATL/MFC/C++ that I can do in a few seconds in Delphi. DCOM servers, GUI programming, reusable components, these are all a pain in the butt with C++. Okay, C# and Dotnet are almost as powerful as Delphi, but they have a huge runtime (like java). For my money, nothing can touch Delphi/ObjectPascal/VCL for efficiency, productivity, quality, easy deployability with NO DLL HELL and no runtime installation issues.
    WP.(Franciscan)
    (P.S. I never ever shipped any app with the BDE in it. That, and the Database Desktop, are the crappiest things ever to come out of Borland. They are still in the latest native Win32 version of Delphi, Delphi 7, but at least you don't ever have to use them.)

    1. Re:Delphi (ObjectPascal) rules. by kisrael · · Score: 1

      Okay, C# and Dotnet are almost as powerful as Delphi, but they have a huge runtime (like java)
      I don't know a ton about Pascal, but I do know a lot of people who were taught C then picked up Java are surprised to realize portable P-code predates the idea of JVM in terms of transportable byte code...

      --
      SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
    2. Re:Delphi (ObjectPascal) rules. by hh1000 · · Score: 3, Interesting

      Delphi Rocks! But Borland's managment just doesn't seem to get it. Go over to the Borland news server and there is a sense of misery and frustration over the way Borland handles this product and it's sibling Kylix.

    3. Re:Delphi (ObjectPascal) rules. by ahfoo · · Score: 1

      Yeah, I tend to lean on the Pascal implementation in Macromedia Authorware. I actually use it to script the process of writing bash scripts. I know it sounds bass ackwards but it's so familiar from previous work that I can't resist. I can get a lot of work done fast that way.
      I've been told previously here on Slashdot that the Pascal implementation in Authorware is quite similar to what was in the original Mac.
      I've also read that BASIC is really just a derivative of Pascal and VB even more so.

    4. Re:Delphi (ObjectPascal) rules. by killjoe · · Score: 4, Interesting

      Yes Delphi rocks. It's another one of those great technologies that should have ruled the world but didn't.

      FYI there are attempts to make an open source version of it using freepascal. I have never tried them but I'd be interested in the experiences of anybody who has.

      --
      evil is as evil does
    5. Re:Delphi (ObjectPascal) rules. by Kr3m3Puff · · Score: 2, Interesting

      I agree about the showing off to VB and C++ developers that have to deal with MS crap... I can run circles around them, and I use Delphi just for personal coding.

      I also agree BDE SUCKS, I have long used Allround Automations Direct Oracle Access for database access. That rocks, fully integrating the OCI drivers easily into your application and it there is a Kylix and Delphi version as well as I am sure a .NET version won't be too far behind for Delphi 2005.

      --
      D.O.U.O.S.V.A.V.V.M.
    6. Re:Delphi (ObjectPascal) rules. by jgrahn · · Score: 1
      I laugh myself sick thinking how much time my C++ developer friends waste on stuff that takes days in ATL/MFC/C++ that I can do in a few seconds in Delphi.

      Uh, that has more to do with MFC than the C++ language, I would think. I have never heard anything but bad things about MFC, and I've only heard praise for whatever GUI/frameworkish thingy Delphi has ...

    7. Re:Delphi (ObjectPascal) rules. by Franciscan · · Score: 1

      Actually, it's the lack of introspection and reflection capability in the language and the compiler, that creates the brain-dead class libraries (MFC, ATL, et al), that creates the poor overall developer experience.
      So, yes, it is the language, and the class libraries, and everything else. It all matters.
      W.P.(Franciscan)

    8. Re:Delphi (ObjectPascal) rules. by RogerWilco · · Score: 1

      The only thing better as Delphi is Borland C++Builder*,
      which can do all the things Delphi can, and use the C++ bonus when needed (multiple inheritance, templates, function call overloading, low level stuff)
      They should dump the BDE, although the idea was nice.

      *) I have no experience coding Java or C#, they are possibly better,
      this actually is a limited comparison between Delphi and C++Builder.

      --
      RogerWilco the Adventurous Janitor
    9. Re:Delphi (ObjectPascal) rules. by codewritinfool · · Score: 1

      Although not all day, I also use it every day. You're right about the BDE. It sucks. For simple stuff I use Topaz (it compiles right in) and for bigger stuff I use TMySQL.

      I have Delphi 7, but still prefer Delphi 5 because it is rock-solid. Can't wait for Diamondback!

      Paul

    10. Re:Delphi (ObjectPascal) rules. by sapped · · Score: 1

      Amen to that. I was an avid Delphi developer right up to version 5 at which point the whole Inprise/Borland/"We don't know which direction we are going" thing finally got to me. Since then I have not had a nice programming language lying around to manipulate files and code up quick utilities. I tried Java a few times but after puking my guts out for the last time I am now happily moved along and settled into Python.

      Borland can shove Kylix at this stage. They burnt up all my goodwill and then some.

    11. Re:Delphi (ObjectPascal) rules. by Anonymous Coward · · Score: 0

      Modern C++ libraries do not have that problem. Here's one.

    12. Re:Delphi (ObjectPascal) rules. by Anonymous Coward · · Score: 0

      I'll challenge you to a development competition.

    13. Re:Delphi (ObjectPascal) rules. by atam · · Score: 1

      There is also an open source project for the cross-platform clone of VCL and IDE at the Lazarus Project.

    14. Re:Delphi (ObjectPascal) rules. by Dun+Malg · · Score: 1
      I laugh myself sick thinking how much time my C++ developer friends waste on stuff that takes days in ATL/MFC/C++ that I can do in a few seconds in Delphi.

      You can do the same thing with Borland C++ Builder. Plus you don't have to depend upon dreadfully picayune selection of modifiable source code if you want to (say) use a particular implementation of blowfish encryption.

      --
      If a job's not worth doing, it's not worth doing right.
    15. Re:Delphi (ObjectPascal) rules. by nimblebrain · · Score: 1

      Still use it every day here as well. I've always found it the best compromise between speed of development, type safety, power, and ease of finding easy-to-grab components for everything from GIS to on-screen gauges to internet suites. Thumbing around Torry's or efg's Computer Lab provides a nifty, but very small, sampling of what's out there.

      I'm actually pretty glad to see it's catching on again. We just attended the Delphi Diamondback/2005 roadshow, and I was impressed at the number of folks there compared to what I've seen in past years. Things are starting to pick up at the user group as well. I'll be demoing AQTime from Automated QA, a freakishly fantastic product for the price (from a corporate view, anyhow ;)

      I've been actually not been terribly compelled to upgrade from Delphi 5 as a development platform. Not that later versions haven't been good, but the upgrades have been mostly in areas I'm not doing anything in, like the n-tier and web pieces.

      We always upgrade one copy, though, and I attend conventions as I can. When Delphi for .NET came out, I was pretty seriously impressed. They put a lot of care and attention into making sure that ports from Win32 would be as painless as possible, but to let you go off and start off with native .NET and the FCL. Took less than a week to port my framework, and most of that was learning .NET idioms (like Finalize, strings being copy-on-modify, creating weak references).

      You're often at the mercy of your component vendors, though, so if you were one of those that thought that the quality of the component code didn't matter as long as it worked... the pointer-trick and copy-and-paste coder segment will fall on tough times :)

      Quite frankly, porting code, the trouble spots are basically:

      • Third party components
      • String tricks (given that .NET's strings are almost over-protected, and that they are WideStrings by default
      • API calls

      Delphi 9, or Delphi 2005, as they're calling it, is the first compelling upgrade I've seen for folks like me, who spend a lot of time in the class interface design, source code and unit testing arena.

      Delphi 2005 hosts three environments, Delphi/Win32, Delphi for .NET and C#. A lot of Delphi 8's language enhancements have made it into the Delphi/Win32 side, such as enumerator syntax (for MyString in MyStringList do...). The editor, at last, does a number of the refactorings that the JBuilder crew has had access to, such as Extract Method and a smart Declare Variable (e.g. X := MyControl.Parent will suggest TWinControl). The folding editor has a number of tricks up its sleeve, and a number of file backups are maintained which you can diff inside the environment, helpful if you run into troubles more granular than your version control system's checked-in versions. Nice to see some of the integrated tools and projects as well. New->Unit Test will give you DUnit (for Win32) or NUnit (for .NET) shells, and there are a ton more bits 'n' pieces I haven't had the opportunity to play with (the ASP.NET projects are pretty smooth).

      Kylix was a bit before its time, really. Linux is such a freakishly fast-changing environment (as I sit here in my Fedora Core partition in utter awe of what yum says I must also update to update some of the major package around - gah!), and there isn't enough corporate-level interest in easy GUI programming for Linux to fund keeping up with it.

      I got Kylix 2, and personally found it pretty good for porting, and a fairly decent environment (it used WINE, although apps made with it did not), although seamless it

      --
      Binary geeks can count to 1,023 on their fingers :)
    16. Re:Delphi (ObjectPascal) rules. by master_p · · Score: 1

      The problem with C++ is the libraries you are using, not the language itself. ATL/MFC sucks. Why don't you try Qt?

      I see that most people blame the language (in this case, C++) for the environment it runs into. It is a sad thing, because actually C++ has the most powerful language constructs between mainstream languages. Try boost, for example. You can even do functional programming with it.

    17. Re:Delphi (ObjectPascal) rules. by Franciscan · · Score: 1

      First let me agree with you on somethign: Qt is the best class library out there for C++ period.

      If I needed portability to Linux and Windows, I'd buy a QT license, and use QT. QT can go to Solaris/Sparc, or IBM AIX for instance, and Delphi/Kylix can't.

      [DreamerMode:On]
      What I dislike about Qt is Moc. I think Moc is great in one sense, because it shows you exactly what should be built into the C++ language to make it better. Secondly, I think that a massive redesign of C++ compiler cores is needed, to address compilation-time issues in a more radical fashion than the lame and broken "precompiled header" schemes that I always have to turn off in order to get things to work.
      [DreamerMode:Off]

      In conclusion, while I respect C++ as a technology, and I respect QT, and all that, I think it's weird that companies choose to harm themselves by going with C++ if they don't need what C++ gives them, and they throw away what Delphi could give them, things that they really could use, like getting it done faster, and having something nicer and more functional when you're finished.

      Bjarne Stroustrup never had to write a forms-based GUI application in his life, or C++ would have been radically different, more like Objective-C, which is really cool, but even more obscure than Delphi/ObjectPascal.

      Such is life.
      Regards,
      W.P. (Franciscan)

    18. Re:Delphi (ObjectPascal) rules. by master_p · · Score: 1

      Yeah, I agree with you, and you should have been modded higher.

      I disagree about the MOC though. It is invisible to the process of compilation, and it is needed so as that the user does not have to manually type all those pieces of information.

      I once sent a long e-mail to Stroustrup about C++ and what it needs to regain its status in the programming world. He replied (as he always does), he was kind enough, but he totally fails to see where things are going application-wise).

      So we have ended up with one language (C++) that has very nice language features like templates, multiple inheritance, operator overloading but nothing else, and with another languag (Java) that has everything C++ does not have (garbage collection, a huge library, a distributed app platform) but nothing of what makes C++ useful. If only these two languages were united! Delphi falls somewhere in between, failing to catch market share from both.

      Indeed, such is life.

  16. AP language? by ssummer · · Score: 1

    I remember learning Pascal in high school for my AP (advanced placement) computer science class. If I remember correctly, the final exam was based around that language. Are they still using Pascal for the test?

    1. Re:AP language? by dangineer · · Score: 1

      I also took that class and did all the sorts (instertion, bubble, etc.)

      Fond memories...I also wonder what they use now both in terms of software and hardware...I don't think it would hurt to start out using TRS-80s and CoCoIIs. Fundamental understanding and all that.

    2. Re:AP language? by shadow303 · · Score: 1

      Last I heard, they were switching to C, but I wouldn't be surprised if they had moved on to Java by now.

      --
      I've got a mind like a steel trap - it's got an animal's foot stuck in it.
    3. Re:AP language? by Anonymous Coward · · Score: 0

      When I took it, it was C++, but it moved to Java a few years ago

    4. Re:AP language? by Anonymous Coward · · Score: 0

      I took it in c++ its in java now.

    5. Re:AP language? by jamesgray · · Score: 1

      Last year they moved to Java. Previously it was C++. Don't know when they moved to C++, though.

      Cheers,
      james

    6. Re:AP language? by Anonymous Coward · · Score: 0

      AY 1998-1999.

  17. Hey, it legitimized the PC by ibn_khaldun · · Score: 2, Insightful

    begin
    Seems like a limited (and rather verbose) language now, but it was UCSD Pascal for the Apple II and shortly thereafter Turbo Pascal for DOS that made it possible to create sophisticated and transportable programs on personal computers without spending a fortune on development tools. Prior to that point it was either assembly-level hacking (which produced some amazing work, but didn't generalize well) or BASIC (no more need be said...)
    end;

    --

    "All successful systems accumulate parasites" -- Hal Hixon

    1. Re:Hey, it legitimized the PC by Marxist+Hacker+42 · · Score: 1

      P-Code Card for the TI-99/4A! Though I learned TI-Basic, Applesoft Basic, TMS9900 Assembly, Motorola 6502 Assembly, Sinclair Basic, Commodore Basic, Microsoft Basic and Atari Basic all before Pascal.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    2. Re:Hey, it legitimized the PC by jawtheshark · · Score: 2, Funny
      Sorry... Can't resist:

      "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." -- Edsger Dijkstra

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    3. Re:Hey, it legitimized the PC by Marxist+Hacker+42 · · Score: 1

      Yep- and he was right to some extent. It took me years to break the spaghetti coding habit (even if it was 6502 Assembly that enforced that habit far more than Basic- when all you have is a miniassembler that pokes the values directly into memory, inserting lines in a program is damned hard without a jump out and a jump back. I'd put 3 NOPs in between each line so that I'd be able to code a JSR if needed).

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  18. Pascal was l33t by vasqzr · · Score: 1



    The only programs I remember being written in Pascal were BBS Doors and demos.

    Delphi lives on to this day...

    1. Re:Pascal was l33t by CPrimerPlus · · Score: 1

      Actually isn't DEVC++ written in Delphi?

  19. So cool... by ucblockhead · · Score: 4, Interesting
    UCSD Pascal (not the first Pascal, mind you) was such an utterly cool system. It was my first real language. (I knew Applesoft BASIC and assembly, but...) I learned it in 1984 as a sophmore at UCSD.

    Way, way ahead of its time. It was an IDE and the code it generated was bytecode, not native code. I love hearing all the Java weenies talk like the Java VM is somehow a "new" concept when P-code was availble for a real language in the early eighties.

    I wrote a "conquer the galaxy" game in UCSD Pascal when I was 19. Such fun, dealing with overlays to fit it in the 64k of my Apple ][+. I never sold it, alas, so dreams of become a rich game programmer never panned out.

    It's funny...it also had the last IDE I actually liked.

    Unfortunately for UCSD, they priced it too high, and Phillipe Kahn came in and stole the PC Pascal market. Of course, the grad students who actually designed and wrote the system never saw a penny.

    --
    The cake is a pie
    1. Re:So cool... by Tackhead · · Score: 2, Interesting
      > I wrote a "conquer the galaxy" game in UCSD Pascal when I was 19. Such fun, dealing with overlays to fit it in the 64k of my Apple ][+. I never sold it, alas, so dreams of become a rich game programmer never panned out.

      At least one guy did. Wizardry was done in UCSD Pascal. Even in 1980, it surprised the hell out of me to see a commercial game done like that.

    2. Re:So cool... by starling · · Score: 2, Interesting

      I loved the way the compiler would fix simple syntax errors for you, like a missing ';' at the end of the line. It print a warning, attempt to fix the problem, and carry on compiling. What's more , when it tried to fix something it was usually right!

      Couldn't seem to handle getting rid of a ';' before an 'else' though (one of the more brain-dead features of the Pascal syntax IMO).

    3. Re:So cool... by dunkelfalke · · Score: 1

      it is actually not brain dead.
      you read pascal source more or less like a human language. a semicolon is like a full stop in an english sentence. after it begins a new sentence.

      just think about it: how do you would rather write?

      a) if something happens do something, else do nothing

      b) if something happens do something. else do nothing.

      which one makes more sense? for me it is a because a thought stays together.

      --
      Conservatism: The fear that somewhere, somehow, someone you think is your inferior is being treated as your equal.
    4. Re:So cool... by Anonymous Coward · · Score: 0

      That is about the worst idea ever. What if the automatic "fix" accidently activates some dangerous code? (like to erase all data!!)

    5. Re:So cool... by ucblockhead · · Score: 1

      That's why you READ the warning messages.

      What made it cool is that because it kept compiling, subsequent errors were real errors, unlike today's "modern" compilers that generate one valid error and follow it by 50 worthless crap messages because the compiler was too stupid to keep going.

      --
      The cake is a pie
    6. Re:So cool... by starling · · Score: 1

      Oh I know all the justifications, and yes it can be defended. It all comes down to whether the semi-colon is a statement terminator or a statement separator.

      The usage in Pascal is as a terminator and that violates the principle of least surprise to someone who is familiar with natural English.

      To use your example, it's perfectly reasonable to write:

      c) If something happens do something; else do something different.

  20. I wrote my Go playing program in UCSD Pascal by MarkWatson · · Score: 2, Interesting

    "Honinbo Warrior" was written on my Apple II (serial number 71) using UCSD - a very civilized programming environment indeed.

    The Apple II also had a fairly good interpreted Lisp (Pegasis Lisp) that I used a lot way back then. The Lisa editor/macro asembler was also great (as long as I am getting nostalgic, what about Bill Budge's great 3D library for the Apple II).

    1. Re:I wrote my Go playing program in UCSD Pascal by ucblockhead · · Score: 1

      It was really amazing what you could do in 64k, wasn't it?

      --
      The cake is a pie
  21. Nostalgia by Anonymous Coward · · Score: 0

    Seems like a lot of fun. I hope I will be as nostalgic about the anniversaries of Java!

  22. Why Pascal is not always my favourite language by kompiluj · · Score: 2, Informative

    Some of those issues have been solved with advent of the Turbo/Object Pascal by Borland which is currently the most used Pascal dialect (for example the FreePascal uses it) which has taken many things from C. However, a still worthy read.

    --
    You can defy gravity... for a short time
    1. Re:Why Pascal is not always my favourite language by DaWorm666 · · Score: 1

      > Some of those issues have been solved with advent of the Turbo/Object Pascal... Some? More like nearly all. The only ones I saw that still looked valid were the Procedure Something(a : array[0..10] of integer); and the limit on set size (although Delphi has a much, much larger size limit, and handles the alphanumeric example just fine). All of the others, including passing arrays of different sizes to a procedure/function, have been covered.

  23. Off topic? A bit harsh eh? by FuzzzyLogik · · Score: 1

    I think it's a valid question since "undergrad" was mentioned in the topic, i know a lot of people on here started with pascal, i'm simply asking what the best language to start out with NOW is. I'm sure there's been an Ask Slashdot on this but oh well, such is life. I just didn't think it was that offtopic :-/

    1. Re:Off topic? A bit harsh eh? by FlopEJoe · · Score: 1

      Bah... we didn't have those fancy computer languages when I was learning. We had to program in pseudo-code... and like it! And we didn't even have '1's. We had to use two '0's and that was our '1'.

  24. Why didn't it succeed? by Sean80 · · Score: 1
    I remember Pascal from my high-school days, where my math teacher let us build all sorts of cool stuff in it. Never touched it in undergrad though, we were all C and ADA.

    I'd be interested to hear why people think Pascal never caught on like C or Java did? My understanding is that nowadays one of the Borland tools implements what is essentially an OO-version of Pascal?

    1. Re:Why didn't it succeed? by joib · · Score: 1

      Quiche eaters use Pascal. Real Programmers use FORTRAN, or simply flick the swithes on the front panel. ;-)

    2. Re:Why didn't it succeed? by Poseidon88 · · Score: 1
      I'd be interested to hear why people think Pascal never caught on like C or Java did? My understanding is that nowadays one of the Borland tools implements what is essentially an OO-version of Pascal?

      Pascal never really reached the level of popularity of C due to issues with convenience and efficiency. Reading from and writing to hardware is much easier in C. You are less confined as to what you can do, and you can therefore pull off some tricks to speed up operations. Also, C has been around longer, and the compilers available were much better at producing fast, optimized code... There's probably more to it than that, but it has been so long since I did anything in Pascal, I'm having trouble remembering all the reasons I hated it ;o)

      The major selling point for Java is hardware independence. You write your code once, and it can run on any system for which there is a compliant JVM. There was nothing else like that when it first came out, and nothing else has been around long enough to reach the same level of popularity.

    3. Re:Why didn't it succeed? by ucblockhead · · Score: 1

      C was first out on the market. When I went to school, Pascal was the teaching language, but C was what all the Unix Vaxen used. So must undergraduates from my school (UCSD in fact) ended up with a better knowledge of C than Pascal. We took an intro to programming course in Pascal and then most of the rest of the classes used C. Part of this is because C++ came out before anyone even thought of an OO version of Pascal, so all the professors who wanted to teach OO had to use C++.

      Had there been an Object-Pascal in 1985, it might have been a different story, but Wirth missed the boat on OO with his Pascal successor, Module 2.

      --
      The cake is a pie
    4. Re:Why didn't it succeed? by mikael · · Score: 2, Informative

      we used both Pascal and C for our undergraduate courses. The editors (once in 43/50 line mode) were just as good as Microsoft Visual Studio (especially since they had the [alt]-[C] rectangular region copy/cut/paste option).

      The problem with Pascal, was that it wasn't cross platform with other operating systems (Solaris, HP-UX, AIX, whatever...). And it didn't have access to the windowing/networking libraries that C programs had on UNIX (It wasn't until 1993 that Microsoft starting including TCP/IP with PC's).
      Accessing any other libraries on the PC required 'C' bindings to be defined anyway, which of course required pointers to be handled).

      Any Pascal programs for the PC were also hobbled by the 16-bit memory segment boundary limit, which
      caused many problems for applications with large amounts of data.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    5. Re:Why didn't it succeed? by Billy+the+Mountain · · Score: 1

      At the turning point (circa 1984), I think Pascal and C were more-or-less on equal footing.

      Here's why I think it went to C in the end:

      1. Unix was heavily C-oriented and Unix was very common on campuses. Conversely, there was no environment that was Pascal-oriented, unless you consider the Mac. However, the early Mac wasn't something that you just sat and started programming on to get work done.

      2. There was lot of comparison discussions. (Some of it was the spreading of FUD, in my opinion):
      a. C was lower level and therefore simpler to render into machine code.
      b. Pointers were available in C that could be directly manipulated (for better or worse)
      c. C was thought to be better suited to writing operating systems because Pascal was too limiting--it had a too-strong emphasis on the enforcement of data types.

      BTM

      --
      That was the turning point of my life--I went from negative zero to positive zero.
    6. Re:Why didn't it succeed? by BrakesForElves · · Score: 4, Interesting

      IMO: C surpassed Pascal because:

      1) It's much easier to write a C compiler than a Pascal compiler, therefore the (early) availability of the C language on new platforms became a near certainty.

      2) It didn't take project and product managers long to realize that in the era of Moore's Law, platform flexibility had great value. A project stuck on an obsolete platform due to the unavailability of its language on a revolutionary new platform was doomed, perhaps prematurely.

      So its portability and ubiquity were C's most significant advantages over Pascal, back when there was a realistic contest.

      3) For a time, executables written in C were likely to be considerably faster than those written in Pascal. This was a byproduct of the re-use of the C compiler code itself, versus fresh (read: immature) attempts at Pascal compilers. The C compiler cores got better with each processor port, but the freshly-written Pascal compilers often were not very good.

      Today on the x86 platform with Borland's highly-refined 8th-generation compiler core, executables built from well-written Pascal are as fast as those built from coherently-written C, in my experience. It may be possible to write incredibly concise C that'll be a hair faster than the same thing written in Pascal, but arguing that difference is a fool's errand in the days of 4GHz rocket-ship machines executing septillions of NOPs waiting for something to do.

      Personally, I choose Delphi these days over C, because I write and support huge projects. It is incredibly easy to pick up Pascal source and quickly figure out exactly what it does. That's the first (and most crucial) step in any software maintenance, and I find that Pascal's support cost savings more than over-balance any possible advantages I've ever realized from using C. When I'm writing something that needs to be extremely fast, I drop into inline assembly, but everything else I code in Delphi these days.

      --
      About the word "if": If bullfrogs had wings, they wouldn't bounce around on their little green butts.
    7. Re:Why didn't it succeed? by StormReaver · · Score: 1

      "I'd be interested to hear why people think Pascal never caught on like C or Java did?"

      There were a number of things in my case.

      1) The Pascal compiler didn't work, while the C compiler did. My first computer was a Radio Shack Color Computer. I had access to two compilers: one for Pascal and one for C. I couldn't get the Pascal compiler to work regardless of the effort I expended. The C compiler worked right the first time. At this stage, I had no bias towards either language. It was solely a practical matter of which was easier for me to get working easily.

      2) Pascal's rigid constructs were unappealing, while C was freeform. Whether true or false, my understanding of Pascal's structure was that certain things had to be in precise places (similar to COBOL), or it wouldn't work. This struck me as extremely primitive, while C's freeform parser seemed more elegant and friendly.

      3) Things like: IF...statements...ENDIF have always bugged me for reasons I can't put my finger on, especially for one-line statements. C's flexible structure was more appealing.

      4) Free C documentation in the 80s was plentiful, while Pascal documentation was scarce. The path of least resistance led to C.

    8. Re:Why didn't it succeed? by hchaos · · Score: 2, Informative

      It succeeded long enough for Borland to make Delphi 2005. I've always preferred Delphi to C++, because it has almost all of the features of C++ (the most notable lack being macros), plus it has much better enumeration and set handling (mainly, because it has enumeration and set handling).

    9. Re:Why didn't it succeed? by serutan · · Score: 1

      The two arguments I buy most among the above are the ease of writing a C compiler vs a Pascal compiler and the cross-platform availability of C.

      But I also think it was a marketing problem. People still think that only C let you do low level stuff, but it's not true. In Turbo Pascal you could manipulate memory and even registers directly. You could also typecast. I wrote TP apps that took buffers of bytes and chopped them up into integers and whatever I wanted. No problem. You could even include use inline Assembler code. All the hacker-friendly features in addition to the elegant, type-safe layer. The first Turbo Pascal for Windows was even released BEFORE Microsoft released C++ for Windows.

    10. Re:Why didn't it succeed? by gatkinso · · Score: 1

      Well, Pascal kind of did catch on - Delphi, C++ Builder, Kylix, Object Psacal, Tubo Pascal - but yes you are right compared to C or Java it was really nothing.

      Here is a link to a good paper on the subject of why Pascal kind of fizzeled: http://www.cs.bell-labs.com/who/bwk/index.html

      --
      I am very small, utmostly microscopic.
    11. Re:Why didn't it succeed? by Cryogenes · · Score: 4, Informative

      Actually you are answering the wrong question. There was never any contest between C (the Unix language) and Pascal (a teaching language). The real tragedy was that the beautiful Algol succumbed to C so easily and so completely.

      But you are quite right, compilers where the reason. C.A.R.Hoare (of quicksort and CSP fame) tells a good story where early in his career he led an Algol compiler team into disaster - after two years of careful programming they produced a multi-pass compiler and when they first tested it, it managed to correctly translate 1 line of Algol per second!

    12. Re:Why didn't it succeed? by Anonymous Coward · · Score: 0

      Oh, please!! Delphi is even slower than Java!

    13. Re:Why didn't it succeed? by HidingMyName · · Score: 1
      I've programmed extensively in both languages and like both, but there are some compelling reasons why C caught on software development and Pascal (in its original form) did not.
      1. The C language specifies prototyping and separate compilation interfaces. These are not specified for the Pascal programming language (although I'm sure tools like Delphi have hooks, this isn't part of the original standard Pascal).
      2. Pascal lacks bit manipulation operators. C has a strong de facto standard that allows precise control over memory layout (using short, long and char data types).
      3. For systems programming C allows type conversions and "typeless" pointers (char * or unsigned char * in the old days, now void *). Pascal lacks an address of operator (the & operator in C)
      4. Pascal originally did not have conformant arrays so functions handling arrays used the array dimensions for type checking. Later versions allowed array dimensions to be set at run time.
      5. There are no static variables or compile time initializatoin (only globals with run time initialization).
      6. The I/O model was hard to implement (as it assumed look-ahead) and record oriented. Furthermore it was part of the language and NOT in a standard library like C.
      7. Labels (destinations of gotos) had to be numeric values.
      Many (maybe all) of these points are covered in Kernighan's Why Pascal is Not My Favorite Programming Language. Although many posters seemed to indicate writing a Pascal compiler was hard, actually Pascal is a relatively easy language to parse (due to its grammar) and became wide spread because implementing it was not too hard.
    14. Re:Why didn't it succeed? by Anonymous Coward · · Score: 0

      I wont debate the rest of your post, but your assertion that Delphi produces code that is as fast as a C compiler (even a bad one) is absolute hogwash.

      I have been using Delphi as my primary development tool for over 10 years (since version 1.0) and before that used Turbo Pascal. I really think Delphi is a great language, but execution speed is NOT one of its strong points. Sure, its better than most interpreted languages, and it is still loads better than VB (even compiled VB), but it isnt in the same leauge as C code.

      Dont get me wrong, it depends on what your doing. But if you are writing anything remotely heavy (lots and lots of memory access, lots of pointer manipulation, lots of math, etc.) Delphi will get its ass kicked all over the place by C code.

      I wish it was better at this type of stuff, but it isnt. Anyone with a bit of experience in both langauges will attest to that. The compiler misses boat loads of optimization chances that even a bad C compiler will exploit. The compiler might be very fast at spitting out a executable, but it is VERY simplistic as far as finding ways to optimize the output go.

      Pascal compilers are designed to produce code fast, not produce fast code...

    15. Re:Why didn't it succeed? by Anonymous Coward · · Score: 0
      Delphi produces code that is as fast as a C compiler (even a bad one) is absolute hogwash.

      There's the matter of the {$R-} directive...

    16. Re:Why didn't it succeed? by metamatic · · Score: 1
      Personally, I choose Delphi these days over C, because I write and support huge projects.
      ...and presumably don't care about cross-platform portability, or about being entirely dependent on a single vendor.

      Tell me, have Borland at least implemented all of ANSI Pascal by now? I remember they never seemed to get around to it in Turbo Pascal.
      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    17. Re:Why didn't it succeed? by Junks+Jerzey · · Score: 2, Insightful

      1) It's much easier to write a C compiler than a Pascal compiler, therefore the (early) availability of the C language on new platforms became a near certainty.

      Not true. Pascal is generally easier to write a compiler for than C. Now you might be focusing on the optimization side of things, and in that case you'd be right. A naive compiler typically generates much better code for C-style pointer math than for arrays, and in Pascal you use the latter.

    18. Re:Why didn't it succeed? by F1re · · Score: 1

      Sorry, but endif is from visual basic and is not in pascal.

      Pascal has begin and end

      --
      ...there is no sig...
    19. Re:Why didn't it succeed? by Anonymous Coward · · Score: 0

      ...and presumably don't care about cross-platform portability, or about being entirely dependent on a single vendor.

      Dead correct, 100%. I code for the outcome and the money. The issues you raised are irrelevant and irresonant. They may have nerdy religious value to some, but they have business value to nobody. Programming isn't my hobby, it's how I eat. But thanks for the input... next.

    20. Re:Why didn't it succeed? by Anonymous Coward · · Score: 0

      Not true. Pascal is generally easier to write a compiler for than C.

      I've written a few of each, x86, 6809, 68HC11, 8085, PDP-11/34, HP-21MX. You are either a Pascal compiler-writing genius, or you are full of shit. Writing a C compiler is a dawdle compared to writing a Pascal compiler.

    21. Re:Why didn't it succeed? by Tablizer · · Score: 2, Insightful

      Personally, I choose Delphi these days over C, because I write and support huge projects. It is incredibly easy to pick up Pascal source and quickly figure out exactly what it does.

      One thing that helps Pascal readability over Java and C dirivatives is that declarations of types come *after* the variable name instead of before. The variable name is usually more important than the type name, so seeing it lined-up on the left side makes it easier to spot.

    22. Re:Why didn't it succeed? by Anonymous Coward · · Score: 0

      It may be possible to write incredibly concise C that'll be a hair faster than the same thing written in Pascal, but arguing that difference is a fool's errand in the days of 4GHz rocket-ship machines executing septillions of NOPs waiting for something to do.

      Ya know, not everyone goes out and buys new systems the instant they become available. Sub-1GHz machines are not yet uncommon.

    23. Re:Why didn't it succeed? by Halo1 · · Score: 1
      Pascal compilers are designed to produce code fast, not produce fast code...
      Delphi uses exactly the same code generator backend as Borland C builder since quite a while. This has nothing to do with Pascal vs C. In fact, with its stricter typing and properties like that after a loop the value of the loop counter is undefined, it's theoretically easier to write an aggressively optimizing Pascal compiler than an aggressively optimizing C compiler.
      --
      Donate free food here
    24. Re:Why didn't it succeed? by StormReaver · · Score: 1

      "Sorry, but endif is from visual basic and is not in pascal. Pascal has begin and end"

      It's the same thing.

  25. Re:Staos is teh sux by Jeffery · · Score: 0

    riiiiiiiiight.........

    --
    President Bush Supporter
  26. Pascal was more than a programming language by RealAlaskan · · Score: 1

    Pascal was more than a programming language, it was a multi-platform operating system.

    1. Re:Pascal was more than a programming language by DNS-and-BIND · · Score: 1

      Sorry, emacs came first

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
  27. Memories of Pascal by Eberlin · · Score: 5, Insightful

    It has been ages since I've done anything in pascal...but my programming language progression went from BASIC, QBASIC, then Pascal. I've moved to other languages from there but it was quite the eye-opener. Variables had to be declared, the "uses CRT" was quite the drastic change from what I had been used to (if I remember correctly), and the overall approach was enlightening.

    Now there are other languages to learn with (and a few of those aren't just for educational purposes). Java, PHP, and C for example. Even Delphi has kept Pascal alive and relevant.

    Back then, I had to find...um...creative ways to be able to program and compile Pascal code. With all the freely available IDEs, compilers, debuggers, etc. around now for all these various languages (especially through OSS), things have become more accessible.

    Pascal was the language that brought me out of my BASIC habits...for that I'm definitely grateful.

    1. Re:Memories of Pascal by will_die · · Score: 1

      Still remember Pascal as the last language I used where you could fit the editor, compiler, and your program on a single floppy disk.
      Still keep my first pascal algorithm book, not of much use, but I'm a little sentimental.

    2. Re:Memories of Pascal by Anonymous Coward · · Score: 0

      yes, but who taught you your l33t rhiming skillz? first the slashbot rhyme, now the eminem thing... howz it feel having real live groupies just like esr?

  28. Hi, Jeffrey by ggvaidya · · Score: 3, Funny
    Welcome to Slashdot!

    All your productivity are now belong to CmdrTaco. Hope you like it here!

    Cheers,
    Gaurav

  29. That's just mean. by Staos · · Score: 1

    Luckily, I know what that is, but still, that's mean.

    --
    In Soviet russia, only old Koreans profit from pictures of Natalie Portman stored on Beowulf Clusters.
  30. No change in France ? by bstadil · · Score: 1
    What language is the "teaching language" now?

    In France at the PrePa to get into one of the Grand Ecoles it's still Pascal. Incl the Namesake .

    --
    Help fight continental drift.
  31. Pascal was great... by disbaldman · · Score: 2, Interesting

    Pascal was great during the early 90s... It brings back memories of BBSes with 300-2400 bauders. Back then, this language was probably the most popular structured language. Many free and commercial BBS programs and doors were created using Pascal, using the free DDPLUS door kit for 7.0. So it wasn't just used for bubblesorts, it drove much of the BBS community!

  32. Re:Jefferey's first post by Anonymous Coward · · Score: 1, Funny

    Damn dude, you almost got a first post first post!

  33. Memories Indeed! by serutan · · Score: 2, Interesting

    Back in the 80s for me it was Turbo Pascal, originally a $39.95 wonder-package on a single 5-inch floppy. Compiled a whopping 7000 lines a minute on my 2Mhz 8080.

    My never-ending project to simulate a D&D world led me to explore the mysteries of virtual method tables, linked lists, B-trees, and that other structure -- a mesh of nodes without a head -- what was it called?

    My favorite TP achievement was a homegrown BBS that I ran for 2 years on my 1200-baud modem. I had no hard drive, just two 360K floppy drives. So the system and programs were on one and the msg files were on the other. There were 10 message boards. I gave some users sysop privs on individual boards. Three of them ran RPGs -- AD&D, Traveller and Robotech -- one woman ran hers as an adults-only hot tub/bar. Eventually I wrote an adventure game parser as a unit that would plug into the BBS. I only created one game for it, but many people played it through to the end and commented on it. Good memories of the pre-web era.

    1. Re:Memories Indeed! by yoink00 · · Score: 1

      I believe a mesh of nodes without a head is a Graph (Wikipedia)...

      Linked Lists, Trees etc. are all specialised Graphs...

      Ah brings back memories of Dijkstra's algorithm...

      Stu

      If I could be arsed I'd have a signature... oh wait I do...

    2. Re:Memories Indeed! by Reziac · · Score: 1

      Wow, that's pretty ambitious, and sounds like it was a bloody fun BBS. Very cool.

      BTW, have you been to bbsmates.com??

      --
      ~REZ~ #43301. Who'd fake being me anyway?
  34. Trademark Violation by TheGilmanator · · Score: 2, Funny
    I'm sorry, but did you clear the use of the trademarked "UC" with the state of California before posting it?

    Wouldn't want to get shut down, would you?

    --
    - John
  35. How Relevant Today? by Nom+du+Keyboard · · Score: 1

    How relevant today is Pascal? How much business work, or work of any sort that someone else pays for, is still done in it? What modern compilers/IDE's are available. To my mind, Pascal is as dated as line numbered BASIC, and I haven't seen an job ad looking for a Pascal programmer since before the Dot Com boom started. And I lived near UCSD when UCSD Pascal was the way to learn programming.

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
    1. Re:How Relevant Today? by m50d · · Score: 1

      Delphi is basically Object Pascal, and is still in reasonably common use - I've seen adverts for Delphi programmers, although not as many as for Java or C++. Pascal itself is, and always was, a teaching language, not one for real programs (the minix of programming languages, if you like), and as such is seldom seen outside of universities, where it does still have a following.

      --
      I am trolling
    2. Re:How Relevant Today? by Retric · · Score: 1

      I was coding in Pascal today. But as near as I can tell there are only 100 or so people in the US doing real MAC OS work with it. Hell I am using an unsupported hack to compile this Pascal code (there are some people using an open source compiler though) so it's not much of a market for it. But, I know several people who use it for low level coding, as it's easy to write a compiler for it for any given chip. Most of these people then go through the fairly clean ASM code and optimize it as needed.

    3. Re:How Relevant Today? by MacDaffy · · Score: 1

      Check out this link and look for the gpc compiler, The guys on the site--especially Adiraan van Os--have been doing some great work recently. Adriaan has developed a plug-in that works with Metrowerks Codewarrior (I was using it with Version 7).

      I was one of the first to compile Pascal on Mac OS X (translated a C project to Pascal, kludged the resource file and voila! Pascal will continue to be useful for a long time to come.

  36. UCSD Pascal and Java by kompiluj · · Score: 1

    Oh! I almost forgot. The most important point in UCSD Pascal System was not Pascal itself but the p-code. Well the p-code allowed programs to be compiled to some intermediary form resembling assembler called (guess what!) p-code, which could then be run with a help of a simple interpreter on any machine, thus giving us a machine independent code. Seems familiar?

    --
    You can defy gravity... for a short time
  37. I remember it fondly... by Billy+the+Mountain · · Score: 1

    Pascal, a lovely little language. Before that, I was enmeshed in BASIC and FORTRAN. Pascal, even though it was originally Niklaus Wirth's training exercize for compiler students, had a certain undeniable elegance to it. Its recursion and record features were particularly nice. Later the lure of C and languages containing C-like syntax finally got it's grip on me and Pascal has nearly been forgotten. It did have a nice run with the early Macs, though, with all of the OS being written in it.

    BTM

    --
    That was the turning point of my life--I went from negative zero to positive zero.
    1. Re:I remember it fondly... by Mark+of+THE+CITY · · Score: 1

      Sounds close to my own progression, except that after my undergrad days (at UCSD, 1978-82) I went into assembly language and CMS-2 (pre-Ada HLL for the Navy's embedded systems; inspired by Algol, great at handling packed data structures back in the day when memory topped out at a few hundred Kbytes).

      Trivia I seem to remember:

      UCSD used Apple IIs networked to a hard disk in the lab that supported the two big lower division CS classes, EECS 61 and 63. The disk contained system code, your program was on a 5 1/4" floppy.

      For 'honors' lower division (what would you call EECS 65?) and upper division work, standalone Teraks with LSI-11 processor boards were used. The compiler was recursive-descent, and on the Terak the stack was dumped into the 1-bit-deep graphics buffer, which provided some entertainment while waiting for the compile to finish.

      Computer resources are far more plentiful, but good instructors are scarce. Maybe that is why UCSD's CS majors are impacted, as they were 25 years ago.

      Mark Schaeffer

      --
      The clearance system sounds logical. It is not. It is completely arbitrary. -- John Bolton
  38. I thought I knew C... by turgid · · Score: 2, Interesting

    ...until I tried the Pascal family of languages (Modula-2 actually). The strictness imposed by Pascal and its decendents really forces you to think carefully about what it is you're trying to code. Most of my early C programs worked by luck rather than design and would produce pages of warnings on compilation. After learning a bit of Modula-2, I became a much better C programmer (and programmer in general). Many years later I had to program in Turbo Pascal 7.0 (a predecessor of Delphi) and found it very pleasant (despite DOS and Windows). Pascal has come on a long way in 30 years and spawned Delphi, Modula-* and Oberon-*. They're well worth investigating.

    1. Re:I thought I knew C... by Profane+MuthaFucka · · Score: 2, Interesting

      I learned Modula-2 before I learned C, on my Atari ST. It was an excellent little language. I remember that I used to have to swap floppies in the middle of every compile so the last stages of the compiler could be loaded.

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    2. Re:I thought I knew C... by vivin · · Score: 1

      The strictness imposed by Pascal and its decendents really forces you to think carefully about what it is you're trying to code

      True, but if you really want to know what a strick language is, try ADA.

      --
      Vivin Suresh Paliath
      http://vivin.net

      I like
  39. A teaching language by ucblockhead · · Score: 2, Insightful

    It is a teaching language, so the main design goal is to force students to do it right, rather than hacking. Once they learn how to do that, they can the use a profressional language hacks. In other words, first you have to learn the rules, then you have to learn when to break the rules.

    --
    The cake is a pie
  40. Let me know when. by Damon+C.+Richardson · · Score: 0, Troll

    It's the 30 year Anniversary of the death of pascal.

    --

    Last one in jail is a fascist.
    1. Re:Let me know when. by Anonymous Coward · · Score: 0

      That comes next week.

  41. Borland... by Kr3m3Puff · · Score: 2, Informative

    Some of us have never given up on Pascal. I still use Delphi and Kylix to this day. Meets my needs and Pascal makes a nice OO programming language, something that dates back to Turbo Pascal 7.

    There is a ton of third party support for it and you can do just about everything a little easier then just about everything else. All my DSOs for Apache are done in Kylix...

    --
    D.O.U.O.S.V.A.V.V.M.
    1. Re:Borland... by killjoe · · Score: 1

      Wow I thought kylix was dead!. Is it still under active development at Borland?

      --
      evil is as evil does
    2. Re:Borland... by RogerWilco · · Score: 1

      OO actually is already in TP6, with all the turbo-vision stuff it already feels quite Delphi-like.

      --
      RogerWilco the Adventurous Janitor
    3. Re:Borland... by Kr3m3Puff · · Score: 2, Informative

      Well, it kinda sort of is. The last update was Kylix 3 which brought it in line with Delphi 7, which was the last navtive Win32 version, until the yet to be released Delphi 2005. Delphi 8 was .NET only. Delphi 2005 merges Win32, .NET (both OO Pascal and C#). I don't think they are planning a Kylix release after 3, but I might be wrong.

      I still find it very cool and useful, and I am still using Delphi 7 for Win32. I have avoided Delphi 8 because it was only .NET (though it came with Delphi 7). On the FAQ for Delphi 2005 it asks if the .NET application will work on non Windows OS's and they say "well, in theory there is no reason they won't, but we won't test or approve it". So it is likely Delphi 2005 .NET applications will work under Mono. Cool!

      --
      D.O.U.O.S.V.A.V.V.M.
    4. Re:Borland... by killjoe · · Score: 1

      That would be awsome. I looked at OS requirements for kylix and it said redhat 7.2. That's ancient.

      --
      evil is as evil does
  42. R.I.Pascal. by Anonymous Coward · · Score: 0

    R.I.Pascal.

  43. I would remember the undergraduate bubble sorts... by Anonymous Coward · · Score: 0

    ...but I was too busy sorting the bubbles in my bong.

  44. Obligatory: by zerojoker · · Score: 1

    Real Programmers Don't Use Pascal: http://www.pbm.com/~lindahl/real.programmers.html

  45. A new generation of undergraduates by mmmmmhotpants · · Score: 1

    use Scheme. Almost every major university with a reputation for churning out great computer scientists uses Scheme in their first programming courses.
    For purposes of instruction and introduction, Scheme is better than any language I can think of. You can write incredible programs in very short pieces of code while making the key concepts very clear.
    I always failed to see the value of Pascal. It seemed like a useless intermediate between C and BASIC with no real advantage over either. I'm sure Pascal had its place and time, but it is long gone.

    --

    can't sleep. clowns will eat me.
  46. great for the beginner trying to program by Anonymous Coward · · Score: 0

    cout (1 8) ""

    listening to the instructor babble some shit about operator overloading the first day of class and I'm thinking holy fucking shit nobody here is going to learn how to program this way

    pascal forever

    1. Re:great for the beginner trying to program by Anonymous Coward · · Score: 0

      cout << (1 << 8) << "<<" <<<<<<<<<<<<<<<<<

  47. Raskin's Pascal poster by Russ+Nelson · · Score: 1


    Jef Raskin's Pascal Poster. Way cool if you've never seen it before. Still way cool but nostalgic too if you have seen it before.
    -russ

    --
    Don't piss off The Angry Economist
    1. Re:Raskin's Pascal poster by Russ+Nelson · · Score: 1

      Weird. That was supposed to have a link to this page: http://humane.sourceforge.net/published/pascal_pos ter.html

      --
      Don't piss off The Angry Economist
    2. Re:Raskin's Pascal poster by Animats · · Score: 1
      That poster is just a copy of the syntax diagram from the back of Wirth's original Pascal book.

      One of the big problems with C++ is that the syntax is so messed up that you can't even express it with a chart like that.

    3. Re:Raskin's Pascal poster by Anonymous Coward · · Score: 0

      I still have one hanging on my wall behind my computer hutch.

    4. Re:Raskin's Pascal poster by Anonymous Coward · · Score: 0

      One of the big problems with C++ is that the syntax is so messed up that you can't even express it with a chart like that.

      That chart just appears to be the grammar for Pascal. You could produce a chart just like that for C++ using the C++ grammar.

      I guess I've learned to think of grammars as such a simple and fundamental part of CS that the poster really doesn't impress me...

    5. Re:Raskin's Pascal poster by jejones · · Score: 2, Informative

      That chart just appears to be the grammar for Pascal. You could produce a chart just like that for C++ using the C++ grammar.

      Agreed, but for Pascal you won't run into any constructs that are recognized by the same chunk of "Railroad Normal Form" but which have radically different semantics--over and above the usual things you can't capture in a context-free grammar.

      That is, Pascal doesn't have C++'s "if you can interpret it as a declaration, it's a declaration" rule.

      From what I've read, C++ has the same difficulty as the original FORTRAN did; the original parser was ad hoc, so that it was a nightmare to parse with reasonable techniques, and arguably therefore harder for humans to deal with.

    6. Re:Raskin's Pascal poster by pkhuong · · Score: 1

      See all those straight lines? That's pure redundance. They add no meaning to the expression, only more typing effort.

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    7. Re:Raskin's Pascal poster by Lars+T. · · Score: 1
      That poster is just a copy of the syntax diagram from the back of Wirth's original Pascal book.

      Not quite

      When Brian Howard and I were writing the Pascal Manual for Apple Computer, I discovered that the syntax chart that had been published with previous Pascal books was incorrect.
      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    8. Re:Raskin's Pascal poster by Animats · · Score: 1
      From what I've read, C++ has the same difficulty as the original FORTRAN did; the original parser was ad hoc, so that it was a nightmare to parse with reasonable techniques, and arguably therefore harder for humans to deal with.

      No, that's not what went wrong. The original version of C (not "K&R", but earlier, as in V6 UNIX circa 1978) didn't have "typedef". That version was LALR(1), and parsable by a simple parser that knew only the reserved words. Wnen "typedef" went in, the grammar became context-dependent - you couldn't parse it without knowing the type names. One undefined typename and the parser gets lost. The syntax went downhill from there.

      Pascal doesn't have that problem, because the syntax

      var foo: bar;
      is unambiguous. The C form
      foo bar;
      can't be parsed until you know that "foo" is a type.

      One implication of the C/C++ parsing problem is that there are few tools that do much with source code. Even a reliable indenter for C++ is hard.

  48. Lazarus - Open source pascal by IgD · · Score: 1

    There is a great open source compiler called Lazarus that rivals Borland's Delphi. It's found over at lazarus.freepascal.org. It's object oriented and has a nice GUI. Best thing about it besides being open source is the fact that it is cross platform. It really is a great product!

  49. Re:Jefferey's first post by Anonymous Coward · · Score: 0

    Damn dude, you almost got a first post first post!

    Now *that* would be something to be proud of.

  50. One more recollection by kompiluj · · Score: 2, Interesting

    What was at first the so called BSD (Berkeley Software Distribution) by Bill Joy? Essentialy it was a Pascal Development System for UNIX bundled with UNIX itself. The improvements in UNIX were made by Joy in order to have an easy to use Pascal system. Don't believe? Look here.
    Well Pascal was at that time really important.

    --
    You can defy gravity... for a short time
  51. Why, that's nothing... by TiggertheMad · · Score: 1

    Whitespace! Pure luxury! Why when I was a young programmer, we hadn't even invented 1's, we only had zeros.

    AND WE LIKED IT THAT WAY!

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  52. Re:New Slashdotter, eh? You should really read the by Jeffery · · Score: 1

    that's just very very very wrong.. i'm on a work computer.. so it's even more wrong.. no need to be a jerk, but i know ya gotta get the new guy...

    --
    President Bush Supporter
  53. Re:New Record by Jeffery · · Score: 0

    what does HHBT and HAND mean?

    --
    President Bush Supporter
  54. Pascal... by jeif1k · · Score: 5, Interesting

    It's unfortunate that Pascal gave type safety such a bad name: the language, as it was usually used for teaching, had such limited functionality and imposed such a straight-jacket on people that several generations of programmers thought type-safety made languages useless and that they needed to use something as unsafe as C to get any work done.

    Yet, commercial implementations of Pascal were in pretty common use, had all the low-level facilities of C, and yet gave programmers a decent amount of type safety and runtime error checking. In fact, a lot of the early Macintosh software was written in ObjectPascal, and TurboPascal was very popular and very useful on the PC. Even the Apple II ran a pretty good Pascal development environment (in 64k of memory), with a decent screen oriented editor, menu bars, and an integrated compile/edit/run/debug system. Pascal syntax also was quite a bit less error prone than C/C++'s. Having pointer dereferencing be a postfix operator alone is just so much more sensible.

    Perhaps much more interesting than Pascal, historically, are Algol-60, Simula-67, and Algol-68, which are related to it; Pascal was probably never intended to compete with them, but rather serve as an educational introduction to them and their successors. Around the same time, many fundamental ideas in programming languages were developed and implemented, including APL, Lisp 1.5, Snobol, PL/I, Smalltalk, and Prolog. Window systems, GUI toolkits, constraint-based programming, MVC, and other concepts we take for granted today followed shortly thereafter.

    1. Re:Pascal... by jejones · · Score: 2, Informative

      Especially Algol 68, the best programming language you probably never used, a victim of nasty (and not necessarily accurate) propaganda. I urge all to track down a copy of the History of Programming Languages II proceedings and read Charles Lindsey's excellent and bittersweet paper on the history of Algol 68.

    2. Re:Pascal... by GCU+Friendly+Fire · · Score: 1
      I was taught algol 68 by Charles Lindsey, and not so long ago I visited his website where he still has a copy of the algol 68s compiler source, although it has suffered from bitrot over the years.

      Charles Lindsey's algol 68 compiler

    3. Re:Pascal... by Tech · · Score: 1

      Even the Apple II ran a pretty good Pascal development environment (in 64k of memory), with a decent screen oriented editor, menu bars, and an integrated compile/edit/run/debug system.

      I absolutely loathed the Apple II implementation of Pascal editor and compiler that I was made to use. I suppose it would have been a little better if there had been two disk drives, but we didn't have such luxuries. With the editor and compiler on opposite sides of the same (!) disk, you had to keep flipping the disk between editing and compiling, and it was incredibly slow and painful. This unfortunate encounter, at high school level in those days, led me to write my final course project in Apple BASIC (interpreted, no compiler, yay!) and made up at least 30% of my decision to choose engineering over CS at university where the former favoured C and the latter, Pascal. I won't knock the language, but that particular implementation did it no favours.

    4. Re:Pascal... by Anonymous Coward · · Score: 0

      You can't blame the software for not having enough disk space. With 3+ disk drives or a harddisk, it was a great environment and still much cheaper than anything comparable you could get.

  55. Um, how about Pascal? by FireAtWill · · Score: 3, Interesting

    One of the thing I like the most about Borland's Delphi is that its Object Pascal allows you to be procedure or object oriented. It also has the best IDEs around, and allows you to do anything you want (web services, device drivers, console apps, database apps, office tools, servers, clients, etc, etc, etc). Truely a Swiss army knife.

  56. To celebrate, by Anonymous Coward · · Score: 2, Funny

    I'm going to go out tomorrow to buy some string.

    I'll cut off pieces, and at one end of each piece, write down how long that particular piece is. :)

  57. Anyone remember Karl the Robot? by wandazulu · · Score: 1

    I remember helping people in the labs when I was in college with this mac-only program called Karl the Robot...it was basically a way to learn algorithms as you had to come up with ways to move Karl around mazes and such. I believe it used Pascal as the underlying code, though it was pretty limited to just moving Karl around. While I myself disliked Pascal as a language (weened on C), I thought Karl was a pretty clever program.

    1. Re:Anyone remember Karl the Robot? by raytracer · · Score: 1

      I believe you meant Karel the Robot.

      http://www.mtsu.edu/~untch/karel/

    2. Re:Anyone remember Karl the Robot? by wandazulu · · Score: 1

      Yep...that's it, sorry about the spelling, it's going on 14 years since I last worked with it.

      As a sign of the times, I noticed that they mention that it's now based on C/C++ instead of Pascal.

  58. Re:Jefferey's first post by Jeffery · · Score: 1

    just got lucky i guess

    --
    President Bush Supporter
  59. NJ Tournament by Bizzle · · Score: 1

    I am going to reveal my "nerdy-ness" and say that I was the NJ Pascal Programming Champion in High School back in 1993 held at Glassboro College in NJ. We all got the same project and 2 hours to program it. Our team also won 3rd as a whole. Whoo hoo!!! Finally, I can claim my fame:) Ocean City High!!!

  60. And 30 years later my fight marches on by Anonymous Coward · · Score: 0

    30 years later and I'm still trying to wipe it out. Sure we've made great progress but I won't rest until CS grads say "Pascal who?" (I hope you get the joke)

  61. I used UCSD Pascal in 1980 by Anonymous Coward · · Score: 0

    I took USCSD Pascal in 1980 using an Apple II+ with a whopping 48K of memory. It ran on a new network they were trying to set up that had a 3 or 5 MB hard disk storage device so you could access the interpreter off that. I was told that hard disk cost 5 or 10 grand at the time.

    I had previously learned APL, and Fortran at junior college before taking this class, but I remember that that Pascal really made sense to me because it seemed logical in in its layout. I still think to this day I am a better programmer for having learned Pascal before C and not the other way around.

  62. Real Programmers Don't Use Pascal by gustgr · · Score: 1

    I know I have already posted this some days ago but it is valid for this story too. This is a quite classic text.

  63. Niklaus Wirth's languages by plcurechax · · Score: 4, Informative

    Actually I (mildly) regret that I was an advocate for C and C++ in the university undergrad CS programmes, because at the time I personally enjoyed programming in C more than Pascal. Looking back I think Pascal was an excellent language for students, and I wish Niklaus Wirth's other languages, such as Module-2, Oberon caught on more. I think they were evoluting in the right direction of promoting good programming style, for programming in the large.

    Rather than quick coding by the seat of your pants which C encourages or at least strongly tolerates.

    1. Re:Niklaus Wirth's languages by plcurechax · · Score: 1

      Typo corrections:

      I meant, Niklaus Wirth's languages, Oberon and Modula-2.

      He also wrote the classic CS book, Algorithms & Data Structures which while dated is a fine example of how Computer Science should be taught.

    2. Re:Niklaus Wirth's languages by MouseR · · Score: 2, Informative

      That's Modula-2. And Modula-3, although this one didn't go anywhere much.

      I've actually written two commercial applications in Modula-2. Did you know that MetroWerk's CodeWarrior is actually a descendent of their original product (and company name) that was then known as MetCom Modula-2? I still have those books in a box. First language I actually coded in for the Mac. That was in 88.

    3. Re:Niklaus Wirth's languages by Peter+McC · · Score: 1

      Similarly, my first two university programming courses were in Pascal and then Modula-3 (a very feature-full OO language). We all hated Modula-3 with a passion, but in hindsight it taught me a lot of stuff that I wouldn't have gotten at all out of C++. It's a shame the idiotic licensing kept it from seeing any real use, and that the syntax was so ugly at times.

      --
      You know what I hate? Wait, what do you like? I hate that!
    4. Re:Niklaus Wirth's languages by Cadderly · · Score: 1

      At the company were I work we still use Modula-2.
      New projects are done in Object Pascal, but I must say that Modula-2 is rather interesting... it had for example a build in exception system...

  64. Arrg!! Stop using past tense! by Anonymous Coward · · Score: 0

    Pascal was great
    I loved Pascal
    My memories of Pascal

    It's Pascal's anniversary and you're talking about it like it's Pascal's funeral :P

  65. Plenty of ways to hack by Flexagon · · Score: 1

    Sometimes you need a hack, and Pascal's purpose in life it to prevent those convient little hacks.

    While all of the typical classroom compiler projects used simulated, interpreted machine languages to avoid all of the hard problems of generating commercial, messy object files, the Pascal compiler itself, for the PDP-10, managed to generate native object files. The primary trick was to use variant records (unions in C). Many, many structures named "wandlung" (German for "transformation"). Depending on your point of view, it's enlightening or depressing (or both) to find out that the gurus used the back door when you believed the party line and kept banging on the front door.

    Of course, the most annoying aspect of Pascal for me is string handling. Even Modula2 didn't fix them.

  66. Nitpicking by hsoft · · Score: 1

    Lazarus is not the compiler, it is the IDE. Freepascal is the compiler.

    --
    perception is reality
  67. Pascal and other languages by mbrewthx · · Score: 0

    Learned COBOL and RPG II before I learned PASCAL. We had to write everything in pseudo-code first and flow chart our entire program. Those were the days... Our development environment was a piece of paper you spoiled little brats!!!!!! Thank God I had admin rights so I could que my compilation ahead of other people....

    --
    __________ Leave me alone I'm compiling a RPG II program on my S/36...Thanks to metamucil I'm a Regular Meta Moderator
  68. Depends on when you start by Theatetus · · Score: 1

    I started with Logo, but that was in the 3rd grade. Really useful, to be honest. But not really as appealing to adults as it might be to kids. I'd say learn something like Lisp or Haskell first, personally.

    --
    All's true that is mistrusted
    1. Re:Depends on when you start by Greyfox · · Score: 1

      The problem with lisp is I've never seen a text that got into setting up the data structures. It's really easy to do once you grok that, but it's pure evil until you wrap your head around the data structures. Personally I like lisp, too. My resume generator on my web page is written in elisp and can currently output plain text and HTML (One of these days I'll get around to writing latex and xml emitters for it.)

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:Depends on when you start by mattyrobinson69 · · Score: 1

      bloody hell:
      slashdot requires you to wait 20 seconds, you posted after 17
      slashdot requires you to wait 20 seconds, you posted after 16

      anyway - whats the url?

    3. Re:Depends on when you start by Greyfox · · Score: 1
      http://www.flying-rhenquest.net. It's been bouncing a bit today, but it should be up solidly for the rest of the night.

      Click on the "Generator for the above resume" -- there are some basic instructions and the tarball for the code.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    4. Re:Depends on when you start by Theatetus · · Score: 1

      I think Graham's ANSI Common Lisp did it pretty well, because he didn't bother trying to port the Algol-based concepts of graphs, trees, etc. but put it in terms of building s-expressions. I think you're right that until you grok the way that the data structures are your program and vice-versa, reading that statement won't help you much.

      I still like Lisp as a first language because it's not pedantic (C shares this virtue but is a little too machine-focused for my tastes). Learning $OO_FLAVOR_OF_THE_MONTH first forces you to think of everything in an OO-fashion -- which is really only a good idea for a certain type of problem. For all the other problems, you're left with this hammer that makes you think everything is a nail.

      By those criteria, I'd say good first languages are Lisp, C, Forth, and Perl (I'd probably add Python if I knew it). Each of them is going to shut a few doors for you, but on the whole they all lead to a pretty balanced view of what you can do and how you can think as a programmer.

      --
      All's true that is mistrusted
    5. Re:Depends on when you start by Greyfox · · Score: 1

      I still think you need to know structured programming before you can do object oriented programming. All your methods still need to be structured. I've seen plenty of OO code from people who never learned structured, and you can kind of tell. Of course, my first languages were BASIC, Pascal and DEC assembler (I still have that book around somewhere, too.)

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  69. Re:New Record by Anonymous Coward · · Score: 0

    Boy, you really are new here, huh? YHBT (I assume it's what he meant) is You Have Been Trolled, HAND is Have A Nice Day!

  70. My experience learning Pascal by toddhan · · Score: 1
    It seems appropriate for me to mention that Pascal was the second language I learned during high school. In 1984 the school had the hardware and we were lucky enough to have a math teacher who knew what to do with it.

    The semester-long class was originally for FORTRAN. The teacher used a method where we wrote our own programming manuals through the semester. Each day we had a lesson that became a page in our manuals and then we did a programming project in teams. It was such an effective way to teach a language that we all had our manuals done with six weeks to go. We were given the choice of doing larger FORTRAN projects or moving on to Pascal. We chose Pascal and got pretty far in the six weeks left.

    I still have both of those manuals twenty years later. Truly one of the best educational experiences I have had.

  71. Introduction To Algorithms by bsd4me · · Score: 1

    Cormen, Leisserson, and Rivest's book was commonly known as the Big White Book of Pain at my university. Hopcraft and Ullman was known as the Little White Book of Pain.

    --

    (S(SKK)(SKK))(S(SKK)(SKK))

  72. Re:New Record by Jeffery · · Score: 0

    ahh, thank you, i need to learn more of the lingo around here.

    --
    President Bush Supporter
  73. Re:New Record by Anonymous Coward · · Score: 1, Informative

    xHBT means x Has Been Trolled. HHBT is probably He Has Been Trolled. HAND is Have A Nice Day.

    Trolls spout gibberish, insults, profanity, and sexually explicit material in order to get you to reply. They just want attention, so it's best not to give them any. Usually, people posting as Anonymous Coward are trolls.

  74. Berkely Pascal really sucked by Animats · · Score: 1
    Berkeley Pascal was awful. It's responsible for much of Pascal's bad reputation.

    It was basically a new parser for the C compiler. Anything the back end of the C compiler didn't have had to be faked by the front end. Subscript checking was horrendously inefficient, with a subroutine call for every subscript check. Variant records were implemented by allocating separate storage for each variant. It optimized almost nothing. And it was a straight ISO Pascal, with a minimal hack for external compilation.

    As a result, a generation of UNIX programmers grew up thinking that Pascal was much less efficient than C.

    1. Re:Berkely Pascal really sucked by kompiluj · · Score: 1

      The facts you write about were not known to me. However Pascal still sucks performance-wise (when you compare FreePascal to GCC and Intel C/C++ compiler) on x86. But I didn't try the GPC - here results should be comparable between Pascal and C because the same backend is used (in GCC front-end parses the desired language to some form of intermediate code somewhat similar to p-code, the rest is done in backend, or perhaps I'm wrong). And both languages are soooo... similar (especially in respect to translation to assembler).

      --
      You can defy gravity... for a short time
  75. Worst. Programming. Language. Evuh! by kclittle · · Score: 1
    Having now programmed in 20+ programming languages over 30 years, I can honestly say that Pascal was the one I detested most. C (tight, terse, sharp, powerful!) was such a revelation. A bit dangerous if you misused the power? Yes, but so are many if not most professional-grade tools (think of an 18-wheeler vs. a go-kart, a 30-ton press vs. the hand-operated metal-bender you used in 8th grade metal shop).

    Note how many of us are still programming in C or C++, and how much commercial and OSS software is written in that language family, vs. Pascal. No contest. Good riddance!

    --
    Generally, bash is superior to python in those environments where python is not installed.
    1. Re:Worst. Programming. Language. Evuh! by hsoft · · Score: 1

      There are much more (and good!) application written in Pascal than you think. Sourceforge has, I think, a good amount of project written in Pascal.

      Basides, C is so ungraceful. bleh!

      --
      perception is reality
    2. Re:Worst. Programming. Language. Evuh! by gatkinso · · Score: 1

      >> ...20+ programming languages over 30 years...

      Jack of all trades, master of none? ;-)

      (Just kidding - really.)

      --
      I am very small, utmostly microscopic.
    3. Re:Worst. Programming. Language. Evuh! by kclittle · · Score: 1
      Hey, now I'm in love with Python! You'd think I'd find a nice, pretty little language and settle down, wouldn't you! :)

      -k

      --
      Generally, bash is superior to python in those environments where python is not installed.
  76. Pascal in 1971 by shallow+monkey · · Score: 1

    Wirth published "The Programming Language Pascal" in 1971 in Acta Informatica, Volume 1. Pascal is 33 years old!

  77. I don't think this is correct... by kjones692 · · Score: 2, Funny

    There have been newtons per square meter for much longer than 30 years...

    *ducks*

    --

    Love the Third Amendment?
  78. OMG! you too! by museumpeace · · Score: 5, Interesting

    Mac Pascal, Lightspeed C! I thought I was the only living person who climbed that learning curve. Problem was; it turned in to a learning cliff that I then fell off. I was good for nothing but assembler and BLISS for years until Pascal came along. This means we are due for a birthday party for the original MS-Basic pretty soon.
    But didnt Pascal lead people to think of P-code which foreshadowed Java bytecode? a link off the article's link seems to agree with my memory...so i better not read it too carefully;)

    and I certainly didn't use pascal just for academics. When I execavated the basement hole for my house, on an ostensibly unbuildable scrap of bedrock-studded land, a pascal contour mapping program that I wrote detected the one spot where the bedrock would be flat and need no blasting...back hoe guy was amazed an amateur could show him right where to dig.

    --
    SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
    1. Re:OMG! you too! by Anonymous Coward · · Score: 0

      When I execavated the basement hole for my house, on an ostensibly unbuildable scrap of bedrock-studded land, a pascal contour mapping program that I wrote detected the one spot where the bedrock would be flat and need no blasting...back hoe guy was amazed an amateur could show him right where to dig.

      This is one of the nerdiest, smartest and coolest things I have heard in quite a while. And I frequent Slashdot. Hats off to you, Sir!

    2. Re:OMG! you too! by Anonymous Coward · · Score: 0

      yes, the p-code. java popularized p-code concept. amazing how things recycle when you hang around long enough. anyone remember uscd pascal implementation on apple ii?

      here's a glass to mr. niklaus wirth (sorry for mispelling).

  79. Function Nesting by Aidtopia · · Score: 2, Insightful

    There's one thing I really miss about Pascal: nested procedures and functions. Being about to write a little utility function in the scope of the function it helps is just so elegant. You don't have to pass a bunch of parameters to get them in scope. Nobody else can miscall your utility function because it's not out in the global namespace. It's immediately clear to people reading your code that it's just a subordinate helper and to which function it belongs.

    Function nesting is a feature sorely lacking from languages like C. It's not to hard to work around this limitation in an OO language, but the solution is still not as elegant or efficient.

    And even after 15 years of C and C++, it still makes more sense to me to use = for comparison and to have a special symbol like := for assignment.

    1. Re:Function Nesting by Anonymous Coward · · Score: 0

      Sounds to me like you'd enjoy Scheme! The following code demonstrates all those things:
      (define (factorial x)
      (define (helper x acc)
      (if (= x 0)
      acc
      (helper (- x 1) (* acc x))))
      (helper x 1))

      The Scheme := is called set!.

    2. Re:Function Nesting by Anonymous Coward · · Score: 0
      The major raison d'etre of C is ease of implementation. C compilers absolutely must exist everywhere. It's no accident that C is the most portable language on the planet (and probably will be for decades still), and Pascal is...well...not :). Nested functions are non-trivial to implement.

      GCC's nested function extension is implemented pretty cutely, but it takes work to get that working. In general you have to put in at least as much work as to write a full lambda-lifter.

      For C++, absolutely. The raison d'etre for C++ is entirely different. It's supposed to be so completely over the top that no mortal can learn it. In this light it makes a lot of sense to throw in neat features like nested functions. Actually, someone correct me if I'm wrong, but I believe there has never been a complete implementation of a C++ compiler (such that it conforms to the C++ standard in its entirety)? Yikes.

    3. Re:Function Nesting by Anonymous Coward · · Score: 0
      The problem is that the semantics of a block structured language (like Pascal or C) mean that nested functions should close over their variables.

      Imagine if C had nested functions. You could write something like this:
      (int(*)()) f() {
      int i = 1;
      int g() { return i++; }

      return g;
      }
      But that requires stack frames to be dynamically allocated and garbage collected.
  80. Today by GeekDork · · Score: 4, Funny

    Today, we have Python, and whitespace-sensitive code is fucking BACK!

    --

    Fight hunger. Filet a politician and send him to a 3rd world country of your choice.

    1. Re:Today by metamatic · · Score: 1
      Today, we have Python, and whitespace-sensitive code is fucking BACK!
      ...and it still sucks, for most of the same reasons it sucked 30 years ago.
      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  81. LISP at MIT by peter303 · · Score: 2, Informative

    At MIT the required first computer course uses the 47-year old LISP language, at least the object-oriented, modular version called SCHEME. I guess this partially intertia, having done this since the 1970s. All electrical engineers and computer sci majors are required to take this course. That can be 40% of MIT undergrads in popular years.

    1. Re:LISP at MIT by geg81 · · Score: 1

      at least the object-oriented, modular version called SCHEME.

      Scheme is neither object-oriented nor "modular" (in the sense of having built-in modules). That's probably why it is a good teaching language.

      I guess this partially intertia, having done this since the 1970s

      Maybe it's because it's working for them.

    2. Re:LISP at MIT by Anonymous Coward · · Score: 0

      I think it is more than inertia.. their beginning course is truly remarkable (I've seen it online). But their admission process probably filters out the average student. The average student would surely fail their beginner's course.

    3. Re:LISP at MIT by rsheridan6 · · Score: 1

      It's more than inertia. look at what they have first year students doing at MIT -implementing interpreters and object systems and stuff like that. Scheme is the only language with which you could reasonably expect freshmen to do that, having started the semester not even knowing the language.

      --
      Don't drop the soap, Tommy!
    4. Re:LISP at MIT by peter303 · · Score: 1

      I would guess about 60-75% of MIT freshmen would already have programmed in more "trendy" languages before coming to MIT. SCHEME is intended as a teaching language, not to get an immediate job.

  82. I used Pascal( could you pass me the Geritol?) by d3cr33p · · Score: 2, Interesting

    It is a riot to read through all these posts on Pascal.

    When I was knee high to a grasshopper I used Pascal to...

    I remember once using pascal in high school to...

    Man, Pascal is such a great language! Why I remember the last time I used it, it was just like yesterday...25 years ago...

    Cut me some slack! Yes, it is a good language, I even have used it from time to time. But the adjectives pleasurable, cool, awesome, etc., are not what I would use to describe the experience. Perhaps okay, humdrum, yawn and eh? are some words I could use.

    I know that people still use it but Borland/Inprise (yeah, remember the Inprise fiasco?) seem to do a real good job killing it. In fact, I would go so far as to suggest that Borland is Delphi's worse enemy.

    I won't go down the list of things I hate about the language or Delphi, but if I were looking for a language to use for my next project, and I read the posts here, I would NOT choose a language that seems to have only fond memories going for it (btw, try doing a search for books about Delphi on Amazon).

    If Delphi is so good and [ any language pascal users hate ] is so bad then how come Delphi is doing so miserably in the market? Ok, Ok! Yes, if you go to Brazil or the Ukraine EVERYONE and their grandmother is using it. But for as sucky as C/C++ (according to Pascalites) is it sure gets a whole LOT more air time then Pascal/Delphi. We could blame it on MSonopolies and cooperations, but that doesn't seem to go vary far either when you look at the open source community. And if cooperate America drove the use of language (not saying they don't have some say it it) then Java would be a rip roaring hit. Is it? NOT! It has a following but even it bills itself as a language that is much like C++. Even C# has a very C-ish look and feel (with a very Pascal-ish smell).

    I remember once during a Delphi campaign Borland (or were they Inprise then?) tried to convince VB programmers that moving to Delphi would be easy and painless. If that doesn't give you chills then you are dead.

    Sometime, if we all get together, I will show you my b&w photos of me using Pascal.

    1. Re:I used Pascal( could you pass me the Geritol?) by Greyfox · · Score: 1
      It was fun at the time and a hell of a lot better than basic, which was a requirement to get into the Pascal classes at my high school. I did some nifty stuff with Apple Pascal and the turtlegraphics library that came bundled with it.

      These days I don't like any of the languages that came from Wirth, but nostalgia is nostalgia.

      Anyway, with the stuff Alexandrescu's doing with templates in C++, you can now do type accounting that would make any Pascal programmer blush with shame. The C++ learning curve is nasty, though.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  83. Long live Pascal! :) by Corson · · Score: 1
    I have been using Pascal on multiple platforms for... what, 20 years or so? and I am still using it on Linux in various projects. You know what? It's the best language ever created for a scientist or any other kind of non-IT profession. IMHO, the two greatest disasters that have ever happened in computer programming are the advent of the C and Java languages. Let me explain (cause I can hear your laughter from here).

    C was created for writing operating system(s), recte Unix; therefore, it has features required for that task: flexibility in terms of data type passing, CPU instructions, a.s.o. Now what happened was, all geeks determined they had to do their software development in C, even if they were not involved in system programming. For someone who doesn't do programming for a living, strong typing (see Pascal) is a very good thing, as it avoids common errors. Then, someone decided C was not good enough because OOP in C/C++ was not an easy endeavor (true) so they invented Java, only they removed some very good things in the process, such as pointers and (user-controlled) dynamic memory allocation. And for those sysadmins who are still in love with C but all too aware of its limitations there is always Perl, a mutant born from a happy C + unix shell scripting marriage.

    Thus, I canot repeat it often enough, long live Pascal!

    1. Re:Long live Pascal! :) by Knights+who+say+'INT · · Score: 1

      Sorry, Matlab/Octave is the best language for scientists.

    2. Re:Long live Pascal! :) by Corson · · Score: 1

      Not all scientists are mathematicians, or, for that matter, do maths. :)

  84. I can still remember my Pascal days... by mOoZik · · Score: 1

    Sigh, those were the days. Just the other day I found a floppy-load of programs I had written a decade ago. What a great feeling! It's a great language to learn programming with. Happy Birthday!

  85. Welcome by lildogie · · Score: 5, Funny

    > this is also my first post,
    > so i wish to formally introduce myself to the /. community!

    Welcome to Slashdot.

    Just be careful with the words "first post!"

  86. Re: Long live Pascal! by Anonymous Coward · · Score: 1, Interesting

    I have been using Pascal on multiple platforms for... what, 20 years or so? and I am still using it on Linux in various projects. You know what? It's the best language ever created for a scientist or any other kind of non-IT profession. IMHO, the two greatest disasters that have ever happened in computer programming are the advent of the C and Java languages. Let me explain (cause I can hear your laughter from here).

    C was created for writing operating system(s), recte Unix; therefore, it has features required for that task: flexibility in terms of data type passing, CPU instructions, a.s.o. Now what happened was, all geeks determined they had to do their software development in C, even if they were not involved in system programming. For someone who doesn't do programming for a living, strong typing (see Pascal) is a very good thing, as it avoids common errors. Then, someone decided C was not good enough because OOP in C/C++ was not an easy endeavor (true) so they invented Java, only they removed some very good things in the process, such as pointers and (user-controlled) dynamic memory allocation. And for those sysadmins who are still in love with C but all too aware of its limitations there is always Perl, a mutant born from a happy C + unix shell scripting marriage.

    Thus, I canot repeat it often enough, long live Pascal!

  87. Too bad Borland prices it wrong. by Shivetya · · Score: 1

    What is wrong with providing an installer at the base package like the MS products?

    I would have stuck with Delphi if I could match the feature set of Visual C#/C++ . Yet to get some of the more useful tools (like the ability to build installers) I had to buy the expensive versions.

    Borland killed Delphi with their upgrade costs and constant downgrading what was packaged. The left behind the hobbyist who went to JAVA and C++/C# simply because better tools were available at a better price.

    --
    * Winners compare their achievements to their goals, losers compare theirs to that of others.
  88. Re:30th anniversary... D&D and Pascal by Steve1952 · · Score: 2, Interesting
    The overlap between the D&D community and the UCSD pascal community was pretty high. I myself was at UCSD in 1978, playing D&D and taking the UCSD pascal course. All the D&D programmers knew that the game was well suited for computers, and most programmers were into that sort of stuff.

    I finally got my own Apple II in 1981, and promptly tried to write a program called "Dial a Dungeon" - a multi user modem text based dungeon. Alas, too big a project for me, and thus never finished.

  89. Die, bubble sorts, DIE! by coyote-san · · Score: 1

    Whoever first thought anyone should be taught bubble sorts should be taken out and shot. If they're already dead they should be dug up, shot, and reburied.

    Bubble shorts give you absolutely no asymptotic benefit over insertion sort. The instructors do a song and dance about how values tend to migrate into the right position, but you still have to check every remaining value every single time. So you only get modest benefit if you stop the sort early - who could possibly consider this a useful property?

    Even among the O(n^2) algorithms they're outperformed in practice by every other algorithm. They're more costly than unidirectional insertion sort (because of all of the swapping), and far slower than bidirectional insertion sort. (Scan the records and find the smallest _and_ largest values. Swap with first and last positions. Repeat on remaining elements.)

    H***, even the bidirectional bubble sort (which is like a bubble sort but again you run it one way and percolate the largest value to the top and then run it the other way to percolate the smallest value to the bottom) is faster than that stupid sort. E.g., while percolating the largest value you can also take note of the smallest value seen. Immediately swap it, then run the bubble sort the other direction and take note of the largest value seen. This gives you two values per pass.

    The bubble sort is important... but only as an example of a seemingly good but in reality really brain-dead algorithm that's studied as a cautionary tale in graduate algorithm classes.

    --
    For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
    1. Re:Die, bubble sorts, DIE! by Anonymous Coward · · Score: 0

      No, it also serves well in the importance of timing and profiling code.

      for realistic datasets, bubblesort isn't very good, but if you have a small dataset and a machine w/o lots of memory, bubblesort may be appropriate. bubblesort is not a memory hog like quicksort and mergesort are.

      It should also open up the programmer's awareness that there are areas of tradeoff as well. Execution speed? Memory availability? edge cases (i.e., a mostly-sorted dataset one direction or another)?

      Funny, I remeber the CS210 class talked just about these factors, and other algorithm books point them out also when talking about sorting.

      Also, Bubblesort can serve as an introduction to polymorphism, interfaces, generics, also. It's simple enough to develop in 5 minutes, and can serve as the basis for the teacher to say to the students, "OK, take your Bubblesort program and replace the Bubblesort library with your implementation of qsort."

      Sure, anyone who uses it in production code for anything other than trivial datasets needs some rubber-hose conditioning, but when this comes up in CS classes, that's not the point at all.

  90. You think that's bad... by ucblockhead · · Score: 1

    When I took my first datastructures class, the Prof had just gotten one of the first copies of "cfront", the first implementation of C++. Try doing that when neither the prof nor any of the TAs know the language!

    --
    The cake is a pie
    1. Re:You think that's bad... by Just+Some+Guy · · Score: 1

      Ouch! I bow to your superior horror!

      --
      Dewey, what part of this looks like authorities should be involved?
  91. Re:Jefferey's first post by xoran99 · · Score: 1
    Damn dude, you almost got a first post first post!

    Strange, I would've called it a first first post post.

    --

    Karma: Bad (mostly due to all those "In Soviet Russia" jokes)

  92. Hey, fighter planes (and Space Shuttle?) software by PaulBu · · Score: 1

    ... is programmed in Pascal derivative! ;-)

    (and hardware is designed another one as well)

    Pascal -> modula -> modula 2 -> Ada (fighter planes and other DoD S/W) -> VHDL (hardware)

    As to education, the original intent (as far as I remember) was not only to teach "Introduction to Programming" in Pascal, but "Compilation and Interpretation of Languages" as well -- thus syntax intentionally suitable for writing a simple enough Pascal compiler in Pascal itself.

    Paul B.

    P.S. And, of course, it is quite proper for UCSD to host the event -- I have fond memories of good old UCSD Pascal (compiled to P-Code!) running on Bulgarian clones of Apple ][! ;-)

    Paul B.

  93. and Basic too by plopez · · Score: 2, Informative

    Both Pascal and BASIC were intended for teaching only. Unfortunately both were pressed into areas they were not originally designed for and had to be retrofitted.

    THere is a discussion above about production languages vs teaching languages being taught at this time. My opinion being better a production language, because when the Business Admin types take their intor to programmig class they will not be left with the impression that a teaching language is a real programming language.
    THen force programmers to deal with what often amounts to crippleware when they are tasked with managing a software project.

    --
    putting the 'B' in LGBTQ+
  94. Yeah, they taught that as an intro language at my alam matter Truman state university. Can't say that I cared for the language. I really think its a poor choice. Its not used for much outside of the aviation industry, and its not very simular to any other language outside of pascal/delphi.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
  95. Ah, the good old days by Brackney · · Score: 1

    I remember first learning Pascal w/ Tiny Pascal on my Trash-80 Model 1, then moving to an early version of Turbo Pascal under CP/M on my Model 4P. I wrote all the code for my M.S. and Ph.D. projects w/ Turbo Pascal on 386's. Good times...

  96. My first consulting gig---California style by Brad+Lucier · · Score: 1

    After SofTech Microsystems was founded to support UCSD Pascal I offered to rewrite the elementary function routines (sqrt, sin, ...). The negotiations were interesting; Mark Overgaard said something like "Well, here's the thing---if we're going to do business then you'll have to visit in person, and during the visit there will have to be these vibrations, and they'll have to be good vibrations ..." I laughed so hard on the phone I nearly fell out my chair, but anyway the deal got done and delivered around June 1981.

    Later I bought an IBM PC and after testing the elementary functions in MicroSoft Basic (they were crap) I offered to rewrite them. MicroSoft replied that they had already shipped that product, they weren't fixing anything in it now, they were on to other things. I thought that any company that had such a cavalier attitude to quality could never do well in the market; boy, was I wrong.

    A few years later some bit of random testing showed that double-precision floating-point multiplication in MicroSoft Basic sometimes returned results accurate to only single precision. But, hey, the product was shipped and paid for, they were on to other things!

  97. hurrumph! by bball99 · · Score: 1

    - real programmers use assembly language...

    - casts in programming for the early Mac OS drove me nutz!

  98. Re:Lisp (not "LISP") at MIT by synthespian · · Score: 1

    I guess it says something about M.I.T. and about the Lisp "family" (Common Lisp, Scheme and Islisp). By the way, nobody writes "LISP" anymore, and I guess it's been that way for more than a decade (or two, maybe).

    I don't think anyone would dispute the M.I.T. is a great institution, capable of the most creative and excellent research. So, why is it they /require/ you to learn Scheme (Lisp), instead of any of the fashionable languages-du-jour? Maybe it's got something to do with the fact that you can bend Lisp a lot, and it doesn't break.
    Think about that.

    --
    Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
  99. And it's easy to implement by chazR · · Score: 2, Informative

    If you want to build your first compiler, Pascal-style languages are a good place to start. They are amenable to recursive descent parsing.

    I strongly recommend Jack Crenshaw's (free) introduction.

    I seem to remember that the compiler is written in Pascal. I translated it to C as a I went along. You could always use GNU Pascal (That's a google link, because the site seems to be refusing connections. Could that be related to this FPP?)

    1. Re:And it's easy to implement by pkhuong · · Score: 1

      Algol-like being basically the hardest kind of language to parse, and not exactly orthogonal, that's like saying it's the least bad of the worst. Small functional languages (just allocate everything on the heap - and note i didn't say Lisp. No parens if you truly despise sexp :) or concatenative languages are probably easier to parse and to compile.

      --
      Try Corewar @ www.koth.org - rec.games.corewar
    2. Re:And it's easy to implement by Charvak · · Score: 1

      The easiest compiler to write must be LISP. In my college it was given as an assignment. While writing a C compiler was a term project.

  100. teach 'em to think or teach 'em to program? by museumpeace · · Score: 1

    Lisp is a language that doesn't get in your way with a lot of syntax...the very opposite of , say Ada which presumes [with its 277 BNF production rules] to have a sytactic straightjacket that will keep you from doing something stupid. Knowing how to think: analyzing, compartmentalizing and being able to create coherent whole solutions from components is something you are as likely to learn as a physicist or a mathematician. Knowing how to program is all that a BSCS degree promises and with that you can get programming squables of the sort going on between McKitrick and Michaels. Knowing how to think, it is handy to have a language like Lisp that is amorphous, taking its shape from your structuring of the problem/solution. This begins to sound like academic BS but harken: Here is a company that wrote the world's fastest airfare pricing engine in Lisp and makes a nice living selling its services to travel booking websites like Orbitz. But you have to think to get a job there! their job application has a humbling day-long programming test in the language of your choice that would sorely try any Google applicant's skills.

    --
    SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
  101. 33rd anniversary actually... by blackcoot · · Score: 1

    ...since niklaus wirth defined pascal in 1971.

  102. Ahhh, the good 'ole days! by tilleyrw · · Score: 1

    Pascal is a well respected language from the beginning of my foray into Computer Science.

    The strong formatting of my preferred compiler then, THINK Pascal on the Macintosh, helped instill a respect for structure in my programs and formatting in my source code.

    Many were the lessons learned in that era of youth and many were the tears shed when the things of youth were left behind for the toys of adulthood.

    Who here doesn't love to browse the selection of ThinkGeek? Come 'hon ... you know who you are...

    --
    This post encoded with ROT26. If you can read it, you've violated the DMCA. Handcuffs please, sergeant.
  103. Turbo Pascal! w00t! by StM.Rawder · · Score: 0

    I remember sitting in a Borland Turbo Pascal class when I was about 14. The instructor always had us type the same paragraph for the first 15 minutes of class, which got really old. I could code basic by then and as soon as I figured out what arrays and procedures were, I wrote a little program that immitaded the GUI and typed the paragraph for me, haltingly and one char at a time (in case she walked by all I would have to do is tap at the keyboard and it would look like I was typing.) That class was very fun, and even more fun was always having the upper hand on the teacher! Gawd we always pwned her so bad. Wed do stupid stuff like makeing some graphcolormode_boobs_and nasty message, compile it to .exe, copy to her comp and call it out in the autoexec.bat file :D I miss that

    --

    ---
    My sig was stolen - the insurance company replaced it with this one.
  104. UCSD Pascal Museum by jfoust2 · · Score: 1

    Check out http://www.threedee.com/jcm/ for more history of the Terak computer and the p-System. A pure bitmap display with 320 x 240 mono graphics, pan/scroll, a software-driven speaker and sound, all designed as a desktop personal computer, wow! It's right there in the history books next to Xerox PARC machines and the PERQ.

    In November 1981, an Terak 8510/a with a PDP-11/03 CPU, 56K of RAM and one floppy drive was $8,935. And extra floppy drive was $2,570. You could even upgrade to color graphics at 640 x 480 by eight colors for $10,550. A ten meg hard drive was $7,985.

    One of my functional Teraks was invited to take part in the 1970s History exhibit at SIGGRAPH 98, celebrating the 25th anniversary of the ACM SIGGRAPH conference, the annual gathering of the computer graphics industry.

    The p-System was one of the operating system alternatives for the original IBM PC, apart from MS-DOS and CP/M-86. If you can find them, the disk images for that p-System will still run in a command window under Windows, if you preload ANSI.SYS.

    Another reference to the reunion is http://www.alumni.ucsd.edu/magazine/vol1no3/featur es/pascal.htm .

    This Terak page won the "Geek Site Of The Day" Award on October 16, 1996.

    - John

    --
    Curator of the Jefferson Computer Museum http://www.threedee.com/jcm
  105. Knuth, TeX, Pascal by Anonymous Coward · · Score: 0

    I've read claims that TeX's source language is in Pascal, which is translated from a still higher-level language that generates source code and documentation. Anyone know more?

    1. Re:Knuth, TeX, Pascal by Anonymous Coward · · Score: 0

      TeX was written in a language called "web" (a "language" of Knuth's own creation). If I remember right, web was a kind of meta-language that would just let you interleave code with huge chunks of documentation. The web TeX was written in had a C backend (which is why you need to download a simple pre-processor called "web2c" to compile it), but maybe there is some Pascal in there (or was) at one time, I don't know.

  106. in pascal = really does = = by Anonymous Coward · · Score: 0

    assignment operator should not equal '='

    plain and simple :)

  107. Pascal ruined me by sdedeo · · Score: 1
    Oh the memories! Before the curriculum switched to C.

    Actually rather annoying. I'm a scientist now, so I will never get a good programming education -- high school's bubble sorts and linked lists are all I have. But everything in the sciences is done using C, and I don't have the time to sit down properly and grok syntax and style the C way.

    Including all those C subtleties when dealing with two dimensional arrays. So I write C as if it's Pascal, with none of that pointery elegance.

    (Of course, the old school here uses FORTRAN, which we have to learn to read, but FORTRAN is really just the Apple IIe BASIC with procedures and local variables instead of GOSUB. [ducks huge flamewar (?)])

    --
    Protect your liberties. Donate to the ACLU
    1. Re:Pascal ruined me by 21mhz · · Score: 1

      Including all those C subtleties when dealing with two dimensional arrays. So I write C as if it's Pascal, with none of that pointery elegance.

      Generally, you wouldn't need pointers (nor want them, for the sake of clarity and validity) when you do arrays in loops. A modern optimizing compiler will take care of that for you.

      Still, with multidimensional arrays, it's useful to understand how they are laid out in memory, so as to avoid going "against the grain" of cache locality.

      --
      My exception safety is -fno-exceptions.
    2. Re:Pascal ruined me by geg81 · · Score: 1

      Including all those C subtleties when dealing with two dimensional arrays.

      ANSI C99 has regular multidimensional arrays, just like in Pascal or Fortran 77.

      So I write C as if it's Pascal, with none of that pointery elegance.

      That's a good thing, believe me. Use pointers sparingly. And C pointers are rarely elegant.

  108. Pascal remberances by nsayer · · Score: 1

    I fondly remember Apple pascal, which was based on the UCSD p-System. Perhaps I've led a sheltered life, but that was the only filesystem I ever used that required contiguous file allocation. Defragmentation wasn't merely an optimization, it was often required to get a large enough block of free space to actually use!

    Anyway, sometime later I got a PCPI Applicard and ran CP/M on my Apple. The PCPI was very hackable, since unlike the Microsoft CP/M cards, it didn't try to share any of the resources of the Apple motherboard. Instead, it was a complete Z-80 running independently in its own 64K RAM space and communicating with the Apple across a parallel port. The Apple could spend its processor time buffering keystrokes and print jobs, and since the timing was not critical, you could "overclock" the Z-80 very easily. I wound up at one point with a 10 MHz Z-80 that was actually able, with Turbo Pascal, to compile programs faster than the x86 machines in the school's lab (and they were state-of-the art at the time)!

    I still have that Applicard somewhere. I don't have an Apple ][ to put it in, but I just can't seem to let go of it.

    I do, however, still have an installation of a p code interpreter from the FreeBSD ports tree. It can even do turtle graphics. Fun!

    1. Re:Pascal remberances by Mark+of+THE+CITY · · Score: 1

      Defragmentation wasn't merely an optimization, it was often required to get a large enough block of free space to actually use!

      Yes. And we call FAT crude...

      --
      The clearance system sounds logical. It is not. It is completely arbitrary. -- John Bolton
  109. Free Pascal by Anonymous Coward · · Score: 2, Informative

    There is also Free Pascal that is Delphi compatible.... and Lazarus that use Free Pascal and is Delphi-like (Visual Pascal)... Write once, comile everywhere (Win32, *nix, Mac, BeOS, etc, etc, etc.).

  110. The UCSD Pascal Machine by herc_mk2 · · Score: 2, Interesting

    At my first job (in 1980) we did some programming with UCSD Pascal, although the majority of our work was in assembly (Z80 and friends). We dabbled around with UCSD Pascal on our CP/M machines and on a customer's Apple ][ and the performance was quite acceptable.

    Then we got this strange beast -- I think it was a modified DEC PDP-11/03. IIRC, the 11/03's CPU was actually 3 chips: a core and what was essentially two microcode PALs. The microcode chips were replaced with ones that executed p-code (rather than PDP machine code). There was no interpreter -- raw execution of the p-code in hardware. It was so blazingly fast that we couldn't believe it. It was probably a 16-bit architecture too, so that may have helped (or was the PDP-11 one of those oddball 18-bit machines, 6 octal digits to a word...)

    We never had a case for it, it just sat on the workbench on antistatic foam, with wires leading out to the floppy drives and the terminal. We did all of our Pascal development on that box, then moved it to the Apple (the customer's machine) for the "beta testing." It was mostly UI, so the performance didn't really matter.

    Eventually, we switched to using C, since Pascal wasn't too practical for the embedded systems we were designing: we were mortified to see a compiled "hello world" was 8K bytes in size! That was four ROMs in those days... C had a much smaller footprint, so we began using it.

    But I still wonder whatever happened to that machine...

    1. Re:The UCSD Pascal Machine by herc_mk2 · · Score: 1

      Hmm, after posting, I did some googling and found this:

      Western Digital had a contract with DEC to supply chipsets for the DEC LSI-11 computer. When DEC suddenly canceled the contract, Western Digital found themselves stuck with a warehouse full of useless LSI-11 chipsets. In an attempt to salvage at least some of their investment they went looking for something else to do with the parts. The chipsets were microprogrammed and consisted of up to six chips: a RALU (Register ALU) chip, a controller sequencer chip, and up to four microcode ROMs. The UCSD p-System and UCSD Pascal were very popular at the time and Western Digital decided that there might be a market for a machine that ran the p-System as its native Operating System. They disposed of the useless LSI-11 microcode ROMs and developed new microcode for the UCSD p-Machine instruction set (p-Code). Thus creating a new machine from the ashes of an old one.
    2. Re:The UCSD Pascal Machine by DaWorm666 · · Score: 1

      Wow! I'd love to have one of these to add to my collection of obsolete computers!

    3. Re:The UCSD Pascal Machine by durdur · · Score: 1

      The machines running the P-system in firmware never caught on. They were expensive and proprietary - the ones I know about had a very limited production run before they were discontinued. They ran a special version of the P-system. Most people at UCSD (myself included) ran the P-system on the University's Terak microcomputers, a very early pre-IBM PC beast with 8 inch floppies.

  111. blah by Is0m0rph · · Score: 0

    I worked for a couple years writing Turbo Pascal applications for real time auto emissions analysis. I have not missed it since I left that company.

  112. FREE PASCAL! by Anonymous Coward · · Score: 3, Informative

    Both apps are Free Software (GPL).

    www.lazarus.org

    www.freepascal.org

    Lazarus := Delphi-like (almost a clon) IDE for Win32 AND Linux. It's API independent: can use transparently GTK+, Windows graphic system... etc.

    FreePascal := Portable? no problem! It's available for different processors Intel x86, Motorola 680x0 (1.0.x only) and PowerPC (from 1.9.2). The following operating systems are supported: Win32, Linux, FreeBSD, NetBSD, MacOSX/Darwin, MacOS classic, DOS, OS/2, BeOS, SunOS (Solaris), QNX and Classic Amiga.

    The language syntax is semantically compatible with TP 7.0 as well as most versions of Delphi (classes, rtti, exceptions, ansistrings). Furthermore Free Pascal supports function overloading, operator overloading and other such features.

    Try it! Or, at least visit the web sites.

    1. Re:FREE PASCAL! by Anonymous Coward · · Score: 0

      Unfortunately Free Pascal is only compatible with Delphi 3; thereafter it diverges. Its implementation of function overloading, for example, is NOT COMPATIBLE with the implementation used in all versions of Delphi from 4 onwards.

      As all my Delphi code is Delphi 4 and makes heavy use of function overloading, this is a bit of a showstopper for me. If I'm going to have to rewrite my code to use it on Linux anyway, the advantage of sticking with Pascal becomes somewhat less...

  113. Eh? by pjt33 · · Score: 1

    Java has strong typing; its references differ from pointers in that you can't do arithmetic so array access always requires bounds checking (shock horror!); and memory is dynamically allocated by the "new" keyword.

    1. Re:Eh? by Corson · · Score: 1

      But can you create a pointer to a list of pointers and programatically clear from memory (dispose) the n-th element in the list?

    2. Re:Eh? by pjt33 · · Score: 1

      No, so you can't get double-free bugs.

    3. Re:Eh? by Corson · · Score: 1

      Where did you read that? I have developed software that used recursive function calls, dynamic pointer structures, and dynamic memory allocation extensively, and ran it for days on Linux and UNIX machines (including a Cray) to successfully compute phylogeny trees, all without a glitch and in Pascal. I cannot imagine how my problem could have been solved without those features.

    4. Re:Eh? by pjt33 · · Score: 1
      Where did you read that?
      When you say
      programatically clear from memory (dispose)
      surely you're talking about free()? And where free() exists, double-free() bugs can exist. The alternative is garbage collection, which is safer but less amenable to real-time constraints.
  114. Starting with SmallTalk... by wwwillem · · Score: 1

    If I would start with a bunch of guys/gals fresh to programming, it could be I would start with SmallTalk. I know it's old, very old, and will have to fall back on "outdated" implementations, but there are still many around, but the advantages are IMHO great.

    SmallTalk is fun!! SmallTalk is small, that helps to understand it quickly. SmallTalk is probably the most pure OO language. I read some posters saying that you better start procedurally and then move on in the next year. Well, I started 20 years ago procedurally (Fortran, then Pascal, then C, then Java) and I still have trouble making the transition to OO. I witnessed others who were never, ever infected by procedural programming and they "got" the OO way of thinking 10 times faster than me.

    So, if you want to achieve that, and that all what teaching is about, you better start with a language that is pure, that is small, that is fun and who cares if it is by now irrelevant.

    My main message is: If you have students that are still "programming virgins" :-), don't infect them with any procedural stuff. There's still plenty of opportunity later to learn stuff like C, Assembler (!!) and such.

    Ohhh, and if you want to start OO, but not with something as irrelevant as SmallTalk, then the only choice is of course Java!!!!

    --
    Browsers shouldn't have a back button!! It's all about going forward...
  115. *Undergraduate* bubble sorts? by GreenPenInc · · Score: 1

    They teach those after high school? I only recall insertion sort and a bevy of O(n lg n) sorts.

    Actually, I remember one study we did in a first year algorithms class where a bunch of sorts were ranked using averaged actual system times. Bubble sort came in second-last... with the worst sort being a modified Bubble Sort that aimed to improve performance :)

    1. Re:*Undergraduate* bubble sorts? by kst · · Score: 1

      You've apparently forgotten about Permutation Sort (generate all permutations of the array; the optimized version allows you to stop when you find one that's sorted). It's O(N*N!).

      Then there's Miracle Sort. Check whether the array is already sorted. If it is, you're done. If not, wait a while, pray for cosmic rays, and check again.

  116. Programming is all about the computer by Anonymous Coward · · Score: 1, Interesting

    You're there to learn computer programming, which is why ASM, C, and C++ should be taught.

    Contrast this with Pascal or Java, which are designed to hide the "difficult" parts of the computer from view. With those languages, you learn a programming language, not computer programming. Part of the reason performance is so bad in high level languages, is not because of the language itself, but because of the unskilled programmers who choose those languages.

    Only by using a language which exposes the internal workings will one ever have a true understanding of a computer. I know I would have had a lot easier time if my college classes had started with Assembly and C rather than Pascal and Visual Basic. It took me a tremendous amount of effort to "unlearn" the bad habits of those languages and gain an understanding of the "computer" part of computer programming.

    Once you've gained a mastery of low-level code, then you are better equipped to deal with ultra-high level languages like Java and C#. You will know which operations consume the most amount of CPU, and how to avoid memory leaks in the garbage collectors (which happens when you aren't paying attention to stale references you left lying around). You will understand how common data structures like linked lists and hash maps work because you've written your own for practice, so you'll be able to choose the right one for the task at hand...

    Or perhaps, like me, you will realise that after trying Java and C#, you are still happiest with unfashionable languages like C++.

    1. Re:Programming is all about the computer by Anonymous Coward · · Score: 0

      You're there to learn computer programming, which is why ASM, C, and C++ should be taught.

      no. you're there to learn to solve problems. Dykstra would be turning in his grave if he heard you say what you just said (and if he was dead).

    2. Re:Programming is all about the computer by ffallen · · Score: 1

      Oh BS... I use inline assembly and pointers and just about everything thats in C in Delphi. You have no clue of what you are speaking. Pascal doesn't hide the difficult part, it just makes it more readable.

  117. Lisp is easier. by chazR · · Score: 1

    Agreed. Lisp is really easy to parse. But an algol-style language is easier to parse than one that needs LALR(1) parsing. But that's easier than....(on to natural languages). And algol can be fully parsed by RDP.

    So why are XML parsers so bloody slow? It's only a tree of sexps.

  118. on Linux too! by chaves · · Score: 1

    Kylix (http://www.borland.com/kylix/) is Borland's IDE for Object Pascal and C++ development for Linux. They even have an Open Edition, which is free but requires the code developed with it to be GPL'd. They have enterprise-level offerings too.

  119. OISC? by chazR · · Score: 1

    Agree. See subcomment here

    But a compiler that targets this

    LISP is easy iff the hardware has a stack.

    (I think I want that on a Tshirt)

  120. looks like lisp to me...at least its not APL by Anonymous Coward · · Score: 0

    from http://burks.brighton.ac.uk/burks/language/lisp/

    LISP is a list-processing language originally developed by John McCarthy at MIT in 1960 for use in artificial intelligence research. Notable for its use of lists enclosed in parentheses for representing both programs and data, it is sometimes said that LISP is an acronym for "Lots of Irritating Single Parentheses". The fact that programs and data are both represented as lists makes this one of the few high-level languages which can generate data and then execute it as code.

    The flexibility of Lisp means that many Lisp dialects have developed over the past 40 years, and Common Lisp was an attempt to re-unify those dialects in a single language. Common Lisp is the first ANSI-standardised object-oriented language, as it incorporates CLOS, the Common Lisp Object System (although Ada 95 still claims the record for the first ISO-standardised object-oriented language).

    Scheme (sometimes described as an "UnCommon Lisp") is a simple and elegant dialect of Lisp which is in widespread use in teaching and research, although it is perhaps closer in spirit to more modern functional languages like ML than it is to the original Lisp tradition

    about APL:
    http://www.users.cloud9.net/~bradmcc/APL.htm l#exam ple

    APL is a computer programming language unlike any other. This is obvious from the first instant you see an APL program: An APL program doesn't even look like other computer programs! --APL programs look more like algebraic formulas.... One Internet dictionary of programming languages describes APL thus: "Famous for its enormous character set, and for being able to write whole accounting packages or air traffic control systems with a few incomprehensible key strokes."(http://public.logica.com/~stepneys/cyc/p /prog.htm) (The example APL program shown, above, is explained in detail, below)

    APL is a computer programming implementation of a notation Kenneth E. Iverson, while he was a professor at Harvard, in the late 1950s, invented ("Iverson notation"), to facilitate succinctly describing certain mathematical propositions, and also to help teach mathematics (my view on this latter item, below). The notation came first; only later was the notation implemented as a computer programming language [APL], after Iverson came to IBM, in the early 1960s.

    To say that APL is unlike any other programming language may be an understatement. No ordinary language words are used in APL -- not even the almost ubiquitous computer word: IF. APL even requires a special computer keyboard, since much of the syntax consists of Greek letters and specially invented characters. Back in the time before television-like video display monitors became the normal way for computers to communicate with users, in the days of printing ("TTY", i.e.: "teletype"...) computer terminals that looked like over-large IBM Selectric typewriters, one needed a special "type ball" to print the APL.... [Author's note: My experience with APL ended about 18 years ago; I hear that, since then, things have changed: persons no longer need to use special keyboards, and "word-size" syntactic elements have been introduced, even "IF..." constructs. I have no idea to what extent the original radiant purity of the language may have been compromised.]

    APL's most obvious attribute is: succinctness. The APL community newsletter is (or at least used to be...): "QuoteQuad" (named after the APL print function[fn.24], which is a rectangle with a single quote mark at top center). Each issue contained a programming puzzle. In most computer programming languages, the challenge might be to solve the puzzle in the fewest lines of code. In APL, it is generally a given that the solution will be one line of code: The challenge is to solve the problem in the fewest characters!

    The heart of APL is a set of powerful built-in functions, which can be combined by indefinitely "nesting" functions, as the result obtain

  121. What Base Are They Counting 30 In? by klausner · · Score: 1

    Maybe it's 30 years for UCSD Pascal, but the Pascal language itself was developed by Niklaus Wirth in 1970. I make that 34 years. UCSD was far from the first implementation.

    1. Re:What Base Are They Counting 30 In? by Anonymous Coward · · Score: 0

      Looks like base 11.33... to me.

  122. Wow. by dark_fishbowl · · Score: 0

    It's hard to believe Dungeons and Dragons is a little older than Pascal.

    --
    -- juggling flaming chainsaws --
  123. SCUD Pascal Rules! by Anonymous Coward · · Score: 0

    SCUD Pascal Rules!

  124. Speaking of bubblesort by kst · · Score: 1

    Back in college (UCSD, graduated in 1981) I programmed in UCSD Pascal on Terak 8510 microcomputers. LSI-11 based, 56K RAM, 320x240 monochrome bitmapped display, 8-inch floppy drives. They were pretty cool for the time; even with everything running under the P-code interpreter, they didn't feel slow.

    By writing a 16-bit address into a specific register and twiddling a few bits in another, you could cause any specified 9600-byte chunk of memory to be continuously displayed on the monitor, updated 60 times per second. You could see dark vertical stripes every 8 columns if the displayed data happens to be ASCII text.

    The Pascal compiler used this to show the top of the stack and heap (which grew towards each other). If your program was too big to compile, you could actually watch the impending stack overflow as the two areas of furious activity got closer to each other; finally they'd collide and explode into an error message.

    I once wrote a program that mapped an array to the screen, filled it with random numbers, and ran Quicksort on it. You could actually see the recursion. I did the same thing with bubblesort; you could watch the region of activity move down the screen repeatedly. I never tried Shell Sort.

    Ah, those were the days.

  125. Pascal already 30? by Anonymous Coward · · Score: 0

    My God, I feel so old... I remember when back in the '80s I read some USENET article devoted to the macho side of programming which made the bald and unvarnished statement: "Real Programmers write in Pascal." Now, twenty years later, I often hear: "Real Programmers write in Perl."

    Maybe they do now in the 21st century, in this postmodern era of blogs, smartphones, and "user-friendly" software, but back in the Good Old Days, when the term "software" sounded funny and Real Computers were made out of drums and vacuum tubes, Real Programmers wrote in machine code. Not Perl. Not Pascal. Not, even, assembly language. Machine Code. Raw, unadorned, inscrutable hexadecimal numbers. Directly.

    Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name.

    I first met Mel when I went to work for Royal McBee Computer Corp., a now-defunct subsidiary of the typewriter company. The firm manufactured the LGP-30, a small, cheap (by the standards of the day) drum-memory computer, and had just started to manufacture the RPC-4000, a much-improved, bigger, better, faster -- drum-memory computer. Cores cost too much, and weren't here to stay, anyway. (That's why you haven't heard of the company, or the computer.)

    I had been hired to write a FORTRAN compiler for this new marvel and Mel was my guide to its wonders. Mel didn't approve of compilers. "If a program can't rewrite its own code," he asked, "what good is it?"

    Mel had written, in hexadecimal, the most popular computer program the company owned. It ran on the LGP-30 and played blackjack with potential customers at computer shows. Its effect was always dramatic. The LGP-30 booth was packed at every show, and the IBM salesmen stood around talking to each other. Whether or not this actually sold computers was a question we never discussed.

    Mel's job was to re-write the blackjack program for the RPC-4000. (Port? What does that mean?) The new computer had a one-plus-one addressing scheme, in which each machine instruction, in addition to the operation code and the address of the needed operand, had a second address that indicated where, on the revolving drum, the next instruction was located. In modern parlance, every single instruction was followed by a GOTO! Put that in Pascal's pipe and smoke it.

    Mel loved the RPC-4000 because he could optimize his code: that is, locate instructions on the drum so that just as one finished its job, the next would be just arriving at the read head and available for immediate execution. There was a program to do that job, an "optimizing assembler," but Mel refused to use it. "You never know where it's going to put things," he explained, "so you'd have to use separate constants." It was a long time before I understood that remark.

    Since Mel knew the numerical value of every operation code, and assigned his own drum addresses, every instruction he wrote could also be considered a numerical constant. He could pick up an earlier "add" instruction, say, and multiply by it, if it had the right numeric value. His code was not easy for someone else to modify.

    I compared Mel's hand-optimized programs with the same code massaged by the optimizing assembler program, and Mel's always ran faster. That was because the "top-down" method of program design hadn't been invented yet, and Mel wouldn't have used it anyway. He wrote the innermost parts of his program loops first, so they would get first choice of the optimum address locations on the drum. The optimizing assembler wasn't smart enough to do it that way.

    Mel never wrote time-delay loops, either, even when the balky Flexowriter required a delay between output characters to work right. He just located instructions on the drum so each successive one was just past the read head when it was needed; the drum had to execute an

    1. Re:Pascal already 30? by narcc · · Score: 1

      This is, quite possibly, the most interesting story about machine code I've ever read.

    2. Re:Pascal already 30? by ZenFu · · Score: 1

      Very cool story - thanks for the post.

  126. My first line of programming by theolein · · Score: 1

    I wrote my first computer programme in UCSD Pascal on punch cards for the compiler on a IBM 360 in 1982.

    I came from the countryside and had never touched a computer before. At the time I found Pascal painful, full of grammatical overhead and confusing.

    Later I learned C and other languages based on the C syntax.

    Now I miss those Pascal days.

  127. Pascal is dead by Anonymous Coward · · Score: 0

    Long live C!

  128. Definitely by ucblockhead · · Score: 1
    Oh, I agree. But they should teach using an OO teaching language, not C++ or Java.


    Teaching using C++ is a crime against humanity (and I say this as a professional C++ coders.) Java is only marginally better.

    --
    The cake is a pie
    1. Re:Definitely by Anonymous Coward · · Score: 0

      The problem is that there isn't one.

      Seriously. Python and Ruby and such like are very nice languages, and beginners love them, but I'm not convinced they're suitable for teaching - simply because they're too easy. The ability to run up a working script in Python, sadly, does not teach the skills you'll need to construct a larger system in the real world. Python is a perfect language for hackers, but CS courses aren't trying to produce hackers.

      Really you need to get people used to static typing as soon as possible, because they ARE going to be using it for nearly everything in their jobs, even if they use a dynamically typed language for their own fun projects. And there aren't any simple statically typed OO languages out there with any significant user base.

      (OCaml might count, and is indeed used as an introductory language at some institutions, but it's not really OO - very little OCaml code uses the OO system in practice.)

    2. Re:Definitely by Moderatbastard · · Score: 0
      The ability to run up a working script in Python, sadly, does not teach the skills you'll need to construct a larger system in the real world.
      But this is true of programming in general. You learn a language by writing 10 line programs. You learn programming by writing 1,000 line programs. You learn to program properly by not writing 1,000,000 line programs.
      --
      1/3 of jokes get modded OT. If you get the joke, mod 1 in 3 insightful/interesting/underrated to restore karma balance.
  129. I went to UCSD, and you, sir are no Pascal! by NotQuiteReal · · Score: 1
    appologies to whichever polititican said something like that...

    <ramble_on>

    Anyhow, my 2 cents;

    I did go to UCSD in Pascal's heyday (CS major, class of '83) and while I remember using Pascal in a couple of beginner's programming courses, on Apple ][, IIRC, I have never used Pascal for anything real. Very quickly, after the Pascal classes, we used C and even FORTRAN for real work.

    Gad, I now I remember writting an ADA compiler, in C! (and using z80 assember to write a "pong" program to drive an oscilloscope display, oh the humanity!)

    So, there you go, 20+ years later, my knowledge of C (and vi!) still serve me well on a daily basis, but I couldn't write "hello world" in Pascal if my life depended on it (well, if you pay my normal rate, I'll figure it out.)

    </ramble_on>

    --
    This issue is a bit more complicated than you think.
  130. Brad Templeton's ALICE rules! by Anonymous Coward · · Score: 1, Informative

    ALICE Pascalwas the best computer language teaching tool of the day and the inspiration for IDEs that came after it. It would be brilliant if designed today - nevermind 20 years ago when it was developed.

  131. Wizard Book online by cpghost · · Score: 1

    The Wizard Book is still [one of?] the best introductory CS course[s] around. It's being used in Universities all around the world.

    --
    cpghost at Cordula's Web.
  132. No, 35 years old by Anonymous Coward · · Score: 0

    Pascal was defined in 1969, revised in 1972.

  133. Ada lives on, kinda by acomj · · Score: 2, Informative

    Ada is Pascals "child" so to speak. The sytax is pretty close. The more I use ada the more I like it although not without its quirks. Its not hard to pick up, and gcc will compile it.

    Although calling Ada a success would be pushing it, it seems my companies large projects work best in ada, then c and c++ is always a disaster.

    Ada lacks a lot of libraries that make java/ c so useful. But as someone pointed out (with a chuckle), you can bind Ada calls to C making it as powerful as C!

  134. WTF? by Anonymous Coward · · Score: 0
    LISP is a pretty questionable language for real world programming

    Eh?

    Common Lisp programming is a pretty high-end market. Commercial Common Lisps sell for large sums of money to a number of large customers implementing really complex systems.

  135. Re:Bah! (RANT) by Anonymous Coward · · Score: 0

    why the hell does Javascript STILL consider 010 to be an octal number?

    I've been programming since the early 80s and NEVER needed octal.. why do languages like Java, Javascript STILL support octal.. octal!

  136. Pascal is older than 30 by Anonymous Coward · · Score: 0

    I was using Pascal on the CDC6/7xxx machines well before 1974. Let's not rewrite history.

  137. Even more serious by fm6 · · Score: 4, Insightful
    In the PC world, x86-series processors implement the call stack in a way that makes Pascal-style nested procedures easier to implement. Back in the 70s, Intel thought that Pascal was the high-level language of the future. They didn't anticipate the C/Unix mindset taking over so thoroughly.

    And in certain circles, Pascal is still the language of choice. Lots of people who hack out basic native-code Windows software prefer Borland's Delphi IDE to any alternative. One reason is the programming language, which is actually an object-oriented extension of Pascal.

    I spent 3 years at Borland, documenting their component libraries, which are mostly written in Delphi. I came to appreciate its simplicity and power. My job required me to go back and forth between Delphi and C++ (the same libraries are used in Borland's C++ products) and it was an object lesson (forgive the pun) in how painfully baroque C++ has become.

    It's a pity that Pascal/Delphi has so thoroughly lost the language wars. But it has. Even if C++ hadn't thoroughly taken over native-code programming, Borland's bizarre and insular corporate culture would keep from spreading beyond a few fierce loyalists.

    1. Re:Even more serious by master_p · · Score: 1

      how painfully baroque C++ has become.

      Your statement implies that you have never worked with Qt...Qt really shows off the power of C++. I suggest you try it sometimes. It has all the advantages of Swing but none of the slowness and bloatness. Qt is also head and shoulders above Delphi.

    2. Re:Even more serious by Anonymous Coward · · Score: 0

      Care to cite some examples showing Qt being better than Delphi? There can't be that many people who've worked with both, given that Delphi is almost 100% a Windows technology (Kylix never really took off) while Qt is prohibitively expensive on Windows.

      It also doesn't show off the power of C++ so much as the power of C++ when extended with a proprietary preprocessor...

    3. Re:Even more serious by fm6 · · Score: 1
      On the contrary, your statement reveals your lack of knowledge Delphi -- which currently includes a cross-platform version of its component library called CLX. (The Windows-only original is called VCL.) To provide basic cross-platform functionality, Borland got a commercial license for Qt, and CLX is built on that library, much as the VCL is built on the Windows API.

      I guess Qt is OK, but your missing my point when you talk about "power". The problem with C++ is precisely it's "power" -- it's so feature bloated, that it's really hard to deal with. That's why newer languages, including Java and C#, deliberately back away from all the weird syntactic gimmickry of C++.

      When I document an API, I usually spend a lot of time reading the code for the functions and objects I'm explaining. It takes 10 times as much work to read and understand code in C++ as does equivalent Delphi code. That's because you never know what obscure language feature a C++ programmer is going to use. I haven't done much API writing for Java (none for C#), but the level of difficulty for simple reading (and thus for maintenance and debugging) is pretty similar. That's why these alternatives to C++ exist.

      In any case, Qt is hardly a testimony to the power of C++. Qt is based on an object model that C++ does not directly support. Which is why you have to run your Qt code through a pre-processor before you can compile it.

  138. What you say is true... by fm6 · · Score: 1

    ...but it's a kneejerk anti-MS rant that has no place in this discussion.

  139. C was better than the Pascal of fifteen years ago. by Anonymous Coward · · Score: 0

    If you do real things with Pascal, it is very difficult to do casting of variables to do data transmission and to read characters.

    With Pascal you had to read keystrokes one at a time and translate numbers as there weren't common library routines that let you do these things.

    Also Pascal didn't have real pointers. It didn't have a logical way to map variables to memory.
    You couldn't just cast regions of memory to a pointer and then read them.

    For this reason pascal was impossible to use for data jocking between ROM images and compiled binary object files.

    The pascal didn't give you an image that you could understand like C does.

    And if it did give those things, they were very obscure.

    C gives you a clear view of memory.
    When you declare a variable you know what you have as bytes.

    Pascal just doesn't have that as part of the main idiom.

    Obviously this was fifteen years ago that I am talking about.

    I used Turbo Pascal and did some real things with it. (and I still have the code somewhere).
    Then I learned C and never looked back.

    As far as Delphi/ Borland Builder/Kylix go I have used those too. I did a lot of very cool things with these, but they are nothing like the Pascal that lost out to C and other languages.

    Pascal was good for learning, but didn't cut it for system level programming.

  140. Mario Kart? by tepples · · Score: 1

    Unfortunately, learning to program in Pascal is like learning to drive in a go-kart.

    I learned how to drive playing Super Mario Kart, you insensitive clod!

    As long as you have to extend Pascal to make it useful, why not extend BASIC to make it useful?

    Which implementation of a good extended BASIC is Free? Mono's VB.NET compiler isn't out yet.

  141. Ahh...Pascal.. by cubicleman · · Score: 1

    I started off with BASIC junior year in high school, then Turbo Pascal my senior year, did more Turbo Pascal freshman year in college, then a semester of Cobol, then everything was C until C++ in my senior year.. I dallied with Lisp, Prolog & Objective-C in grad school, then discovered Java.. strictly Java since '96 with a few months of Visual C++, C and Perl on a couple projects.. Not sure what language I'll learn next; I'm thinking Ruby could be interesting to learn..

  142. I can steal better than you. by Anonymous Coward · · Score: 0

    http://www.embedded.com/98/9806pt.htm

    Programmer's Toolbox by Jack W. Crenshaw

    More on Interpreters

    Last month, I gave you some history concerning a class of computers that popped up in the early '60s and thrived for a few short years. They were computers such as the Royal McBee LGP-30 and the North American Recomp II and Recomp III, among others. One of the key features of these computers was the interpretive languages that came with them. The native programming languages of such machines was so obscure and baroque that no vendor would dream of asking the end user to program in it. Instead, the manufacturers hid the horrors of the "real" computer behind an interpreter that presented a different interface to the user, one that appeared, for all practical purposes, to be the native programming language of the machine. The interpretive languages allowed us to use the computers as "personal" computers, which they were in the very real sense that only one person could use them at a time, and they were used interactively. As higher-order languages such as Fortran became more readily available, these "personal" computers faded away, and the batch-programming mentality took over. Though Professors John Kemeny and Thomas Kurtz of Dartmouth College were already working on a little interpretive language called BASIC, it depended on the availability of time-share systems and would not be readily available to the general public until much later.

    This month, I want to tell you one more story about an older computer. Then we'll move on to some more interesting developments in the world of microcomputers. Understand, I am making no attempt here to write a history of early computers; that would take a lot more research than I'm able to do. Instead, what you're getting is history as it happened to me. The stories I'm telling have a shamelessly personal perspective, and I don't apologize for that.

    You can expect this trend to continue as I tell you about my own exposure to interpreters, and how they've affected my work. My story will be mostly chronological, but based on my own personal chronology, not that of the rest of the computing world. I suppose I might be prejudiced on this score, but I think the story is more interesting when told from such a perspective. The downside of this approach is that the history is necessarily slanted. You won't hear about computers I never saw or heard of, or languages that might have been wildly successful, but that no one told me about. However, in the interest of a broader coverage, if any readers here want to add their own unique perspectives and recollections of those early days, I'll be happy to add them to the tale.

    A real programmer

    In the spirit of reader contributions, I offer the following gem, apparently posted originally to Usenet by Ed Nather in 1983, and forwarded to me by Robert H. Morrison.

    "A recent article devoted to the macho side of programming made the bald and unvarnished statement: 'Real Programmers write in FORTRAN.' Maybe they do now, in this decadent era of Lite beer, hand calculators, and 'user-friendly' software, but back in the Good Old Days, when the term 'software' sounded funny and Real Computers were made out of drums and vacuum tubes, Real Programmers wrote in machine code. Not FORTRAN. Not RATFOR. Not even assembly language. Machine Code. Raw, unadorned, inscrutable hexadecimal numbers. Directly.

    "Lest a whole new generation of programmers grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap, how a Real Programmer wrote code. I'll call him Mel, because that was his name.

    "I first met Mel when I went to work for Royal McBee Computer Corp., a now-defunct subsidiary of the typewriter company. The firm manufactured the LGP-30, a small, cheap (by the standards of the day) drum-memory computer, and had just started to manufacture the RPC-4000, a much-improved, bigger, better, faster drum-memory computer. Cores cost

  143. Early trouble with a bytecode approach by tepples · · Score: 1

    One problem with the UCSD p-system approach was that many platforms' p-code interpreters ran on top of the bare hardware instead of on top of the operating system, limiting the language's interoperability and multitasking capability. Another was that unlike a modern JIT recompiling virtual machine, p-code interpreters tended to run noticeably slower than natively compiled code.

  144. You are a moron by Anonymous Coward · · Score: 0

    You moron, can't you understand that this story evolves? That it is hacked, like the author intended? This story is available everywhere on the internet. Did Eric Raymond also steal it in your opinion? How can the poster have even stolen it? Because he signed it as "Anonymous Coward"? Don't be ridiculous! Besides, have you even read the commentary to this story in the jargon file? In my opinion the granparent post is brilliant because this AC managed to adapt it perfectly to our times, making it still relevant, while doing only minimal changes. Do you think that talking about "in this decadent era of hand calculators" would be understood by young people today better than "in this era of blogs and smartphones"? If so, then you are a moron. In my opinion this story should evolve. I think the original poster was truly brilliant. And should be modded as +5, Insightful. I wouldn't say it if it was posted by a logged-in user who claimed to be the author of this text, but it was posted anonymously, no one knows who posted it, yet everyone can find it easily using google like you did. In my opinion the legend of Mel is still alive, thanks to the original poster.

  145. Raskin's Pascal poster-Online? by Anonymous Coward · · Score: 0

    Does anyone actually have an online "readable" copy of that poster?

    1. Re:Raskin's Pascal poster-Online? by MacDaffy · · Score: 1

      http://www.pascal-central.com/

  146. UCSD P-system [Re: So cool...] by j.leidner · · Score: 1
    UCSD Pascal (not the first Pascal, mind you) was such an utterly cool system.

    Well, it already had a virtual machine (like the Java JVM), the P-machine back in the early 1980s. PASCAL is very readable, and Wirth's booklet on compiler construction is still a great introduction to compilers, which contains the very short and readable source code of a simple compiler.

    However the editor sucked as much as vi, as you had to press 'i' for insert. Thanks to Emacs, pico and fellows.

    For those lamenting FORTRAN posters: There was a system around called Oxford PASCAL for the Commodore C64, which actually was an interpreter, probably the only PASCAL with line numbers...

    --
    Try Nuggets , the mobile search engine. We answer your questions via SMS, across the UK.

  147. Ah, the memories by Tablizer · · Score: 1

    I remember I was tearing my hair out during one school project written in Pascal. I accidentally put a semi-colon between the loop and the begin-end pair. It resulted in the loop body only executing once and I was going crackers trying to figure out why. Evually I asked a lab assistent, and I shrank to about 5 inches tall when he pointed out the extra semicolon.

    I have since fought to bannish semi-colon-based languages from the face of the earth. That was not the only problem I've had with semi's. Semicolons are nasty in my book. But, I guess I have to get used to them, for the persist in Java, JavaScript, c#, Php, and others.

  148. Re:New Slashdotter, eh? You should really read the by Anonymous Coward · · Score: 0

    No, they pretty much try to get everyone.

  149. Ah the memories.. by Oestergaard · · Score: 1

    The way I learned the trade:

    First Turbo Pascal,
    then x86 asm
    then C
    then C++
    then SML
    then bash
    then Fortran
    then Perl
    then Scheme
    then Haskell
    then PA-RISC/UltraSPARC/Power2/Alpha asm

    Today I'm ~85% C++, 10% C, and 5% asm(weird archs), Haskell, ML, Perl, bash, etc.

    Pascal: Thanks for the good years - and good riddance.

  150. well I did by ivano · · Score: 1
    enough serious original work from programs written in Pascal to earn a PhD. Can't say its an unproductive/useless language.

    Ciao

  151. In Soviet Russia by BokanoiD · · Score: 0

    /. introduces itself to YOU!

  152. FreePascal by mr.+spike+2 · · Score: 1

    Hey, You can still use (as i do) Free Pascal for software development on even PalmOS, not to mention all the major stuff around. And easily port around anything. Except for windows - there the dummies are dominant with visual basic and other crap.

    I am sure that using VHDL for designing CPU/DSP hardware, then FreePascal to simulate and debug, and to write cpu/dsp specific assembler, then coding the bridge to assemble from free pascal programs to that cpu, is the easiest and most efficient way i could work.

    As well as just for a PC - use can use Asm+Pascal very efficiently for high performance software. However who cares about performance nowdays? :)

  153. Modula and Lilith by Anonymous Coward · · Score: 0

    Pascal is version 1 of Modula.

    Also,
    Java machine is to p-code
    like
    the (original) Mac is a poor copy of Lilith.

  154. Troll ! Mod parent down ! by Anonymous Coward · · Score: 0

    Thanks

  155. Chrome by Cadderly · · Score: 2, Informative

    I am using Object pascal every day. (Delphi and Free Pascal). But there is still development done on Pascal compilers... take a looke at Chrome http://www.chromesville.com/ . That is a brand now .NET language based on Pacal that has some REALLY nice features...

    1. Re:Chrome by ffallen · · Score: 1

      Definitely. I've been following this closely and like the lanaguage enhancments they are doing. Very useful enhancements that do not majorly change the language but certainly improve productivity.

      Design by CONTRACT!!!!

    2. Re:Chrome by ffallen · · Score: 1

      Ok. I've been corrected. Its not design by contract from a purist perspective, but it is a practical implementation of the basic principles that doesn't make your head spin.

  156. The stupidest thing about pascal by Anonymous Coward · · Score: 0

    ...was the lack of precedence on boolean operators; and, or, etc, which meant that poor students had to drown their expressions in brackets to the point of absurdity, which they took with them to C*. Whenever I find myself doing this, I say 'F*ng Pascal.'

  157. Re:New Record by metlin · · Score: 1

    You should probably not be posting these logged in, if you want to preserve your karma -- since you said you are new here.

    If you do, you're likely to get modded down - and once your Karma goes below zero, it reaches bad-status all your comments will have a score of 0 by default, rather than the existing 1. So far, it looks like you've a vaguely positive karma (+4 moderations, -3 moderations). That's walking the thin line, IMHO :-)

    Just talk useful stuff and ignore most of the offtopic threads and you'll be fine!

    Cheers & welcome to Slashdot.

  158. Pascal is good, but... by forii · · Score: 1
    Pascal was the second language I learned (BASIC being the first), and was the first language that I ever did large-size programming projects on. This was in the mid-80s, and I know that Pascal/delphi/etc. has changed/improved since then, but my thoughts of it were this:

    Every programming language can be described with two lists: Ways It Makes Life Easier, and Ways It Makes Life Harder. These lists change, of course, with the actual project at hand, but generally the best project is one where both lists are about the same size.

    For example, for general programming, writing in Assembly makes life EASIER because you don't have to worry so much about how the compiler is going to mangle your code, and it makes life HARDER in a whole lot of different ways. However, if you're writing on a machine that doesn't HAVE a compiler, for whatever reason, then suddenly the HARDER list for every other language suddenly gets a lot longer (generally starting with: need to write a compiler).

    My point is that while Pascal brought a lot of useful points to programming, such as the emphasis on structure, it could also be TOO structured, to the point where the language started getting in the way of getting something done. Of course, Pascal isn't usable, there have been a TON of large projects done using Pascal, but in my opinion, I think that other langauges are a better balanced for most programming purposes.

  159. Wizardry I through V by werdna · · Score: 1

    were written, primarily, in Apple Pascal on an Apple ][. At the time, Pascal was the only resource available that easily implemented a number of traits essential for building large programs on the tiny (48K!) machines of that era: p-code compiler to conserve space, built-in dynamic segmentation of program code; and a responsible and reliable compiler.

  160. Elves Live In Your Closet by reallocate · · Score: 1

    >> "I've also read that BASIC is really just a derivative of Pascal and VB even more so."

    Elves live in your closet

    There, you just read that. It isn't true, either.

    --
    -- Slashdot: When Public Access TV Says "No"
  161. Bad language by Anonymous Coward · · Score: 0
    Pascal was supposed to be a great teaching language. I believed that for a long time. However having taught everything from microcode (below assembler, it implements the assembler instructions) to most of the johnny come lately's (like C# (see-sharp, should be see-pound) or as I call it C-crap), Pascal did the student no favors. It is a top down, hand holding language and it is slow.

    I have found that for most if not all students perl is far superior to Pascal. So superior that I stopped teaching pascal all together unless I have to do it (nobody else will and I drew the short straw). I also have my students implement functions in C and call them from perl. Pascal should go the way of snobol, algol, and a few other languages most of you have never heard of. Same with BSD Unix, kill it... SYS V compatibility Forever!

  162. 64K data structure limit by wiredog · · Score: 1

    That may have been a processor limitation rather than a language one. I know the 16 bit x86 processors had 64k segments.

    1. Re:64K data structure limit by 2short · · Score: 1

      I believe it was a limitation of (at least) Turbo Pascal on 16 bit x86; named variables referred to specific 16 bit memory adresses, and so could access only 64K. But pointers could access much more memory (a couple bytes out of that 64K could point off to somewhere else that a much bigger data structure lived). I remember because I helped out a poor Astronomy student who's program needed to use a seemingly huge amount of memory; IIRC, a whole Megabyte!

  163. Re:New Record by Jeffery · · Score: 1

    thanks, i'll try :)

    --
    President Bush Supporter
  164. And everyone knows that by hsoft · · Score: 1

    "there have been a TON of large projects done using Pascal"

    And everyone knows that it takes a *lot* of source code to make a ton of it.

    --
    perception is reality
  165. To This Day I'm Still Amazed; by LifesABeach · · Score: 1

    Beware of the "Senior Programmer" that thinks Hash, Bubble, and Binary doesn't mean sort methods, but Food, Toys, SG-1.

  166. He is dead... by Phil+John · · Score: 1

    ...kicked the bucket in 2002 IIRC.

    --
    I am NaN
  167. Java borrows from Delphi by Horse's+Mouth · · Score: 1

    This is a very small excerpt of an interview I did with Zack Urlocker, Delphi's first product manager and one of the desinger of the product. The interview appeared in the February 97 issues of the UK magazine Developers Review and (translated in Italian) in the Italian magazine Computer Programming.

    Asked about the development of Delphi, Zack told me that:

    "Delphi is really the product I'm most proud of in my career. It was a tremendous amount of fun to create Delphi. We had a small group of 4 people, most of whom are still at Borland, who were at the core of version 1.0. We developed a prototype in the first 3 or more months, and sometimes, for a laugh we bring that out to see how it compares to Delphi today..."

    "In fact, the Delphi's VCL component model is really the basis of Java's JavaBean component model. Sun came to us early on in the history of Java and said they wanted to have the same RAD development of Delphi available for Java. Borland helped Sun develop the JavaBeans component model and rather than keep it as a proprietary standard, we made it open to the entire industry. So I think Delphi has earned its place as a good footnote in the history of programming."

    The entire interview covers the status (and the future) of Borland, the history of Windows programmin tools (including the excerpt above), but also Java and Internet programming...

  168. The Reunion Was A Blast by RichardKaufmann · · Score: 1

    I didn't do a count, but there were a ton of folks for both the reunion talks and for the dinner event afterwards.

    Highlights:

    * Ken Bowles' talk about his five careers. Before his UCSD days, he was one of the builders of the Jicamarca Radar Observatory.
    * Bud Tribble (VP, Apple) talking about how UCSD Pascal (AKA Apple Pascal) influenced the Lisa and the Macintosh. Apple was extremely generous and presented KB with a shiny new iMac.
    * Mark Overgaard discussing one of the truly terrible product names of the era. UCSD P-System, indeed!
    * The chancellor of UCSD (Mary Anne Fox), the dean of engineering (Frieder Seible), and the chair of the CS department (Ramomohan Paturi) praising Bowles and the project.
    * Seeing almost all of my old project buddies make it back to campus. We also looked back at the social aspects of the project, including pictures that seemed to involve a lot more hair. (A combination of biology and the 70's. Shudder.)
    * A demonstration of a running UCSD Pascal system on my XP notebook. (Thanks John Fouts!)

    There are a lot of artifacts from the day, including video (to be broadcast on UCSD-TV and available via webcast), as well as powerpoint. When I know the URLs for all this stuff, I'll post them here. John tells me he would also like to have them on his UCSD Pascal museum (http://www.threedee.com/jcm/psystem/index.html).

    Cheers,

    Richard Kaufmann (author of the UCSD Pascal screen editor)

  169. Re: sw: born & died forever!!! by Anonymous Coward · · Score: 0
    Older copyrighted aplications is *never* put in the public domain after of 15 years or more.

    Why can't i attempt to have Turbo C++ 3.01 Professional?
    Why can't i buy the unexistent Turbo C++ 3.01 Professional from Borland?

    open4free ©

  170. MFC, ATL and the Round Trip Problem by Latent+Heat · · Score: 1
    There are two broad categories of Windows programming: one is Windows API and the second is COM/ActiveX.

    Windows API programming has been classically approached by object inheritance -- you have a base class that implements the "under the hood" stuff to do a form or a widget, and you extend that class for your customized widget or form.

    Borland has something called the Type Library Editor, found in both Delphi and C++ Builder. The Type Library Editor is how you can make changes to a COM interface. It keeps an IDL file describing a COM interface up to date with a Delphi/C++ Bui;lder wrapper class. The beauty of this arrangement is that, yes, you can use the code wizard to initially generate the wrapper class, but you can go in and play around with the interface methods and signatures and edit stuff and things will keep in synch. COM/ActiveX programming has been approached with "code wizards." Yes, there is code wizard stuff in the Windows API programming, but Borland is famous for the VCL class library that does most of the heavy lifting using object inheritance while Visual Studio is somewhat code wizard oriented.

    The reason why everyone reverts to code wizards with COM is that COM is based on exposing a virtual method table (VMT) to the outside world and is fussy about order and signature of the methods in that VMT. You end up needing a wrapper class with the correct VMT to forward all your calls to the actual object, implemented by inheriting from a base object, that does all the work. On account of all of the baggage in COM and ActiveX, that wrapper class is wordy, and the only way people know how to generate it is with a code wizard.

    In the MFC/ATL world, you have the code wizard to generate the interface, the IDL, and the wrapper class, but if I want to edit anything, I am stuck. Yeah, yeah, COM interfaces are supposed to immutable, but sometimes you want to move things around in the initial development phase before your COM interfaces are published to the outside world and set in stone. I am at a loss as to how to change a method signature or remove a method from a COM object -- it seems there are about 5 different files you have to edit by hand. The only way I can think of is to scrap the project file and start over.

    While the Borland Type Library editor is not perfect and I had about a year's worth of learning curve to get it to do everything I want (or find out what is not possible), I am utterly dependent on its features for doing COM/ActiveX development. I have done some toy COM and ActiveX objects using VC++, but I am really stuck figuring out how to edit COM interfaces and I wonder how anyone is able to use VC++ (i.e. the MFC/ATL wizards) to do COM without going mad.