HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Lambda World 2018 - What FP can learn from Smalltalk by Aditya Siram

Lambda World2 HN recommenders · recommended in 3 months, 2020-2023
YouTube
25K views · 7 years ago · talk · evergreen

Aditya Siram argues that functional programming has much to learn from Smalltalk's interactivity, using Pharo and Squeak to show live, visual, explorable programming environments.

HN recommends it as an accessible demonstration of what Smalltalk environments offer and a reference for advanced IDE ideas.

Functional programmingTesting, debugging & developer toolsProgramming language design#smalltalk#pharo#functionalprogramming#livecoding#idedesign

7 comments from Hacker News

@tcard2023 · in “IDEs we had 30 years ago”

I think it's fair to say Smalltalk(s) have had in many aspects the most advanced IDE in existence at every moment since its introduction. Demos for a couple old versions: link Demo for Pharo: ▶ this video

CitesView on HN
@Supermancho2021 · in “What's the Future of IDEs?”

To answer the question in a more practical sense than the plugging of a specific workflow and asking "Is this the future?", that the article posits: 1. Back to easy indirection resolution ( ▶ this video , re: gtoolkit) 2. Comments that are not inline, but can point to various blocks/parts of code and overlap (multiple comments can apply to single parts of code). 3. More support for unit testing. function call tracking ( link ). 4. Conducting behavioral studies via opt-in submission of eye tracking data. A great deal of data is flowing through IDEs and not being leveraged to improve the daily tools of developers.

CitesView on HN
@Supermancho2021 · in “When are enums not a code smell?”

Not so much .NET/Java but Structured Programming (1972 Edsger W. Dijkstra, Ole-Johan Dahl, and Tony Hoare) has prompted the gradual backlash against switches. ( link , re: Duff's Device). Senior developers should watch the whole thing to understand how block scope and functions and classes relate. Modern development has drifted toward lots of small functions (which causes a mess because modern IDEs dont have supporting features like this: ▶ this video , re: gtoolkit). A switch requires you to look inside and reason about the internals of a function to understand how it will behave before exiting, as the compiler. This doesn't matter so much if you dont care about early exits (no branch prediction, etc). Either way, it's extra cognitive overhead and error prone for a small improvement in readbaility. It's the line where programming becomes tricky programming. As a thought experiment, imagine there is ANOTHER keyword that acts like an if/else (or switch with mandatory breaks). If A. it's terse, B. it's structured, C. it's readable, would that be better? We primarily use switch because it's easy to read (versus a ton of if {}/else {}), as it gives us almost-block scoping without having to define another indirection/function. Python has this switch equivalent in match/case, but you have to use Python to get it. Switch use is a syntax problem. Lots of software is colored by bad syntax and language design^. ^ I think most people realize that type hierarchies are a brittle/limited form

CitesView on HN
@emilprogviz2021 · in “It's probably time to stop recommending Clean Code (2020)”

Signed up just to say that I've also really, really wanted such a tool since forever. While for example the Jetbrains IntelliJ family of editors has the automatic "inline function" refactoring, they do it by permanently modifying the source code, which is not quite what we want. Like you say, it should be transient! So I recently made a quick&dirty interactive mock-up of how such an editor feature could look. The mockup is just a web page with javascript and html canvas, so it's easy to try here: link (Not mobile friendly, best seen on desktop) There are 2 different ways to show the inlining. You can choose between them if you click the cogwheel icon. Then I learned that the Smalltalk editor Pharo already has a similar feature, demonstrated at ▶ this video I wish other editors would steal this idea. Microsoft, are you listening? My mock-up also shows an idea to improve code folding. When folding / collapsing a large block of code, the editor could show a quick summary of the block. The summary could be similar to a function signature, with arguments and return values.

CitesView on HN
@nsm2021 · in “The Database Inside Your Codebase”

I am really glad they mentioned Smalltalk! I recently had a chance to experience Smalltalk and it was just mind blowing. Check out a video demo of the code introspection and visualization at minute 17 in ▶ this video

RecommendsView on HN
@nsm2021 · in “On Repl-Driven Programming”

I'd also add this talk "Lambda World 2018 - What FP can learn from Smalltalk by Aditya Siram " ▶ this video as well as the whole series of things that Tudor Girba & co. are doing with Glamorous Toolkit link I'd still recommend folks use Pharo over GToolkit for most things, as GToolkit lacks a bunch of polish and documentation (not to say that even Pharo documentation approaches anything of the quality of the Rust and Python ecosystems).

RecommendsView on HN
@jasim2020 · in “Design Principles Behind Smalltalk (1981)”

If you're tired of hearing about the virtues of Smalltalk (like I was at one point) and ask "if it is so good, why isn't it popular?", then watch @deech's talk (Aditya Siram) - "What FP can learn from SmallTalk" - ▶ this video I think it is the most accessible explanation of the marvel of Smalltalk, for those who were not lucky to work with it during the late 80-90s. Also I think Ruby is the mainstream language that is closest to Smalltalk today, with the idea that everything is an object and late-binding as much as possible. One thing I can't help point out is that Smalltalk / Alan Kay's vision of interconnected objects forming a recursive computing system is not the only "true" vision of OO out there. From Simula thru C++ and then Java and C# also are object-oriented (or class-oriented for those who care about the distinction), but they are statically typed. It is also OO because OO is a word, not a mathematical definition, and when people talk about OO, there is enough similarity between all these variations that we consider all of them to be in the same camp. Plus with the growing move towards strict static typing even in interpreted languages, which I think is driven by actual industry needs and programmer preferences than external marketing, it is becoming a disservice to think of statically typed OO languages as being somehow inferior to the true ideal of object-oriented programming.

Strongly recommendsView on HN
7 minutes of Pharo Smalltalk for Rubyists7:15

7 minutes of Pharo Smalltalk for Rubyists

Avdi Grimm
37K views • 11 years ago
MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk28:06

MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk

Confreaks
27K views • 12 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
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
Ruby Manor 3 - Programming with Nothing by Tom Stuart40:50

Ruby Manor 3 - Programming with Nothing by Tom Stuart

Confreaks
13K views • 13 years ago
Beyond functional programming: a taste of Verse. Simon Peyton Jones & Tim Sweeney | Lambda Days 20231:12:14

Beyond functional programming: a taste of Verse. Simon Peyton Jones & Tim Sweeney | Lambda Days 2023

Code Sync
30K views • 3 years ago
Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript1:02:15

Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript

Fullstack Academy
227K views • 9 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
The Next Five Years of ClojureScript - David Nolen1:00:58

The Next Five Years of ClojureScript - David Nolen

Metosin
19K views • 10 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
Domain Modeling Made Functional - Scott Wlaschin51:40

Domain Modeling Made Functional - Scott Wlaschin

NDC Conferences
71K views • 9 years ago
Stanford Seminar - Concatenative Programming: From Ivory to Metal1:04:45

Stanford Seminar - Concatenative Programming: From Ivory to Metal

Stanford Online
14K views • 8 years ago
"Shen: A Sufficiently Advanced Lisp" by Aditya Siram40:20

"Shen: A Sufficiently Advanced Lisp" by Aditya Siram

Strange Loop Conference
26K views • 12 years ago
Erlang Factory SF 2016 Keynote  Phoenix and Elm – Making the Web Functional55:28

Erlang Factory SF 2016 Keynote Phoenix and Elm – Making the Web Functional

Erlang Solutions
23K views • 10 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
Philip Wadler  - Propositions as Types (Lambda Days 2016)56:58

Philip Wadler - Propositions as Types (Lambda Days 2016)

Erlang Solutions
20K views • 10 years ago
Lecture 1B | MIT 6.001 Structure and Interpretation, 198658:22

Lecture 1B | MIT 6.001 Structure and Interpretation, 1986

MIT OpenCourseWare
116K views • 17 years ago
Analyzing Programs with Z343:31

Analyzing Programs with Z3

Compose Conference
24K views • 10 years ago
"Datafun: a functional query language" by Michael Arntzenius42:31

"Datafun: a functional query language" by Michael Arntzenius

Strange Loop Conference
9K views • 9 years ago
David Beazley - Lambda Calculus from the Ground Up - PyCon 20193:26:34

David Beazley - Lambda Calculus from the Ground Up - PyCon 2019

PyCon 2019
52K views • 7 years ago