Pascal (Not Just Nickel & Dime) - Computerphile

Поділитися
Вставка
  • Опубліковано 19 гру 2024

КОМЕНТАРІ • 208

  • @ColinTimmins
    @ColinTimmins 4 роки тому +21

    I remember using Pascal in school. I showed my friend who was much younger then I was what you could do with it. He started to program, making his own game of course. He very quickly surpassed my ability to program and now programs for a living.

  • @000zeRoeXisTenZ000
    @000zeRoeXisTenZ000 4 роки тому +14

    I never met any of my grandparents. All died before i was old enough to memorize them. But with this vids i get somehow a feeling to have a grandfather, telling you long stories. Thank you!! :)

  • @gloverelaxis
    @gloverelaxis 4 роки тому +90

    That Wirth joke was so phenomenally specific and clever

    • @jej3451
      @jej3451 4 роки тому +4

      which is why it has to be fake

    • @rs-tarxvfz
      @rs-tarxvfz 4 роки тому +3

      Hey computerphile admins, I wonder why you guys have not made anything about Containers? Can you please make video on etymology of Containers and INTERNALs of Container?

  • @nomio827
    @nomio827 4 роки тому +55

    1:18 ETH stands for Eidgenössische Technische Hochschule, but close enough.

    • @profdaveb6384
      @profdaveb6384 4 роки тому +6

      Thank you! I suppose I could go and look it up but what does "Eidgenössische" mean?

    • @boyiscola
      @boyiscola 4 роки тому +7

      Swiss federal

    • @HobbyWelt
      @HobbyWelt 4 роки тому +2

      ProfDaveB ETH = federal institue of technology

    • @galier2
      @galier2 4 роки тому +5

      @@profdaveb6384 literal translation of "Eidgenosse" is "oath compagnon".

    • @pierreabbat6157
      @pierreabbat6157 4 роки тому +3

      I translate it "confederal", since Switzerland is called a confederation, not a federation.

  • @spoonikle
    @spoonikle 4 роки тому +9

    This mans lectures sooth my soul

  • @Decco6306
    @Decco6306 3 роки тому +11

    Turns out there's a modern and up to date version of Pascal called ObjectPascal. Yep its exactly what it sounds like. Pascal that can be object oriented. There is as well an open source compiler called FreePascal and an optional IDE to go with it called Lazarus. Its actively developed for and is available for tons of architectures including the gameboy advance(for some reason). Its actually quite nice and i recommend people to take a look. It is a very capable language and i wish more people used it tbh. Its super easy to read and pick up especially if you have a background in Python.

  • @PeterJohnsonWales
    @PeterJohnsonWales 3 роки тому +7

    Ah Pascal. Still my favourite language - well the modern object Pascal(s) anyhow. Been using it since the UCSD Pascal the Prof mentioned, via a Sinclair QL version to the latest Delphi version. Definitely of the begin .. end persuasion rather than in the {} camp!

  • @zilog1
    @zilog1 2 роки тому +2

    I was looking into the FreePascal compiler and i kinda like it.
    I might actually unironically use it in something

  • @gaskelldave
    @gaskelldave Рік тому +2

    We used Think’s Pascal on Apple Macs in the mid ‘90s for A-level computing. I remember reading somewhere that much of the early Mac OS had been written in Pascal or at least the QuickDraw part of it. The prof. mentions that you couldn’t do bitwise operations but I’m sure we did to check for events such as mouse downs or menu selection, can’t remember how though. Until watching this I’ve never heard any mention of Pascal since those 6th form days, 30 years ago!

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 4 роки тому +11

    6:19 I remember a description from the time that “pointers are the gotos of data structures”.
    And guess what: Pascal had gotos as well. Not even restricted gotos: they were a full implementation, including being able to jump *out* of an inner procedure/function call into an outer one. This was, of course, a way of doing exceptions before languages had the concept of “exceptions”.

  • @samuelworsnop9983
    @samuelworsnop9983 4 роки тому +9

    I read Professor Brailsford's paper on the readability of the Lucida font type at small sizes when exposed to noisy photocopying and fax machines. I find it fascinating how the font made such a big difference for printing back when printing resolution was scarce, something we often take for granted these days with comparatively high-quality printers being readily available these days. The professor is truly a legend :-)

  • @ralfoide
    @ralfoide 4 роки тому +4

    The professor is right, and tells a formidable story. I learned Basic on micros, then UCSD Pascal. Pascal was a perfect learning tool before moving on to C.
    Turbo Pascal and Turbo C in the 80s were incredible tools and influenced a whole generation.

    • @zippy-zappa-zeppo-zorba-etc
      @zippy-zappa-zeppo-zorba-etc Рік тому +1

      I bought turbo pascal 5.5 (the first one with objects), then upgraded to 7.0 and turbo c++ 5.0. Loved those compilers and it broke my heart when Borland went under shortly after.

  • @ericvilas
    @ericvilas 4 роки тому +143

    Pascal: "You can't have pointers to pointers, that's dangerous"
    C: ...... :)

    • @Pekkhum
      @Pekkhum 4 роки тому +24

      char *****************data = NULL;

    • @nuk1964
      @nuk1964 4 роки тому +5

      Of course one could also play around with variant records to get around the language restrictions (in particular you declare the record type without a tag field to make it into a free type union). You also need to make sure you specify "packed" (and hope that the compiler will honor this) -- otherwise in some environments you'll not get what you'd expect (and in a few cases I remember situations where the compiler didn't honor this). Aside from potential of crashing your computer (in a non-protected environment like DOS, clobbering contents of memory could easily crash the system), and the risk that your code becomes non-portable (as you could be "baking in" assumptions about the environment).

    • @dandan7884
      @dandan7884 4 роки тому +9

      hold my asterisk

    • @nusretsuzme8303
      @nusretsuzme8303 4 роки тому +3

      type
      pByte = ^Byte;
      ppByte = ^ pByte;
      pppByte = ^ ppByte;
      (* and so on *)

    • @sameersarwar2504
      @sameersarwar2504 4 роки тому +4

      how else would you make multi-dimensional arrays

  • @scottfranco1962
    @scottfranco1962 Рік тому +1

    program test(output);
    type pi = ^integer;
    var p: ^pi;
    begin
    new(p);
    new(p^);
    p^^ := 42
    end.
    Original Pascal, checked on two different compilers. The pi definition was because the type after ^ must be a type id. Not pretty, but works.
    Making pointer definitions take a type id perhaps was designed to depreciate the idea of pointers to anything, but didn't make it impossible. The central idea of restricting pointers in Pascal was that a pointer is bound to its type, and that could only be allocated from dynamic storage. Thus coining a pointer to a static object as &p (in C) was not possible.

  • @PopeLando
    @PopeLando 4 роки тому +7

    Pascal was my first love. And the first compiler we used said "E.T.H. Zurich". If I had only known that it might well have been largely coded by Niklaus Wirth himself! It was on a CDC Cyber 170-720.

  • @crdrost
    @crdrost 11 місяців тому +2

    RIP, Niklaus. 😢

  • @MrPetzold123
    @MrPetzold123 11 місяців тому +1

    In modern Free Pascal, you can do:
    program ptrptrtest(output);
    type
    pInt = ^integer;
    ppInt = ^pInt;
    var i: integer = 42;
    pI: pInt = @i;
    ppI: ppInt = @pI;
    begin
    Writeln('Before: ', i);
    ppI^^ := 43;
    Writeln('After: ', i);
    end.
    ./ptrptrtest
    Before: 42
    After: 43
    ...of course you can have as many levels of pointers you want :).
    Check it out, it is a *very* nice language w/ cross platform Lazarus IDE.

  • @trespire
    @trespire 4 роки тому +23

    We had turbo Pascal at collage computer lab. We even wrote a program in it to control a PLC in our final project build.

    • @jonathanguthrie9368
      @jonathanguthrie9368 4 роки тому +1

      I've heard Turbo Pascal described as "that random Pascal-like language invented by Borland"
      Which isn't a problem if it does what you need to do. I've run into limitations of various random C-like languages and sometimes it's a problem and sometimes not.

    • @treyquattro
      @treyquattro 4 роки тому +3

      @@jonathanguthrie9368 Turbo Pascal was great: interpreted, edit-and-continue, P-Code. It was fast. Remember this is around the time when if you were programming PCs your default was BASIC.
      ETA: And let's not forget: the architect of Turbo Pascal was one Anders Hejlsberg who was later the lead architect on C#.

    • @f15sim
      @f15sim 4 роки тому +5

      @@treyquattro Turbo Pascal never generated p-code. From v1 onward, it generated native machine code. Z-80 for the CP/M versions, x86 for the 8086+ versions.

    • @The4Crawler
      @The4Crawler Рік тому +1

      I loved Turbo Pascal, used it a lot back in the late '80s when I was doing various graphics board display drivers for DOS PCs. TP was great at writing terminate and stay resident (TSR) programs. I had a collection of those that could hook into the INT10 and INT33 BIOS calls. With these, I could intercept all the video, keyboard and mouse data and then display, record and pass through that data.
      We had a high res monochrome display and I wrote a video BIOS for it that card. I used it to display around 160x80 characters in DOS. That came in handy one day when my boss came in and they urgently needed a "scrolling H's" program for FCC EMI testing. I guess the "HHHHH" characters would generate the highest frequency video signal with the CRT monitor. I wrote a quick batch file that echoed a string of "H" characters to the console (my high res BIOS program) and gave it to my boss on a floppy disk in a few minutes.
      These TSR programs also worked great for making demos of the desktop publishing software (Ventura Publisher) our graphics boards were used with. I could load my TSRs into memory with a flag set to record their data to disk. Then I would start the program up, run through some features like loading a document, panning, zooming, editing, etc. then close the program. Later, I could take that captured keyboard and mouse data and pump that back into my TSR programs and the PC would run through the exact series of keyboard and mouse operations that I had recorded. Made great demonstration tools for the sales people who didn't know how to run the programs in detail.
      I also re-wrote the setup/install program for our cards. Originally, that required users to manually copy files off a floppy onto their hard drive. I wrote a full text based GUI in Turbo Pascal using a 3rd party menu package. It used a config file that could be used to change the manufacturer and product names for our OEMs to use to customize the install floppy for their product. If anyone install GEM or Ventura Publisher drivers based on Paradise or Western Digital video chipsets back in the late '80s / early '90s, you probably used my program. I ran into it when I bought a new video card some years after I left that company. Shortly after that, everything went to Windows and that was the end of the DOS based graphics card drivers.

  • @MrBlaDiBla68
    @MrBlaDiBla68 9 місяців тому

    I'm already a 50+ computer scientist, and I hope to grow older like this guy...
    Great job, I remember this period well.

  • @wilhelmsarasalo3546
    @wilhelmsarasalo3546 Рік тому +1

    Even today if I need to write a Windows GIU program, I find FPC/Lazarus hard to beat. Pascal is like C with a different syntax, in Pascal you usually type more and in C a typo might well compile to do something you did not intend. In Pascal that is usually a syntax error. Performance and code size seem comparable. There C++ and Object Pascal are also comparable with differences in multiple inheritance, but Object Pascal has interfaces, nothing huge there.

  • @henrikjensen3278
    @henrikjensen3278 4 роки тому +6

    I learned programming with Pascal (and assembler and a few other languages), it was fairly fast upgraded to Turbo Pascal, Borland Pascal and Delphi that removed most of the limitations.
    It is not that I had that many issues with the limitations, they where first a problem when you wanted to get close to the hardware. I still remember "Colossal Cave Adventure" on the mainframe, it was a big Pascal program with some really nice programming like: "if bird in cage then..." (that is completely standard Pascal). I have missed the sets from Pascal in other languages, it was a very nice concept and part of the language (It is, of course, simulated with classes in other languages).

  • @persimonsen7504
    @persimonsen7504 4 роки тому +13

    A side track perhaps, but would love to see a pice on Simula by Dahl/Nygaard and its inpact on programming with their Object Orientation. It was, after all, based on Algol60

    • @caw25sha
      @caw25sha 4 роки тому +1

      Someone tried a sort of pseudo OOP in Fortran in the late 50s but of course Simula was the first real OOP language IIRC.
      I don't think OOP really hit the big time until C++, which of course gave birth to Java, C# etc.

    • @profdaveb6384
      @profdaveb6384 4 роки тому +1

      Agreed!! I admire Simula a lot but having never taught it and knowing very little about Dahl an dNygaard it’s a job I'll have to leave to someone else ....

  • @DaveMiller2
    @DaveMiller2 Рік тому +1

    I learned a little Pascal in High School in the mid 80s. I had already learned Basic. My thought was that kids should be taught Pascal instead of Basic to introduce them to programming. I liked it much more than Basic and it was easy.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 4 роки тому +2

    7:41 UCSD Pascal was very influential. Most of the PC-based implementations were clearly inspired by it (e.g. variable-length strings, “univ” pointers).

  • @spinzed
    @spinzed 4 роки тому +45

    0:50 Ah yes, my favorite member of the ALGOL 60 committee: Mr Angle Brackets

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 4 роки тому +25

    You didn’t mention Ada, which was an offshoot of Pascal created as the result of a competition held by the US Department of Defense, to create a language suitable for doing systems programming for safety-critical and mission-critical systems. There is still Ada code in use today, for example controlling the life-support systems on the International Space Station (running on Intel 386 processors, with no Microsoft code anywhere in sight).

    • @MisterDevel
      @MisterDevel Рік тому +1

      Yes, in this 11-minute video, he didn't mention every descendant and implementation of PASCAL and its children.

  • @a21stcenturyboy.60
    @a21stcenturyboy.60 4 роки тому +4

    THIS SUMMER I FOUND AN OLD BOOK ABOUT ALGORITHMS AND I SAID WELL LET S GIVE IT A SHOT IT WAS A VERY OLD BOOK FROM EARLY 90s AND IT WAS ABOUT PASCAL SO NOW I AM TOTALLY IN LOVE WITH THE LANGUAGE AND IT IS MY FIRST. MY friends make fun of me because I use an old language but I laugh when I could easily debug my code and build more efficient algorithms than them XD. Now I started learning Delphi and I am doing good. Peace.

    • @KushLemon
      @KushLemon 7 місяців тому

      Name of the book?

  • @igo5543
    @igo5543 4 роки тому

    These videos are both entertaining and informative. Thank you, professor, I'm looking forward for your next talk!

  • @elmo2you
    @elmo2you 4 роки тому +2

    Damn! I worked for many years with (Turbo) Pascal (and later Delphi), but I never new it was related to Algol. Fascinating

    • @caw25sha
      @caw25sha 4 роки тому

      Most programming languages in use these days including C are descended from or influenced by Algol, at least the imperative parts.

    • @elmo2you
      @elmo2you 4 роки тому

      @@caw25sha I know that (and a few things more), but I never knew that Pascal was specifically what started out as the successor to Algol 60. Maybe in part because I stopped using Pascal long before I developed a fascination for computer science history (in general). Also, it was actually this video that made me remember I have used Pascal in the first place, for at least more than half a decade. I somehow managed to completely forget about it, but I have no idea why.

  • @lohphat
    @lohphat 4 роки тому +3

    I started learning Pascal on a TRS-80 in the early 80s before C took off. They share a very similar syntax and structure. Lisa Pascal and 68000 assembly were the initial preferred languages for the Macintosh.

    • @silaspoulson9935
      @silaspoulson9935 4 роки тому

      interesting! Do you know why they changed? Perhaps popularity?

    • @lohphat
      @lohphat 4 роки тому

      @@silaspoulson9935 The momentum of Unix and its variants.

  • @junaid-vc3js
    @junaid-vc3js 2 роки тому +1

    oh wow, not being interested in computing when I was in college, I only took up computing at University. My first programming language was Pascal using turbo Pascal. This was very informative!

  • @MidnightSt
    @MidnightSt 4 роки тому +1

    "once you run out of steam with it, there are no workarounds, none, you have to move on to something else"
    ...which is the last valuable programming lesson that Pascal will gift you - the lesson about limitations of tools and how to handle them.

  • @hoagy_ytfc
    @hoagy_ytfc 4 роки тому +1

    I loved Algol-68, used it heavily during my first degree.

  • @pmcgee003
    @pmcgee003 4 роки тому +21

    Turkey licenced 1 million seats for modern Pascal in 2019 or 2020. It's an excellent language - very readable. It's a bit of a pity this only mentions the 1970s.

    • @dustysparks
      @dustysparks 4 роки тому +1

      I was using it in the late 90's, but not for professional work

    • @nusretsuzme8303
      @nusretsuzme8303 4 роки тому +1

      @@dustysparks you need to be very professional if you want to use pascal for professional work :)

    • @petros_adamopoulos
      @petros_adamopoulos 4 роки тому

      @@nusretsuzme8303 In the public sector, i.e life long contract with the government. Then sure.

    • @nusretsuzme8303
      @nusretsuzme8303 4 роки тому

      @@petros_adamopoulos It was amazing back in the day but it is still a powerful tool.

  • @Bigman74066
    @Bigman74066 4 роки тому +6

    Love (Object) Pascal. Such a shame it seems to be disappearing.

  • @SkinnyCow.
    @SkinnyCow. 4 роки тому

    David & Mike, my 2 favourite Computerphile guests.

  • @maxheadrom3088
    @maxheadrom3088 Рік тому +1

    I think Pascal is a better language for teaching than C because of the tight types. People who have to learn programming but are not in Computer Science/Engineering strugle with C and, imho, learn less. The first language I learned was BASIC (learned very little), the second (learned a lot!) was LOGO and later PASCAL. My brother taught them to me so when I got to Electric Engineering I had no problems with programming but almost all my colleagues struggled with it at the beguinning only because they adopted PASCAL.

  • @francisklein1746
    @francisklein1746 4 роки тому +7

    At 9:12 these 9 major lacks an issues in pascal where all elegantly solved in the borland pascal v5.0 (and sucessors) implementation. That version made pascal a very reliable and powerful language (including truely powerful Oject oriented programming paradigms) With that impelmentation, it was neaerly impossible to write programming bugs because the compiler did not gives you binary file if source contains even a single programming rule error. Whit such strict environement, i swear that you rapidely know perfectly all what the language can do for you, and why permissive manipulation allowed in other languages are so dangerous. and unpredictable

    • @laser-sj
      @laser-sj 4 роки тому +5

      Delphi is brilliant.
      Less cluttered than C, Just as capable and nearly as fast. 😎

    • @asganaway
      @asganaway 4 роки тому +4

      Loved Delphi, was really a shame it was forgotten so quickly

    • @shinyhappyrem8728
      @shinyhappyrem8728 4 роки тому +5

      There's also Free Pascal/Lazarus

  • @cidercreekranch
    @cidercreekranch 4 роки тому +10

    Pointer may be dangerous but they are entirely useful. That's why I really fell in love with C. Not as restrictive as Pascal and less tedious than assembly.

    • @francisklein1746
      @francisklein1746 4 роки тому +1

      I agree with you, pointers are useful and powerful. But power is danger. when something is dangerous, it is more reliable to manipulate it with reliable automatism rather than with human algorithmical risky aproximations. Even more in large programs or with large amount of data manipulations.
      The automatic implicit pointers manipulations, in Pascal, induces reliability - regardless to the complexity of the program.
      Moreover, as pointer manipulation in pascal can be explicit, and ONLY if inherent automated pointer management can't do the job, the programmer can make same pointers manupulations that C permit, and with the same efficiency. BUT you see it in the source code - and in a comprehensive way!
      To enhance code relyability, you can concentrate those non standard manipulations in specialized parts of your code (IE in a specific library of types manipulations). So you can be are aware of the risks that you may encounter and reduce then... At your own risk.
      By the way : Even nowadays the usage of pointers in avionics C programs is still prohibited. It's not a side effect... lol
      Best regards

    • @Pekkhum
      @Pekkhum 4 роки тому +2

      @@francisklein1746 I wish my coworkers would concentrate any part of the code. Why make a function when you can copy paste the statements to 20 places in the code? It is a lot of work to change it? That is just how programming works!
      Oh, the bugs...

    • @ka9dgx
      @ka9dgx 4 роки тому +2

      I had cooperative multi-tasking figured out under MS-DOS and Turbo Pascal, there's nothing you can't do in modern pascal.

    • @peterfireflylund
      @peterfireflylund 4 роки тому +2

      It's not hard to ease those restrictions a little. That's what Anders Hejlsberg did with Poly/Turbo Pascal more or less from the start. It worked very, very well -- but gave some of the pointer problems that C has. Not as many, for Pascal has "var" parameters, proper arrays that don't look suspiciously like pointers, and Poly/Turbo Pascal had real strings. That removes many of the uses of pointers in C.
      There are other ways of doing it as well. Wirth explored some of them in his successor languages. Modula-2 has a type called Address for raw machine addresses (and a module just for bare metal access to the machine).
      Making pointers totally safe is a really hard problem that we are only beginning to solve well now. It requires some pretty fancy type theory. The only practical language right now that gives us safe pointers -- that are actual pointers -- is Rust.

  • @galier2
    @galier2 4 роки тому +6

    Turbo Pascal broke out of the restrictions simply by implementing all the C stuff that was missing. The issue with it was that then it was not Pascal anymore.

    • @AsmodeusMictian
      @AsmodeusMictian 2 роки тому

      Turbo Pascal for the Apple II was the first thing that I learned to code on in High School.....what a nightmare for me to learn lol.
      It drove me nuts that it would run until it 'fell over' and STOPPED...then threw an error at that line basically saying "Hey, somewhere above this line there's a mistake. Enjoy!"
      UGH.
      Now I'm trying to learn Godot decades later :D

  • @hyperhybrid7230
    @hyperhybrid7230 3 місяці тому

    Polytechnic London 80s to early 90s, we used initial Basic, C+, Pascal, Fortran. Running various algorithms, subroutines and logic gate analysis and applications. Before the outsource of consumer electronics to the Far East, electronic education in Britain and Europe was very high level coinciding with the Warp label of Artificial Intelligence series. In simple terms logic programs to turn or active On by Aphex Twin.

  • @bell1095
    @bell1095 2 роки тому

    1:27 ETH is acronym for „Eidgenössische“ Technische Hochschule not „Elektrotechnische“

  • @jpjude68
    @jpjude68 4 роки тому +2

    Though, even if pascal may have been a capable language to learn on then, it seems to have evolved quite well over the years with delphi, and it's open-source counterpart Freepascal and the Lazarus IDE. I'm using it at work after having to 'convert' since most software work was historically made in delphi and pascal, but i do groan at the lack of support for bitfields when declaring a type... that and macros

    • @asganaway
      @asganaway 4 роки тому

      Man I never meet a Delphi programmer in my life , didn't have a great success sadly

    • @Esico6
      @Esico6 4 роки тому +1

      Gabriele De Carli
      Here a delphi dev too. I bake software voor mac and windows and IOS iPad. Same code multiple platforms. No external libs or runtimes necessary. Which tool can do that?

  • @JonWhitton
    @JonWhitton 4 роки тому

    Thank you for sharing this history. A small part of how we got to the place we are at today

  • @framegrace1
    @framegrace1 4 роки тому +1

    The only problem with pascal, is that some people took it too seriously, was just an exercise on creating a beginners language. Wirth later fixed it in Modula 2, but no one cared. We used Modula 2 at the uni.
    It's basically Pascal with Mr Kernighan issues solved. He took very seriously the lack of modularity, which are like 3 out of 9 of Kernighan concerns. So seriously that he named the language after this feature.
    Lots of languages used similar system based upon it afterwards.

  • @Gooberpatrol66
    @Gooberpatrol66 4 роки тому +3

    Have you talked about Forth?

  • @tibbydudeza
    @tibbydudeza 4 роки тому +1

    Learned programming using Turbo Pascal 3 and then moved over to C when I started my programming career.

  • @kevintedder4202
    @kevintedder4202 4 роки тому +1

    My coding progression was BBC Basic -> Pascal -> C.
    10 BBC Basic was great
    20 the best of its day
    30 but had it limits.
    Begin
    Pascal was a great aid to
    understanding structured programs.
    End
    If (Pascal did not exist)
    {
    I'd never have grasped C without it
    }

  • @TheSulross
    @TheSulross 4 роки тому +1

    As engineering student I had learned FORTAN (punch card style), then BASIC on 8-bit micro (wasn't Dartmouth BASIC and just used it to peek and poke at hardware devices), but on purchasing a 128K Mac I was able to get a Pascal and played with the Game of Life. A CS grad student buddy explained some things going on that were new concepts to me - so this Pascal thing was kind of eye opening. And grad student buddy and I ported Donald Knuth's TeX to the Mac and gave it a graphical screen preview. It was written in Pascal. But then I got my hands on Lightspeed C for the Mac and that was just the bees' knees. My crush with Pascal was over. C was clearly the language for serious software development in the latter 80s. In getting paid to write software, still used Apple's MPW Object Pascal some because C didn't do objects yet - but there was this thing called CFront...and some dude with a funny name from Denmark...

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 4 роки тому

      I used MPW for many years, with a few different languages. I never understood why other programmers preferred those more limited IDE thingies ...

  • @TakuraNyagumbo
    @TakuraNyagumbo 9 місяців тому +1

    2:10 Niklaus Wirth joke 😂

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 4 роки тому

    4:14 They went on to create the Free University Compiler Kit. When Richard Stallman was just starting his GNU project, he asked about using their code to build his GNU C compiler. They somewhat facetiously replied that, while the University might be Free, the Compiler Kit certainly wasn’t.
    So Stallman had to go off and create his own codebase for GCC from scratch. And the rest, as they say, is history.
    Does anybody still remember the Free University Compiler Kit?

    • @rugxulo
      @rugxulo 7 місяців тому

      ACK is available on SourceForge now (BSD license). It still has (ISO) Pascal, (PIM) Modula-2, and (ANSI) C frontends.
      Actually, GCC started out as a C frontend to the Pastel ("off-color Pascal") compiler.

  • @dogaarmangil
    @dogaarmangil Рік тому

    Interesting, everybody who is anybody in computing always ends up wandering to the US somehow, or ended up, I wonder if it's still happening. 1:18 ETH is short for "Eidgenössische Technische Hochschule", or the Federal Technical University.

  • @dustysparks
    @dustysparks 4 роки тому +1

    I actually took my AP Computers exam in Pascal... which was the last year it was used in academia in any college or university anywhere near to me at the time ... :(

  • @nuk1964
    @nuk1964 4 роки тому

    One thing that's you might notice about Pascal is that the standard input/output system is implied to be buffered. That's fine if you're running a program in "batch mode" where you you'd use JCL to set up the filedefs that maps the input and output to reference disk files. The semantics of the input system tend to get a bit weird at times if you try to use interactive I/O mode. For example a typical bit of code might be:
    do while not eof() begin
    write('What is your name?');
    readln(myname);
    writeln('Hello ',myname);
    end;
    A typical behavior you'd see when you run such a program is a blinking cursor -- you don't see the prompt until *after* you hit Enter. That's because the system can't determine the value of eof() until it has attempted to read input (at least this is the type of behavior you'd seen on mainframe and minicomputer environments -- most microcomputer implementations will behave as you might expect).

    • @peterfireflylund
      @peterfireflylund 4 роки тому

      Wirth's Pascal barely had any I/O... The Pascal you are talking about come about much later.

    • @nuk1964
      @nuk1964 4 роки тому

      @@peterfireflylund (shrug) I'd not used Pascal until I was at university in the early 1980s (so yes, what I had been using was much newer than the original version -- probably not much older than late 1970s vintage).
      The first version of Pascal I'd used was on a Berkeley Unix system on a DEC VAX11/750 minicomputer, then later I'd fiddled about in VS Pascal in VM/CMS system on an IBM-4341 minicomputer. The closest I'd gotten to the original Pascal was one that was on a Control Data Cyber 750 mainframe -- apparently this version of Pascal was a descendant of the Zurich compiler for the CDC 6600).
      First microcomputer version of Pascal I'd used was Turbo Pascal in CP/M. Had never used the UCSD Pascal system. On the IBM-PC it was Turbo Pascal (had used versions 3.0 thru 6.0). Never fiddled around with the Microsoft Pascal.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 4 роки тому +1

      Many implementations did “lazy buffering” to get around this. For example, DEC’s VMS compiler (which I liked because of its system-programming extensions).

    • @scottfranco1962
      @scottfranco1962 Рік тому

      @@peterfireflylund No, that was 1976 Pascal. It had I/O.

  • @DBProductions12345-m
    @DBProductions12345-m 4 роки тому +4

    Nice garden

    • @caw25sha
      @caw25sha 4 роки тому

      Are those Leylandii? 😧

    • @profdaveb6384
      @profdaveb6384 4 роки тому +3

      Thank you! It was designed by my wife and I spend a small fortune on it because
      I have to get in [a lot of] gardening help. Yes there is a backdrop of well-manicured Cupressus Leylandii and you probably noticed also, in my "sub-tropical corner", the New Zealand tree fern, right next door to a "Cordeline Australis"

  • @barrynance2871
    @barrynance2871 4 роки тому +1

    You might consider discussing Modula-2, Prolog and perhaps even IBM/Microsoft BASIC compilers, along with their runtime environments, in future episodes.

  • @ncot_tech
    @ncot_tech 4 роки тому +5

    I built a Z80 machine earlier this year and after getting bored of MS Basic I installed CP/M and Turbo Pascal.
    It was like going back to my A Levels and using Turbo Pascal 6 for DOS 🙂

    • @johngeverett
      @johngeverett 4 роки тому +1

      I ran CP/M on my first pc - an Apple ][+ with a Z-80 coprocessor. Loved it! Who needs more than 48k when you have CP/M and a macro assembler?

  • @rs-tarxvfz
    @rs-tarxvfz 4 роки тому +1

    Hey computerphile admins, I wonder why you guys have not made anything about Containers? Can you please make video on etymology of Containers and INTERNALs of Container?

  • @franciscovarela7127
    @franciscovarela7127 4 роки тому +2

    Pascal - a beautiful language.

  • @alexmihoc3500
    @alexmihoc3500 4 роки тому +31

    Fun fact: Romanian schools still make programing courses in Turbo Pascal and VisualFoxPro and the final exams are taken in Turbo Pascal lmao

    • @karimjerbi7084
      @karimjerbi7084 4 роки тому +3

      Same in Tunisia :(

    • @Pluzas
      @Pluzas 4 роки тому

      @@karimjerbi7084 shtakra?

    • @karimjerbi7084
      @karimjerbi7084 4 роки тому

      @@Pluzas admis bac ^^

    • @alexmihoc3500
      @alexmihoc3500 4 роки тому

      @@karimjerbi7084 uncool

    • @TheBigThing23
      @TheBigThing23 4 роки тому +1

      *They can be taken in Pascal. The vast majority of students learn and take their exams in C/C++ and it's quite rare to find someone who took the final exam in Pascal (~1%)

  • @smurfyday
    @smurfyday 4 роки тому

    This is amazing throughout. That the brilliant Wirth joke was NOT my main takeaway says it all.

  • @WX4CB
    @WX4CB 4 роки тому

    that was the 2nd language I learned.... when on from turbo pascal all the way into windows 3.1 versions to create windows programs. then on to delphi and the ilk. still do use it occasionally for simple stuff in linux.

  • @guysimpson9420
    @guysimpson9420 4 роки тому +1

    My first degree programming language - simple, easy and quick to learn.

  • @stevenbridge
    @stevenbridge 4 роки тому

    I remember taking Pascal at Simon Fraser U. in the early 70's. I believe it was running on a PDP11 running MTS (Michigan Terminal System) and supported at level 5 (take at your own risk)! I had to read (skim) all 12 volumes of the MTS manual before I could write my program! As an aside, do you remember APL (A Program Language) and could you do a video on it if you haven't done already. Thanks in advance.

    • @caw25sha
      @caw25sha 4 роки тому

      Loads of huge purple and pink switches? Yep, PDP-11! (Although you students probably didn't get to go anywhere near it.)

    • @stevenbridge
      @stevenbridge 4 роки тому

      @@caw25sha I did for one project. I was writing a database program for a grad student and I was given computer time in the evening which was in the computer building. I got to see the mavens and gatekeepers going around doing their business. Very exciting to a second year student! But you are right, the rest of the time we were a mile away communicating over 300 baud modems!

    • @Obscurai
      @Obscurai 4 роки тому

      MTS was the OS for IBM 370s. Don't think it was implemented on PDP11.

  • @erikkarsies4851
    @erikkarsies4851 4 роки тому

    After the 'joys' of pascal... it was followed up with Modula-3 (I mean after pascal there was course in Modula-3) ... any thoughts on that language Computerphile ?

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 4 роки тому +1

      Modula-2.

    • @erikkarsies4851
      @erikkarsies4851 4 роки тому

      @@lawrencedoliveiro9104 Edited it a bit... I ment after the Pascal course there was a Modula-3 course that wasn't the direct succesor of Pascal

  • @zazezy
    @zazezy 4 роки тому

    Please, could you activate the auto generated subtitle on this chanel.

    • @profdaveb6384
      @profdaveb6384 4 роки тому

      My hand-created (non-automatic) subs are now with Sean. Hopefully won't be long now before they are up-loaded

    • @zazezy
      @zazezy 4 роки тому +1

      @@profdaveb6384 thank you, i did not expect so much

  • @mheermance
    @mheermance 4 роки тому +3

    When I learned Pascal I thought it was a great language, so much better than Fortran. But when I learned some real languages I realized how much it was lacking.

  • @erikkarsies4851
    @erikkarsies4851 4 роки тому +1

    After hobby programming GFA Basic and some assembly on the Atari ST ... HP Pascal on HP Unix wasn't a fun experience!

  • @Gwyrddu
    @Gwyrddu 4 роки тому +1

    I disappointed there wasn't an Algolxxx, especially given the connection to Amsterdam.

  • @EdwardChan.999
    @EdwardChan.999 2 роки тому +1

    FYI, my highschool still teaches Pascal XD

  • @CyclingSteve
    @CyclingSteve 2 місяці тому

    My best exam result at college was 98%, it was a written (in pencil) Pascal exam, I loved it, but soon moved on.

  • @DavidLindes
    @DavidLindes 4 роки тому +1

    I always disliked Pascal... but didn't know enough at the time to quite articulate why. Had I known of Kernighan's paper at the time, perhaps I'd have given it to my instructor. ;)

  • @treyquattro
    @treyquattro 4 роки тому

    I used to program in Pascal. Can hardly remember a thing about it now! A program ended with with a period, IIRC.

  • @cyberpass
    @cyberpass 4 роки тому

    What about Delphi?

  • @Magician169
    @Magician169 4 роки тому

    Thank you for this!

  • @smurfyday
    @smurfyday 4 роки тому +1

    Joke starts ~1:50

  • @Beefhaving
    @Beefhaving 4 роки тому

    Tragic that these ongoing earthquakes are being largely ignored.

  • @M1ckeyD
    @M1ckeyD 4 роки тому +1

    I need to learn pascal.

  • @lawrencedoliveiro9104
    @lawrencedoliveiro9104 4 роки тому

    11:28 *Ahem* Unchecked variants, anybody?

  • @ka9dgx
    @ka9dgx 4 роки тому +1

    Talk about timing.... I was out of programming for a few decades, and dove back into it recently. This morning I needed a string function that didn't seem to be in the library, so I imported code from my MS-DOS Turbo Pascal days, and it worked. 8)
    Here's the version notes from the header. ;-)
    {
    Author : Michael Warot
    Date : January, 1988
    Purpose : Put together all of those misc. functions and procedures
    07-11-88 MAW Add routine [WaitForKey] to wait for ANY keypress
    06-06-89 MAW Move TrapInt for compatability with TP5.5
    08-01-89 MAW Split up MISC
    11-03-89 MAW Add SKIP and GRAB for string parsing
    Add GrabWord to pull a number from a string
    11-13-91 MAW Remove Uses CRT,Dos; ***NOT NEEDED!***
    02-11-92 MAW Fix bug in Macro_Substitute
    08-14-2020 MAW Port to Windows 10 and Lazarus/Free Pascal
    }

    • @dandan7884
      @dandan7884 4 роки тому

      32 years of maintenance!? wow

  • @KX36
    @KX36 4 роки тому

    I can't hear the word Pascal without thinking of Rick Mayall

  • @OchreMarsh
    @OchreMarsh 4 роки тому

    The first programming I've learned is Pascal.

  • @stevehallam0850
    @stevehallam0850 4 роки тому

    Borland Turbo Pascal was very successful and accessible.

    • @nuk1964
      @nuk1964 4 роки тому +1

      Turbo Pascal also probably contributed to decline of popularity of UCSD Pascal. On CP/M and IBM-PC you could compile a program in Turbo Pascal just as quickly (if not faster) than in UCSD Pascal --- and the generated binary ran natively on the computer. Add to this the relatively low price (If I remember correctly about 30~50 US Dollars) would put be quite affordable to the hobbyist (especially one that would've been frustrated by the slowness of interpretive BASIC).

  • @raphzahn82
    @raphzahn82 4 роки тому +2

    I don't like the syntax of Pascal. Like begin end; it looks ridiculous. But I like the set data type

    • @stanrogers5613
      @stanrogers5613 4 роки тому +1

      And I despise curly braces and significant white space. That's all just aesthetic taste, and has nothing whatsoever going for it as a technical argument.

    • @raphzahn82
      @raphzahn82 4 роки тому +1

      @@stanrogers5613it is a high level programming language. And apart from technical questions design questions play a big part in it. Pascal was created with words similar to a human language. Longer functions with boxed begin end parts are horrible to read. Thus the C-syntax survived and evolved stronger into more variations than the Pascal stuff. Although the Pascal syntax might be easier to comprehend for beginners.

    • @nuk1964
      @nuk1964 4 роки тому +1

      Speaking of sets... One thing that had me scratching my head on one implementation of Pascal -- on a Control Data mainframe (apparently the compiler I was using was related to the original compiler on the CDC 6600). You couldn't declare a set of char, but you could declare a set of a subrange of char. It wasn't until I'd noticed the memory architecture -- 6-bit bytes arranged in 10-byte words. With 6 bitsa you had 64 character codes -- but a word only gave you 60 bits -- not enough to represent a set. The other thing that the Control Data mainframe made clear to me -- the rationale behind the "eoln" function -- and why you "couldn't simply look for 'linefeed' or 'carriage return' characters" --- there are no such character codes. I vaguely recall end-of-line on the system was defined to be a consecutive run of zero-byte values aligned on a word boundary.

    • @kc9scott
      @kc9scott 4 роки тому +2

      @@nuk1964 I've used C for most of my adult life, but I do miss Pascal's "set of char" construct. Back in the '80s on Apple (UCSD) Pascal, it let me create a line-input routine where I could easily specify the set of chars (i.e. keystrokes) that would end the entry of that line, and then find out which key the user ended the line with. I'm still waiting/hoping for someone to create an OS (or environment or input library?) where shift-enter generates a different character code than enter. With it, pressing shift-enter would let the user move up a line, as it does in a spreadsheet.

    • @scottfranco1962
      @scottfranco1962 Рік тому

      The original theory was that English words were easier to read than special characters. Not necessarily easier to type (hence C is often referred to as a "write only language"). This principle was carried to ridiculousness with Cobol.

  • @someman7
    @someman7 4 роки тому

    C can't go down to the level of bits either, and it's been a standards for systems programming for decades. So why is that a problem for Pascal?

    • @scottfranco1962
      @scottfranco1962 Рік тому +2

      He was referring to the lack of and/or/not for integers, as in original Pascal. C can do that, and indeed, most extended Pascals can do that.
      Is it possible to do it in original Pascal? Yes, actually. I have routines like that. It isn't pretty, but it is possible.

  • @rjj5574
    @rjj5574 4 роки тому

    I loved turbo pascal.

  • @upyourtube123
    @upyourtube123 3 роки тому

    bad programmers can make a mess in any language some of the worst code i’ve ever had to deal with was in pascal

  • @naodtadelemusic
    @naodtadelemusic 4 роки тому +1

    I wish he was my grandfather

  • @moldybaguette567
    @moldybaguette567 4 роки тому +1

    In south africa we have learn delphi for IT and i hate it with a passion

    • @excitedbox5705
      @excitedbox5705 4 роки тому

      At least they are not teaching coldfusion or ASP :D My computer science courses all started with Java and I hated that language. It was so much typing and uselessly long names for every statement.

    • @moldybaguette567
      @moldybaguette567 4 роки тому

      excited box yeah but at least java is still in use and you can move to other hard typed languages easily (idk java but i assume its hard types) also when you learn/learnt python it would feel sooo easy

    • @caw25sha
      @caw25sha 4 роки тому

      I think a problem with CS and programming at undergraduate level is that often the course committee use select the languages they used 2 or 3 decades earlier but which are now obsolete. Not universal but all too common.
      I know someone who did geology and took a module in statistics taught in Fortran, only about 10 years ago when R was probably the de facto standard.

    • @dandan7884
      @dandan7884 4 роки тому +1

      delphi was the first one i got into to learn the basics of programming

  • @DrRChandra
    @DrRChandra 4 роки тому +1

    Dr., Dr., Dr.....the "g" is silent.

  • @OBGynKenobi
    @OBGynKenobi 4 роки тому +1

    this one needs image stabiliser. it's shaky.

    • @nuk1964
      @nuk1964 4 роки тому

      Ever wonder if there's a market for a camera that features a "Don Knotts" (de)stabilization mode ? (reference to his signature shtick of looking and behaving extremely nervous)

  • @joaovitormatos8147
    @joaovitormatos8147 4 роки тому +1

    I still use pascal cause I'm lazy

  • @WiziwigeAgario
    @WiziwigeAgario 4 роки тому

    uses wincrt;

  • @black_platypus
    @black_platypus 4 роки тому

    Who puts down a cookie on a garden table chocolate side down? :O

  • @mikesummers-smith4091
    @mikesummers-smith4091 4 роки тому

    Eidgenossische Technische Hochschule (Federal Institute of Technology), Zurich

  • @tekvax01
    @tekvax01 4 роки тому

    and now pascal is called Delphi...

    • @mattsadventureswithart5764
      @mattsadventureswithart5764 4 роки тому +1

      Pascal is still Pascal. Delphi is just one implementation. Read the comments for other implementations, if you wish to learn

    • @tekvax01
      @tekvax01 4 роки тому

      @@mattsadventureswithart5764 I'm always up for learnin'! Sorry didn't mean to strike a nerve, I was merely making an observation. We use Delphi at work all the time!

    • @fburton8
      @fburton8 4 роки тому

      @@tekvax01 So do I! It's a bit more than Pascal because it has object-oriented features too.

    • @mattsadventureswithart5764
      @mattsadventureswithart5764 4 роки тому

      @@tekvax01 No worries, friend. Sought to pass info you appeared not to have :)

  • @charlieangkor8649
    @charlieangkor8649 4 роки тому

    pascal. where you could not have strings longer than 256 chars. no thanks.

    • @scottfranco1962
      @scottfranco1962 Рік тому

      Actually, that is/was a limitation of Turbo Pascal, not Pascal. And they fixed it later.

  • @blableu4519
    @blableu4519 4 роки тому +1

    Nockel

  • @ysfkfnd
    @ysfkfnd 4 роки тому

    Rev up your engines!

  • @shawnmofid7131
    @shawnmofid7131 4 роки тому

    I loved the joke.