Locknote: How JavaScript Happened: A Short History of Programming Languages - Mark Rendle

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ส.ค. 2024
  • NDC Oslo 2023 Locknote
    JavaScript was famously created in 10 days as a proof-of-concept for Netscape Navigator 2.0. Today it is one of the most-used languages in the world. Some people even like it.
    In this talk we will chart the path from the dark days before programming languages, through the ups and downs of the early pioneers, all the way to 1995 and the creation of JavaScript. We will meet the giants on whose shoulders Brendan Eich stood, and speculate about what they might think of modern JavaScript. You will learn interesting things about language design (good and bad), computer internals (weird), and committees (just bad). You’ll see FizzBuzz implemented at least a dozen times. It’ll be fun.

ความคิดเห็น • 48

  • @mattskov2917
    @mattskov2917 ปีที่แล้ว +80

    The actual talk starts at 25:15

    • @tttc
      @tttc 10 หลายเดือนก่อน +4

      thanks bro literally saved my life

    • @VincentVoyer
      @VincentVoyer 9 หลายเดือนก่อน

      @@tttcsame 😂

  • @FunctionGermany
    @FunctionGermany ปีที่แล้ว +67

    Video ends at 1:25:20

  • @BbB-vr9uh
    @BbB-vr9uh ปีที่แล้ว +38

    Audio starts at 18:26

    • @Tyler-Kearney
      @Tyler-Kearney ปีที่แล้ว +1

      Thanks, I thought my earbuds were broken, lol

  • @Daysra
    @Daysra ปีที่แล้ว +10

    A sentence that starts with "so we're gonna..." is at 39:37

  • @georget10i
    @georget10i ปีที่แล้ว +15

    35:55 - If they invented a "Formula Translator" now, they would call it "AI"

  • @andrewcrampton3433
    @andrewcrampton3433 ปีที่แล้ว +14

    Ads end at 24:30

  • @nyrtzi
    @nyrtzi ปีที่แล้ว +15

    Oh, there's Perlis also on the list of Algol's parents. Perlis the dude who said: "There are two ways to write error-free programs; only the third one works."

  • @OldieBugger
    @OldieBugger ปีที่แล้ว +3

    One of my first programs was in MC, Zilog 80 MC. I had the list of Machine Codes at the back of Sinclair Spectrum manual. It didn't have any instructions, apart from the assembly opcodes. But that was enough. Yay!

  • @georget10i
    @georget10i ปีที่แล้ว +6

    Very interesting. And excellently presented!

  • @eclecticaaronbentley
    @eclecticaaronbentley ปีที่แล้ว +4

    You imply that the reason curly braces weren't available at first for some BCPL users was because ASCII was 7-bit. But in fact, curly braces were added to ASCII the same year BCPL came out, and ASCII remains 7-bit to this day.

    • @peterlinddk
      @peterlinddk ปีที่แล้ว +4

      True that ASCII has always been 7-bits, but in the first version (released June 1963 as ASA X3.4-1963) only the first 96 values were defined (and DEL as 127) and curly braces weren't among the defined values. There were some discussion about reserving some values for "National Use", like é, ü, æ and so on - particularly the last few values: 123, 124, and 125 - which are now { | and }, but still print as national characters on some older printers.
      It took until 1967 to finish the ASCII-standard as it has been ever since - still 7 bits, but now with all possible values defined.
      (Man I feel nerdy now - guess Mark got the requested youtube-correction :) )

    • @eclecticaaronbentley
      @eclecticaaronbentley ปีที่แล้ว +1

      @@peterlinddk Exactly. 1967 was the same year BCPL came out. So the issue was not that ASCII was 7 bits, it was that many potential users weren't up-to-date with the latest ASCII revision.
      Since the characters were new-to-ASCII, their meanings weren't as established. I wonder whether that was a factor in choosing them?

    • @MarkRendle
      @MarkRendle 9 หลายเดือนก่อน +3

      ⁠thank you, I'll fix that next time

    • @eclecticaaronbentley
      @eclecticaaronbentley 9 หลายเดือนก่อน

      @@MarkRendle I've dug a bit deeper, and I think your explanation of the relationship of $( $) to {} is actually incorrect in a different way, because $( was the original form and { was an extension. The 1967 manual does not include curly braces: www.bell-labs.com/usr/dmr/www/bcpl.pdf only $( (see PDF page 7) and the use of {} was an extension that may have originated with TENEX BCPL www.bitsavers.org/pdf/bbn/tenex/TenexBCPL_1974.pdf. A recent manual by Martin says "Historically BCPL used the symbols $( and $) to bracket commands and declarations...BCPL has been extended to allow all untagged section brackets to be replaced by { and } as appropriate." www.cl.cam.ac.uk/~mr10/bcplman.pdf
      It also seems likely that CPL was short for "Combined Programming Language" based on the 1967 manual, and Wikipedia claims the B is short for "Basic" but does not cite a source.

  • @grauekatze
    @grauekatze ปีที่แล้ว +3

    I'm very far from this industry but I watch Mark's and Dylan's talks anyway.

  • @fredgenius
    @fredgenius 11 หลายเดือนก่อน +2

    Love it. Please do more like this.

  • @OldieBugger
    @OldieBugger ปีที่แล้ว +1

    When I was a kid, my mother worked to enter data to the University computer, on punch cards. She brought us kids a ton of those cards with a typo (or some other error) in them. I always will remember "FORTRAN STATEMENT" from those.

  • @gbeziuk
    @gbeziuk 10 หลายเดือนก่อน +3

    Not to undervalue Smalltalk's role in the history of programming languages, the concept of anonymous functions was probably already there when LISP came out. Maybe not quite spelled out loud back then, though.

  • @GeorgeTsiros
    @GeorgeTsiros ปีที่แล้ว +4

    43:30 that doesn't answer why _fortran_ chose to use _I_ , _J_ , _K_ for integers. In mathematics, it was already common to use _i_ when an _index_ was needed, such as summation. You write a Σ and under it you put _i=1_ and over it you put _n_ or _k_ . Just google "summation" and look at the images, or just go to wikipedia and look there.

  • @jalvrus
    @jalvrus ปีที่แล้ว +6

    I have to wonder what we'd all be complaining about if the browser language had remained Scheme. Actually, I have to wonder if it would have been as widely accepted if it had remained Scheme. C and C++ ruled at that point; Lisp, not so much. Having a C-style syntax made it that that much easier for people to adopt.

    • @davil1980
      @davil1980 11 หลายเดือนก่อน +3

      Wild guess: Microsoft might have forced VBA into internet explorer and what a ride that would have been! 😂

  • @RoamingAdhocrat
    @RoamingAdhocrat ปีที่แล้ว +3

    Talk ends at 1:24:00

  • @OldieBugger
    @OldieBugger ปีที่แล้ว +2

    I have used goto pretty often, even when studying CompSci, even when I was told never to use it. But I had very justified reasons to use goto. Like from inside deeply nested for's / if's to the end of a function, like if(0==this_should_never_be_zero) goto end; Or something similar. Why not just return? Often there was some memory management to do at the end of a function, etc. Besides, it's a cleaner way to write: goto end; than just return in the middle of a function.

    • @GeorgeTsiros
      @GeorgeTsiros ปีที่แล้ว

      What language?

    • @OldieBugger
      @OldieBugger ปีที่แล้ว

      @@GeorgeTsiros C, Pascal, actually any language that allows nested loops and conditionals.

    • @RobBCactive
      @RobBCactive 9 หลายเดือนก่อน

      Deep nesting and tricky cleanup, plus logic saying if shouldn't happen happens goto cleanup: is a classic symptom of using large omnibus functions.

    • @seven9766
      @seven9766 7 หลายเดือนก่อน +1

      ​@@RobBCactiveeverything looks clean and simple in tutorials. Somtimes real life ain't that simple

    • @RobBCactive
      @RobBCactive 7 หลายเดือนก่อน

      @@seven9766 I have written plenty of software and seen plenty of excuses, you cannot BS me!!
      My most esteemed colleagues heartily approved of me shrinking code modules.
      Furthermore I can tell you every page fault cost a lot more than failing to use subroutines

  • @encrypted983
    @encrypted983 ปีที่แล้ว +6

    The world ends at 1:25:20

  • @agnarrenolen1336
    @agnarrenolen1336 ปีที่แล้ว +1

    I believe the THINK Class Library had Exception handling in C before C++ had it natively. I would still preffer the simplicity of TCL-exceptions, which simply was implemented using Macroes.

  • @patricknelson
    @patricknelson 8 หลายเดือนก่อน

    I don’t know what everyone’s saying… the talk _both_ begins _and_ ends. I know, because I just watched it.

  • @jayamustika7234
    @jayamustika7234 10 หลายเดือนก่อน

    What does it meant at the time machine bit, that he talk to Brandon Eich to please put the integer into Javascript?

    • @RobBCactive
      @RobBCactive 9 หลายเดือนก่อน

      JavaScript has strings, boolean and numbers. From Mozilla... (if you study Comp. Sci. you'll realise floating point is fundamentally broken)
      The Number type is a double-precision 64-bit binary format IEEE 754 value. It is capable of storing positive floating-point numbers between 2-1074 (Number.MIN_VALUE) and 21024 (Number.MAX_VALUE) as well as negative floating-point numbers between -2-1074 and -21024, but it can only safely store integers in the range -(253 − 1) (Number.MIN_SAFE_INTEGER) to 253 − 1 (Number.MAX_SAFE_INTEGER). Outside this range, JavaScript can no longer safely represent integers; they will instead be represented by a double-precision floating point approximation. You can check if a number is within the range of safe integers using Number.isSafeInteger().

    • @wchen2340
      @wchen2340 5 หลายเดือนก่อน

      "Number" beeing THE type for all sorts of numeric operations is counterintuitive, leads to all sorts of errors, quirks and ugly workarounds. Im with him there and i also like the pun. :-)

  • @Knirin
    @Knirin 8 หลายเดือนก่อน

    What font is he using for the quotations?

  • @lesfreresdelaquote1176
    @lesfreresdelaquote1176 10 หลายเดือนก่อน

    Talking about Lisp and Backus and not mentioning Alonzo Church even once is quite the crime. First Backus was a student of Church and second Lambda Calculus was as much as important in the history of programming as Turing's machine was. Actually, Turing even wrote an article to show how the two approaches were equivalent. One of the most important result of the 30s in the sense that if your functional program can be equivalent to a Turing's machine, then _you can run it on a regular computer_

  • @ukyoize
    @ukyoize 8 หลายเดือนก่อน +1

    I wish html documents were not interactive

  • @GeorgeTsiros
    @GeorgeTsiros ปีที่แล้ว +5

    lord byron of syphilis and hanging out with shelly... not lord byron who gave up all that he had and went to help the greeks, no. Not lord byron the poet, no.
    that was a dick move, rendle.

  • @felipevaldes9168
    @felipevaldes9168 ปีที่แล้ว +2

    26:00

  • @OldieBugger
    @OldieBugger ปีที่แล้ว

    I never used FORTRAN, why? Because the first example FORTRAN program from the textbook crashed. After that I threw the book to trash bin and I swore never ever to use FORTRAN ever. And I never had to.

    • @OldieBugger
      @OldieBugger 11 หลายเดือนก่อน

      @@spot997 My favourite is C.

  • @felipevaldes9168
    @felipevaldes9168 ปีที่แล้ว

    ?t=1540

  • @Yogurt4655
    @Yogurt4655 8 หลายเดือนก่อน +3

    I’ve watched pieces of a couple talks by this guy now, and he is really not a good speaker. He glosses over so many basic aspects of the things he’s talking about, openly admits non-understanding of large pieces of the source material, can’t even be bothered to learn how to pronounce the names of the people he’s talking about.

    • @mitchmarq428
      @mitchmarq428 3 หลายเดือนก่อน

      he's no Dylan Beattie, but i do like to watch him rant