HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

7 minutes of Pharo Smalltalk for Rubyists

Avdi Grimm5 HN recommenders · recommended in 8 months, 2017-2026
YouTube
37K views · 11 years ago · demo · evergreen

Ruby developer Avdi Grimm gives a seven-minute tour of Pharo Smalltalk's development environment, focusing on tools like search-by-example and the integrated, live coding experience.

HN recommends it as a quick, compelling look at what Smalltalk tooling feels like, especially for Ruby programmers.

Programming language designTesting, debugging & developer toolsPython, Ruby & scripting languages#pharo#smalltalk#ruby#livecoding#repl-drivendevelopment

15 comments from Hacker News

@throwatdem123112026 · in “Squeak/Smalltalk 6.1 Release Notes”

As a Ruby developer this video about Pharo smalltalk made me a smalltalk believer — not surprising because Ruby was heavily inspired by smalltalk. ▶ this video

Strongly recommendsView on HN
@sebastianconcpt2024 · in “Smalltalk simplicity and consistency vs. other languages (2022) [video]”

MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk - link 7 minutes of Pharo Smalltalk for Rubyists - ▶ this video

RecommendsView on HN
@trealira2023 · in “Should you split that file?”

> The problem I've seen with this idea is that in order for it to work, you have to be willing to add more metadata to your program, because programs themselves don't have the necessary data in them. You can make it mandatory to your language, but than just raises the friction for people trying to use that language. I'm confused by what you mean. Can you be more specific as to what sort of metadata that has to be embedded in the code would be needed? I've never used it, but watching this Smalltalk-80 IDE demonstration seems like it could be a workable idea. link Edit: A more modern example using Pharo. You can see in the video that he's not accessing files, rather everything is sorted into packages and classes. ▶ this video

CitesView on HN
@web3-is-a-scam2023 · in “Pharo 11”

As a rails developer - my introduction to Pharo started with this video: ▶ this video If you're not a ruby/rails developer you can still see how awesome it is, but for rubyists specifically it can really be quite mind blowing.

Strongly recommendsView on HN
@Qem2022 · in “Programming languages with small surface area”

In terms of surface area, I think is hard to beat languages in the Smalltalk family. Smalltalk has only six reserved words: true , false , nil , self , super and thisContext. To emphasize the simplicity, there is even a smalltalk postcard to show the whole syntax fits on it. See link I think this postcard remark may be a bit misleading sometimes, as in practice the complexity is shifted from syntax to the large class library in the system image, that packs a lot of functionality. But yet the environment is sweet and has great discoverability, with functionality like search by example. See ▶ this video The Smalltalk flavor I strongly recommend is Pharo. There's a MOOC[1] on it, and there are several free books that cover the basics of the language itself[2][3], data visualisation[4] and numeric stuff[5]. [1]. link [2]. link ... [3]. link [4]. link [5]. link

RecommendsView on HN
@Qem2022 · in “Functional programming patterns in Smalltalk”

I think the most distinguishing feature is the superb environment and tooling that is a integral part of the language, by default, in most Smalltalk dialects. The tooling is so seamless integrated, that you're nudged towards simply code inside the debugger. Things like search method by example feel like a superpower. See ▶ this video If you're interested in experience what a modern Smalltalk looks like, I strongly recommend the Pharo programming MOOC. It was a eye opener for me: link

RecommendsView on HN
@Qem2021 · in “Ask HN: Choosing a language to learn for the heck of it”

You're welcome. To illustrate what the Pharo environment looks like, I'd also recommend this short 7 min video by Avdi Grimm: ▶ this video

RecommendsView on HN
@feifan2021 · in “Computers Aren't Fun Anymore (2020)”

IMO high-level, low-tech DSLs are under-explored. Lots of possibilities there. I don't think you're necessarily limited to just text-based DSLs though; there's interesting opportunities when you pair with a UI. For example, see Pharo: ▶ this video

CitesView on HN
@mikelevins2021 · in “On Repl-Driven Programming”

That's a good suggestion. Walking through a set of interactions is a solid idea. For what it's worth, there are some videos around of people actually doing it with Lisp and Smalltalk systems, and pjmlp already posted a pile of them elsewhere in this thread. I can add a few more: Kalman Reti walking through some interactions with a Symbolics LispM repl: link Brian Mastenbrook demonstrating Interlisp's SEDIT structure editor in the Xerox Lisp environment: link Rainer Joswig (lispm here on HN) showing us a little bit of repl and Zmacs interaction on a Symbolics Lisp Machine: link Rainer again, showing some simple interactions with Macintosh Common Lisp, which was my daily driver for years: link Ruby programmer Avdi Grimm shows some things that he found cool about Pharo Smalltalk: ▶ this video Dan Ingalls (one of the original authors of Smalltalk) in a 2017 demo of Smalltalk 76: link There are some other things I'd like to find for lists like this, but haven't been able to. In particular, a good demo of Apple's SK8 would be great. If you can imagine a full-color Hypercard that could crack open and reprogram absolutely everything on the screen, including the machine code that drew the window system's widgets, all in a repl while the code was live; in which you could grab an arbitrary widget and drop it on the repl window to get a live variable reference to the widget, and then inspect it, operate on it, and reprogram it, again, while everything continued to run; in which you

RecommendsView on HN
@pjmlp2020 · in “Emacs 27.1”

Anders explains it better than me, "Anders Hejlsberg on Modern Compiler Construction" link Basically ability to see the language AST at all time, do time checking with broken code, incremental compilation, REPL and IDE editing experience is fused together. Here is another short examples, "7 minutes of Pharo Smalltalk for Rubyists" ▶ this video "MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk" link

CitesView on HN
@mikelevins2020 · in “Ask HN: Production Lisp in 2020?”

There's this recent video showing a little of what the Pharo Smalltalk environment is like: ▶ this video The video was made by a Ruby programmer, rather than an experience Smalltalker, so it's more a newbie showing you cool things he's discovered, rather than an expert showing the power of the system. On the other hand, there's this one: link That one is an expert, Kalman Reti, showing some of what it's like to work with a Symbolics Lisp Machine. (It's not a real Lisp machine; they're all at least thirty years old now; this is an emulator running the old Symbolics OS on Linux). Go to YouTube and search for Rainer Joswig and you'll find a few video demos of Lisp Machines and MCL and so forth. Finally, here are a few images from about eighteen years ago, also from Rainer. They show various views of the Macintosh Common Lisp and SK8 environments. It's not an experienced user showing you around, but at least you can get some idea what the environments looked like: link

RecommendsView on HN
@elliotlarson2020 · in “Pharo 8.0”

As a long time Ruby developer I frequently hear older developers talking fondly about their experiences working with Smalltalk long ago. When I saw this post, I was curious enough to watch a video just now by a respected Ruby dev (who's admittedly new to Smalltalk and using an older version of Pharo): ▶ this video . The video is short, but it looks to me like the advantage of developing in this environment is mainly that you can write a test, run it in a kind of debug mode, and when the environment encounters something it doesn't understand it gives you some options for creating something new like an object or a method to solve the problem. This seems kind of cool, but I feel like there must be more to it. Can anyone better explain the selling point, or share a video that highlights how this environment is so cool?

CitesView on HN
@ben-coman2018 · in “Pharo MOOC”

Rubyists might know of Ruby books written by Avdi Grimm, who recorded his early experience with Pharo... ▶ this video

CitesView on HN
@noblethrasher2018 · in “Video editing with Python”

I don't agree with 'ageofwant’s prediction (though I really wish that I could), but command discovery is a solved problem: Pharo Smalltalk has a nifty feature whereby you can find methods by example[1]. E.g. typing 'hello, world', 'HELLO, WORLD' in the finder returns the method `asUppercase` on the String class. In a statically-typed language, you can just search by function signature (e.g. Clip -> RotatedClip (an effect) or Clip -> Time -> Clip * Clip (a cut)). [1] ▶ this video

CitesView on HN
@bencoman712017 · in “Can This Man Spark a Renaissance for the Smalltalk Programming Language?”

> * Tests are now common and considered a good thing. A new contributor can write code without worrying about breaking rarely-used functionality. btw, xUnit testing originated with Smalltalk. link > * Many languages have package managers. Using latest third-party library is now simple Metacello is Pharo's tool for defining dependencies between libraries [1][2]. [1] link [2] link > * We have great deployment mechanisms -- one-command deployments are common, containers and version pinning help reproducibility. Pharo Catalog provides a GUI one click installer of Metacello configurations link You can also load Metacello configurations from the command line per last snippet of [1] Metacello provides version pinning. You might consider every Smalltalk Image to be a container. Its like a uni sports tour. What happens in the Image, stays in the Image ;) > * Some languages come with support for interactive REPL -- you can evaluate arbitrary commands inside running processes. As you say, Smalltalk has a super REPL. How easy is it for other REPLs to modify and query the code of the system? For example in Pharo if I define a class and methods like this... Object subclass: #MyClass instanceVariableNames: 'count' classVariableNames: '' package: 'Demo'. MyClass compile: 'setCount: anInteger count := anInteger'. MyClass compile: 'getPlusFive ^count + 5'. I can do this... obj := MyClass new. obj setCount: 3. obj getPlusFive inspect. ==> 8 MyClass methods asString ==> '{MyClass>>#getPl

CitesView on HN
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
Lambda World 2018 - What FP can learn from Smalltalk by Aditya Siram43:37

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

Lambda World
25K views • 7 years ago
RailsConf 09:  Robert Martin, "What Killed Smalltalk Could K1:00:56

RailsConf 09: Robert Martin, "What Killed Smalltalk Could K

O'Reilly
87K views • 17 years ago
Q&A with Guido van Rossum, Inventor of Python56:55

Q&A with Guido van Rossum, Inventor of Python

Microsoft Reactor
28K views • 5 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
"Liberating the Smalltalk lurking in C and Unix" by Stephen Kell40:56

"Liberating the Smalltalk lurking in C and Unix" by Stephen Kell

Strange Loop Conference
25K views • 12 years ago
Larry Wall Speaks at Google57:53

Larry Wall Speaks at Google

Google TechTalks
81K views • 18 years ago
Lone Star Ruby Conference 2010 Real Software Engineering by Glenn Vanderburg51:57

Lone Star Ruby Conference 2010 Real Software Engineering by Glenn Vanderburg

Confreaks
30K views • 15 years ago
Perl 6 for Mere Mortals49:06

Perl 6 for Mere Mortals

Curtis “Ovid” Poe
6K views • 11 years ago
RailsConf 2014 - All the Little Things by Sandi Metz38:47

RailsConf 2014 - All the Little Things by Sandi Metz

Confreaks
190K views • 12 years ago
Emily Shea - "Perl Out Loud"51:11

Emily Shea - "Perl Out Loud"

The Perl and Raku Conference - Greenville, SC 2026
33K views • 7 years ago
Building Your Own Dynamic Language1:14:32

Building Your Own Dynamic Language

Stanford
21K views • 18 years ago
Compiling and Optimizing Scripting Languages1:01:37

Compiling and Optimizing Scripting Languages

Google TechTalks
21K views • 17 years ago
Dynamic Languages Wizards Series - Panel on Language Design1:58:46

Dynamic Languages Wizards Series - Panel on Language Design

Eduardo Cavazos
16K views • 14 years ago
Tudor Gîrba - Moldable development37:49

Tudor Gîrba - Moldable development

Curry On!
26K views • 7 years ago
October CincyRb - Jim Weirich on Decoupling from Rails1:15:58

October CincyRb - Jim Weirich on Decoupling from Rails

Launch Scout
48K views • 13 years ago
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)1:24:39

Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)

Developer Voices
64K views • 2 years ago
Psp collections: views and more by Paul Phillips1:28:59

Psp collections: views and more by Paul Phillips

AI Council
11K views • 12 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
ClojureScript in the Age of TypeScript — David Nolen59:31

ClojureScript in the Age of TypeScript — David Nolen

ChariotSolutions
29K views • 5 years ago