HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Procedural Programming: It Never Went Away — Kevlin Henney | Build Stuff

Build Stuff - #1 Software Dev Conf2 HN recommenders · recommended in 3 months, 2018-2021
YouTube
28K views · 8 years ago · talk · evergreen

Kevlin Henney argues that procedural programming never went away despite later paradigms such as OO and functional. He traces the history of structured programming and shows where procedural thinking still lives in modern code and why it matters for readability.

HN people recommend it as a fascinating history lesson showing that the field keeps rediscovering ideas from the 1960s.

Software architecture & designProgramming language design#proceduralprogramming#structuredprogramming#softwarehistory#codereadability#kevlinhenney

7 comments from Hacker News

@mpweiher2021 · in “Why Architecture Oriented Programming Matters (2019)”

> If "constraining architecture" means any separation of concerns or interface. It doesn't. It means you work with constraints, for example dataflow constraints. For example: link > I also thought the implementation was a little muddled Yes! That was the point of that section of the paper, that doing the straightforward thing leads to a muddle: "At this point, it becomes clear that our original strategy of updating the UI from the individual setter methods is probably not tenable in the long run." A little later: "As we have seen, even a conceptually very simple application such as a temperature converter quickly attracts significant complexity with non-obvious trade-offs once the requirements of an interactive version of that application are taken into account." The fact that you need to create these centralised updater methods is non-obvious, and leads to a bunch of related non-local changes. Also a muddle. "This complexity is not the result of a complicated domain model, but rather of the architectural embellishments required to move data from location to location in order to keep the different parts of the application (model, user interface, persistence) synchronized. In the next section, we will look at a mechanism for simplifying this kind of overhead." > ReactJS (uses HOM like Objective-Smalltalk) ReactJS uses Higher Order Messaging? Where? > Chatty: "We highlight a strong coupling between languages and architecture,..." Which was my point, yes, thank you! We are lim

CitesView on HN
@Supermancho2021 · in “Why Architecture Oriented Programming Matters (2019)”

I will start with a couple clarifications, in good faith. I will admit that I have made lazy errors in this discussion. Specifically in regard to terminology. Afaik, there is no term for "temporally unsynchronized" other than parallelism or concurrency, and I have misused the term concurrency at times. I have also used the term transition to mean "asynchronous state transition". This may clarify my past statements, but I will attempt to do better, going forward. So I'll visit on the material you are most familiar with so that my comments might have the most specific impact or irrelevance. For your verification, I read your paper here: link To begin, I agree on the concept. If "constraining architecture" means any separation of concerns or interface. To demonstrate that I did read through the code snippets you provided and completely irrelevant to the points being discussed, I believe there was an error in the code you posted in Listing 8@p.136 - - k: degreesK { self basicC :( degreesF - 273.15. \*wat?\* ivar : ui / celsiusTextField / intValue := self c . ivar : ui / fahrenheitTextField / intValue := self f. } I also thought the implementation was a little muddled and would implement a solution similar to this^. Object subclass: #Temperatures { var c. -changedC : sender { self c: sender intValue. self updateValues: { #val : c, #type: 'Celcius' }. } -changedF : sender { self f: sender intValue. self updateValues: { #val : f, #type: 'Farenheit' }. } -changedK : sender { self k

CitesView on HN
@Supermancho2021 · in ““Coding is basically just ifs and for loops.””

▶ this video Sequence, selection, iteration (or recursion if available). Note that the child overlooked the assumption that it's sequential.

CitesView on HN
@open-source-ux2019 · in “Algol 68”

I strongly recommend this talk by software consultant and author Kevlin Henney called Procedural Programming: It's Back? It Never Went Away He talks a bit out Algol 68 and how influential it was on programming language design. Many language keywords we're familiar with today originated in the 50 year old language specification for Algol 68: int, bool, skip, void, struct. Here's the snippet from the talk about Algol 68 - it's brilliant: ▶ this video

Strongly recommendsView on HN
@open-source-ux2018 · in “Ask HN: Best talks of 2018?”

I really liked this talk about the history of programming and how so many ideas we consider recent or modern are in fact much older than many of us realise. Watching this talk merely amplifies the feeling that the programming profession is in a perpetual loop - discarding or forgetting ideas or concepts, then re-discovering them anew. What's also striking is how rich and varied were the programming ideas that emerged from the 60s and 70s. Kevlin Henney - Procedural Programming: It's Back? It Never Went Away ▶ this video

RecommendsView on HN
@bunderbunder2018 · in “Designing very large JavaScript applications”

You may appreciate Kevlin Henney's talk, "Procedural Programming - It's back? It never went away."[1] It's a tour of how all the best discoveries of the past decade or two really date back to the 1960s. [1] ▶ this video ▶ this video

RecommendsView on HN
@open-source-ux2018 · in “Ask HN: What is your favourite tech talk?”

If you have an interest in the history of programming methodologies, this talk is fascinating: Procedural programming: it's back? It never went away ▶ this video

RecommendsView on HN
The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]1:29:27

The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]

cpponsea
245K views • 7 years ago
Old Is the New New • Kevlin Henney • GOTO 201850:23

Old Is the New New • Kevlin Henney • GOTO 2018

GOTO Conferences
125K views • 8 years ago
Four Languages from Forty Years Ago - Scott Wlaschin1:01:45

Four Languages from Forty Years Ago - Scott Wlaschin

NDC Conferences
33K views • 8 years ago
Object-Oriented Programming is Bad44:35

Object-Oriented Programming is Bad

Brian Will
2.6M views • 10 years ago
Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '1759:03

Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17

Dyalog User Meetings
7K views • 9 years ago
"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)43:04

"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)

Strange Loop Conference
468K views • 4 years ago
Lecture 1 | Programming Paradigms (Stanford)17:26

Lecture 1 | Programming Paradigms (Stanford)

Stanford
1.2M views • 18 years ago
Alan Kay - Programming and Scaling56:39

Alan Kay - Programming and Scaling

Colin McDonnell
36K views • 11 years ago
Effective Programs - 10 Years of Clojure - Rich Hickey1:14:52

Effective Programs - 10 Years of Clojure - Rich Hickey

ClojureTV
176K views • 9 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey1:04:16

Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey

Churchill College, University of Cambridge
170K views • 9 years ago
Keynote: The Last Hope for Scala's Infinity War - John A. De Goes45:03

Keynote: The Last Hope for Scala's Infinity War - John A. De Goes

Scalapeño
36K views • 8 years ago
Functional architecture - The pits of success - Mark Seemann1:00:10

Functional architecture - The pits of success - Mark Seemann

NDC Conferences
152K views • 10 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
The Functional Programmer's Toolkit - Scott Wlaschin1:05:51

The Functional Programmer's Toolkit - Scott Wlaschin

NDC Conferences
79K views • 7 years ago
Are We There Yet - Rich Hickey1:10:05

Are We There Yet - Rich Hickey

Zhang Jian
24K views • 7 years ago
The Next Five Years of ClojureScript - David Nolen1:00:58

The Next Five Years of ClojureScript - David Nolen

Metosin
19K views • 10 years ago
Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure53:56

Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure

jasonofthel33t
119K views • 13 years ago
In Search of Tomorrow56:27

In Search of Tomorrow

Berkeley Institute for Data Science (BIDS)
18K views • 10 years ago
Why Isn't Functional Programming the Norm? – Richard Feldman46:09

Why Isn't Functional Programming the Norm? – Richard Feldman

Metosin
1.6M views • 7 years ago