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

  Рет қаралды 23,320

NDC Conferences

NDC Conferences

Жыл бұрын

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 11 ай бұрын
The actual talk starts at 25:15
@tttc
@tttc 7 ай бұрын
thanks bro literally saved my life
@VincentVoyer
@VincentVoyer 6 ай бұрын
@@tttcsame 😂
@FunctionGermany
@FunctionGermany Жыл бұрын
Video ends at 1:25:20
@BbB-vr9uh
@BbB-vr9uh Жыл бұрын
Audio starts at 18:26
@LuealEythernddare
@LuealEythernddare 9 ай бұрын
Thanks, I thought my earbuds were broken, lol
@georget10i
@georget10i Жыл бұрын
35:55 - If they invented a "Formula Translator" now, they would call it "AI"
@Daysra
@Daysra Жыл бұрын
A sentence that starts with "so we're gonna..." is at 39:37
@andrewcrampton3433
@andrewcrampton3433 Жыл бұрын
Ads end at 24:30
@nyrtzi
@nyrtzi 10 ай бұрын
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 9 ай бұрын
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!
@grauekatze
@grauekatze 9 ай бұрын
I'm very far from this industry but I watch Mark's and Dylan's talks anyway.
@georget10i
@georget10i Жыл бұрын
Very interesting. And excellently presented!
@eclecticaaronbentley
@eclecticaaronbentley 11 ай бұрын
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 10 ай бұрын
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 10 ай бұрын
@@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 6 ай бұрын
⁠thank you, I'll fix that next time
@eclecticaaronbentley
@eclecticaaronbentley 6 ай бұрын
@@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.
@gbeziuk
@gbeziuk 7 ай бұрын
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.
@OldieBugger
@OldieBugger 9 ай бұрын
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.
@fredgenius
@fredgenius 8 ай бұрын
Love it. Please do more like this.
@jalvrus
@jalvrus Жыл бұрын
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 8 ай бұрын
Wild guess: Microsoft might have forced VBA into internet explorer and what a ride that would have been! 😂
@agnarrenolen1336
@agnarrenolen1336 10 ай бұрын
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.
@RoamingAdhocrat
@RoamingAdhocrat Жыл бұрын
Talk ends at 1:24:00
@GeorgeTsiros
@GeorgeTsiros 9 ай бұрын
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.
@OldieBugger
@OldieBugger 9 ай бұрын
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 9 ай бұрын
What language?
@OldieBugger
@OldieBugger 9 ай бұрын
@@GeorgeTsiros C, Pascal, actually any language that allows nested loops and conditionals.
@RobBCactive
@RobBCactive 6 ай бұрын
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 4 ай бұрын
​@@RobBCactiveeverything looks clean and simple in tutorials. Somtimes real life ain't that simple
@RobBCactive
@RobBCactive 4 ай бұрын
@@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
@Knirin
@Knirin 5 ай бұрын
What font is he using for the quotations?
@encrypted983
@encrypted983 Жыл бұрын
The world ends at 1:25:20
@jayamustika7234
@jayamustika7234 7 ай бұрын
What does it meant at the time machine bit, that he talk to Brandon Eich to please put the integer into Javascript?
@RobBCactive
@RobBCactive 6 ай бұрын
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 2 ай бұрын
"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. :-)
@patricknelson
@patricknelson 5 ай бұрын
I don’t know what everyone’s saying… the talk _both_ begins _and_ ends. I know, because I just watched it.
@lesfreresdelaquote1176
@lesfreresdelaquote1176 7 ай бұрын
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 5 ай бұрын
I wish html documents were not interactive
@felipevaldes9168
@felipevaldes9168 Жыл бұрын
26:00
@GeorgeTsiros
@GeorgeTsiros 9 ай бұрын
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.
@OldieBugger
@OldieBugger 9 ай бұрын
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 8 ай бұрын
@@spot997 My favourite is C.
@felipevaldes9168
@felipevaldes9168 Жыл бұрын
?t=1540
@Yogurt4655
@Yogurt4655 5 ай бұрын
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 10 күн бұрын
he's no Dylan Beattie, but i do like to watch him rant
Locknote: Programming’s Greatest Mistakes - Mark Rendle
1:04:32
NDC Conferences
Рет қаралды 23 М.
Did you find it?! 🤔✨✍️ #funnyart
00:11
Artistomg
Рет қаралды 121 МЛН
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 85 МЛН
Set Dynamic Content in Wized - Full Beginner Course
1:03:06
NoCode ProCode
Рет қаралды 90
Programming's Greatest Mistakes • Mark Rendle • GOTO 2023
51:24
GOTO Conferences
Рет қаралды 77 М.
There's No Such Thing As Plain Text • Dylan Beattie • YOW! 2023
49:39
Getting API security right - Philippe De Ryck - NDC London 2023
51:49
NDC Conferences
Рет қаралды 25 М.
Sockets, Sparks, and Magic Smoke - Dylan Beattie - NDC London 2023
58:33
TypeScript Origins: The Documentary
1:21:36
OfferZen Origins
Рет қаралды 268 М.
Теперь это его телефон
0:21
Хорошие Новости
Рет қаралды 1,7 МЛН
как спасти усилитель?
0:35
KS Customs
Рет қаралды 481 М.
Индуктивность и дроссель.
1:00
Hi Dev! – Электроника
Рет қаралды 1,5 МЛН
Power up all cell phones.
0:17
JL FUNNY SHORTS
Рет қаралды 48 МЛН