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

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

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 Жыл бұрын
The actual talk starts at 25:15
@tttc
@tttc 9 ай бұрын
thanks bro literally saved my life
@VincentVoyer
@VincentVoyer 8 ай бұрын
@@tttcsame 😂
@FunctionGermany
@FunctionGermany Жыл бұрын
Video ends at 1:25:20
@BbB-vr9uh
@BbB-vr9uh Жыл бұрын
Audio starts at 18:26
@Tyler-Kearney
@Tyler-Kearney 11 ай бұрын
Thanks, I thought my earbuds were broken, lol
@Daysra
@Daysra Жыл бұрын
A sentence that starts with "so we're gonna..." is at 39:37
@georget10i
@georget10i Жыл бұрын
35:55 - If they invented a "Formula Translator" now, they would call it "AI"
@andrewcrampton3433
@andrewcrampton3433 Жыл бұрын
Ads end at 24:30
@nyrtzi
@nyrtzi Жыл бұрын
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 11 ай бұрын
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 Жыл бұрын
Very interesting. And excellently presented!
@grauekatze
@grauekatze 11 ай бұрын
I'm very far from this industry but I watch Mark's and Dylan's talks anyway.
@fredgenius
@fredgenius 10 ай бұрын
Love it. Please do more like this.
@eclecticaaronbentley
@eclecticaaronbentley Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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 8 ай бұрын
⁠thank you, I'll fix that next time
@eclecticaaronbentley
@eclecticaaronbentley 8 ай бұрын
@@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.
@OldieBugger
@OldieBugger 11 ай бұрын
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 9 ай бұрын
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.
@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 10 ай бұрын
Wild guess: Microsoft might have forced VBA into internet explorer and what a ride that would have been! 😂
@RoamingAdhocrat
@RoamingAdhocrat Жыл бұрын
Talk ends at 1:24:00
@agnarrenolen1336
@agnarrenolen1336 Жыл бұрын
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.
@encrypted983
@encrypted983 Жыл бұрын
The world ends at 1:25:20
@OldieBugger
@OldieBugger 11 ай бұрын
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 11 ай бұрын
What language?
@OldieBugger
@OldieBugger 11 ай бұрын
@@GeorgeTsiros C, Pascal, actually any language that allows nested loops and conditionals.
@RobBCactive
@RobBCactive 8 ай бұрын
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 6 ай бұрын
​@@RobBCactiveeverything looks clean and simple in tutorials. Somtimes real life ain't that simple
@RobBCactive
@RobBCactive 6 ай бұрын
@@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 7 ай бұрын
What font is he using for the quotations?
@GeorgeTsiros
@GeorgeTsiros 11 ай бұрын
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.
@jayamustika7234
@jayamustika7234 9 ай бұрын
What does it meant at the time machine bit, that he talk to Brandon Eich to please put the integer into Javascript?
@RobBCactive
@RobBCactive 8 ай бұрын
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 4 ай бұрын
"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 7 ай бұрын
I don’t know what everyone’s saying… the talk _both_ begins _and_ ends. I know, because I just watched it.
@lesfreresdelaquote1176
@lesfreresdelaquote1176 9 ай бұрын
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 7 ай бұрын
I wish html documents were not interactive
@felipevaldes9168
@felipevaldes9168 Жыл бұрын
26:00
@GeorgeTsiros
@GeorgeTsiros 11 ай бұрын
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 Жыл бұрын
?t=1540
@OldieBugger
@OldieBugger 11 ай бұрын
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 10 ай бұрын
@@spot997 My favourite is C.
@Yogurt4655
@Yogurt4655 7 ай бұрын
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 2 ай бұрын
he's no Dylan Beattie, but i do like to watch him rant
Programming's Greatest Mistakes • Mark Rendle • GOTO 2023
51:24
GOTO Conferences
Рет қаралды 85 М.
Эффект Карбонаро и нестандартная коробка
01:00
История одного вокалиста
Рет қаралды 10 МЛН
Clowns abuse children#Short #Officer Rabbit #angel
00:51
兔子警官
Рет қаралды 78 МЛН
КАК ДУМАЕТЕ КТО ВЫЙГРАЕТ😂
00:29
МЯТНАЯ ФАНТА
Рет қаралды 10 МЛН
JavaScript: How It's Made
10:54
Fireship
Рет қаралды 874 М.
The Worst Programming Language Ever - Mark Rendle - NDC Oslo 2021
1:00:41
NDC Conferences
Рет қаралды 1,3 МЛН
God-Tier Developer Roadmap
16:42
Fireship
Рет қаралды 7 МЛН
Steve Jobs - One Last Thing
56:25
Jd R
Рет қаралды 642 М.
The Tragedy of systemd
47:18
linux.conf.au
Рет қаралды 1,1 МЛН
Запрещенный Гаджет для Авто с aliexpress 2
0:50
Тимур Сидельников
Рет қаралды 548 М.
ОБСЛУЖИЛИ САМЫЙ ГРЯЗНЫЙ ПК
1:00
VA-PC
Рет қаралды 2,4 МЛН
Что делать если в телефон попала вода?
0:17
Лена Тропоцел
Рет қаралды 2,8 МЛН
S24 Ultra and IPhone 14 Pro Max telephoto shooting comparison #shorts
0:15
Photographer Army
Рет қаралды 10 МЛН
Здесь упор в процессор
18:02
Рома, Просто Рома
Рет қаралды 423 М.