This presentation was recorded at GOTO Copenhagen 2024. #GOTOcon #GOTOcph https://gotocph.com Kevlin Henney - Consultant, Programmer, Keynote Speaker, Technologist, Trainer & Writer @KevlinHenney RESOURCES https://bsky.app/profile/kevlin.bsky.social https://about.me/kevlin https://twitter.com/KevlinHenney https://linkedin.com/in/kevlin https://instagram.com/kevlin.henney https://kevlinhenney.medium.com Links https://www.cse.sc.edu/~mgv/csce330f14/Backus78.pdf https://dl.acm.org/doi/pdf/10.1145/359138.359140 https://www.tiobe.com/tiobe-index https://spectrum.ieee.org/top-programming-languages-2024 https://dl.acm.org/doi/pdf/10.1145/362929.362947 https://craftofcoding.wordpress.com/2021/03/05/superplan-groovy https://github.com/e-n-f/if-then-else/blob/master/if-then-else.md https://twobithistory.org/2019/01/31/simula.html https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function ABSTRACT Programming languages are a halfway house between the metal and the mind, a bridge between the world of circuits and the world of applications, the engineered and the social. Programming languages are the medium through which developers codify systems and fragments. In each programming language is embedded a philosophy (or many) of how to think about code, how to organise thoughts, how to design. Programming languages also define skillsets, ecosystems, jobs, loyalties and communities. When we think of software and technology we often think in terms of progress and rapid change. Programming languages, however, typically move at a far slower pace. Mainstream languages are still embracing ideas that are decades old. Constructs that developers welcome as new to their language of choice are often older than the developers themselves. And over all this hangs the question, what of the future? How will current trends, from FOSS to LLMs, shape programming languages and their use? In this talk, we will take a tour of the past, present and future of programming languages. [...] TIMECODES 00:00 Intro 02:42 Past, present & future 06:07 John Backus: Fortran 08:54 Robert W. Floyd: Paradigms 09:08 Prog. languages appear to be in trouble 10:10 Prog. language rankings 16:22 Top prog. languages 2024 17:22 Bjarne Stroustrup 17:45 Prog. languages chronologically ordered 21:27 Algol 68 24:16 Edsger Dijkstra 29:08 Subroutines 33:14 Block structure 38:14 FP languages 40:48 Pipelines 42:28 Lambdas 47:18 LISP & Machine Learning 51:55 Prog. language evolution 54:17 Java 55:06 Betterigde's law 55:36 Outro Download slides and read the full abstract here: https://gotocph.com/2024/sessions/3333 RECOMMENDED BOOKS Kevlin Henney & Trisha Gee • 97 Things Every Java Programmer Should Know • https://amzn.to/3kiTwJJ Kevlin Henney • 97 Things Every Programmer Should Know • https://amzn.to/2Yahf9U Henney & Monson-Haefel • 97 Things Every Software Architect Should Know • https://amzn.to/3pZuHsQ Henney, Buschmann & Schmidt • Pattern-Oriented Software Architecture Volume 5 • https://amzn.to/3GAPzN7 Edsger W. Dijkstra • A Discipline of Programming • https://amzn.to/3JlwHV6 https://bsky.app/profile/gotocon.com https://twitter.com/GOTOcon https://www.linkedin.com/company/goto- https://www.instagram.com/goto_con https://www.facebook.com/GOTOConferences #ProgrammingLanguages #ProgrammingLanguage #TIOBEIndex #RedMonk #FutureProgrammingLanguages #Fortran #JohnBackus #RobertFloyd #BjarneStroustrup #Algol #occam #Fibonacci #EdsgerDijkstra #Plakalkül #HeinzRutishauser #BarbaraLiskov #FOSS #LLMs #KevlinHenney CHANNEL MEMBERSHIP BONUS Join this channel to get early access to videos & other perks: https://www.youtube.com/channel/UCs_tLP3AiwYKwdUHpltJPuA/join Looking for a unique learning experience? Attend the next GOTO conference near you! Get your ticket at https://gotopia.tech Sign up for updates and specials at https://gotopia.tech/newsletter SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily. https://www.youtube.com/user/GotoConferences/?sub_confirmation=1
ADVERTISEMENT
It's kind of odd to see a talk about the future of programming languages at this point in time that does nothing to address the cambrian explosion of languages being facilitated by LLVM and the amount of innovation that that's driving, or that the pendulum appears to be swinging back to strongly typed languages, or that most of the innovation going on is happening at the semantic rather than syntactic level, or that metaprogramming is becoming common thing in more and more languages but somehow hasn't quite reached the levels that were afforded by LISP in the 70's... All in all, this kind of felt like dancing around a rather unimportant (but maybe worthwhile) point about the past while ignoring all of the cool stuff going on in the present and future.
For the record us mathematicians are pretty relaxed about words like function. We communicate to people so words have definitions only in contexts.
Love the "math is not real" statement. Platonists gonna explode. Anyway, loved all the sources and name drops in here. Definitely put those on my list of things.
Fascinating talk, as always with Kevlin. As a Gopher, I feel compelled to point out that the Fibonacci function shown at 37:15, if started as a goroutine, will leak. It could advantageously be rewritten as an iterator. (Also, I spotted a rare typo at 23:52.)
I love talks by kevlin.
Shell is not bash, there are lots of scripts that are written in POSIX-compliant shell (just expecting /bin/sh). bash is a superset of what is being referred to as shell in those rankings
We're standing on the shoulders of giants. I couldn't write the code I produce today without all of this evolution. In the 70s, I was writing assembler, jump or conditional jump was your lot.
One the most pointless talks on this channel.
Devlin's lectures never disappoint. As a linguist, I feel a little left out, but that's a Munroe issue
While I agree that some of Excel's major problems are related to the semantics and arbitrary decisions related to data types, the introduction of LAMBDA was driven by the need to replace VBA as an extension point, and not as a whim (apologies if you were joking). This is a consequence of the overarching strategy of making "Office" a cloud service paid for by subscriptions.
What about Haskell? Haskell has not been liberated from the von Neumann Style?
This is a really good talk, so we went ahead and featured it in the last issue of Tech Talks Weekly newsletter 🎉Congrats 👏
Surprisingly interesting talk.
Math is technically beyond real, because it can express and define what can exist in reality and also what cannot exist in reality.
Try ask ChatGPT to help you write RUST. Most suggestions give you the typical WRONG examples, even syntactically incorrect. 52:01
Melvin Conway != John Conway
The way Floyd phrased "paradigms" is easily missed. If you're dissecting a problem before writing any software, you must look at the problem itself through the same kinds of techniques used to dissect word problems in maths class. The nouns, subjects, constraints, and verbs should guide you on what is used to construct the hypothetical program without prejudice of the programming languages in use. This is why the fundamentals of problem solving, metacognition, and stepwise refinement are so important. We must not make new programming languages for its own sake; rather, we must create an environment where we solve problems better with what we have through better tooling and problem diagnostics/diagram systems until a new language is the only resort left to solve the problem.
If I understand you correctly: since the creation of fortran , all language designers have been fishing in the same pond.
Great talk up to the condescension at 47:05
Although it was a joke, I strongly disagree with lambdas in excel being useless. Who wants to write the same long index-match statement multiple times in the same cell like we used to? A let or a lambda is made for those edge cases and makes life so much easier. Only the expert who is trying to make the abomination-that-is-the-whole-company-in-excel work uses it so no problem there. Python in excel on the other hand is only a money grab for MS, wouldn't recommend using it in excel for anyone.