@@ -485,11 +474,11 @@
- people who had a vision of future
- how they shaped computers we use today
- how they shaped Ruby
- - what Ruby's future might look like- December 21, 1995
- - Ruby's first release: 0.95
- - Started from conversation with a colleague on February 24, 1993
-- Yukihiro Matsumoto
- - "Matz"
+ - what Ruby's future might look like
- February 24, 1993
+ - Japanese programmer Yukihiro Matsumoto started developing Ruby
+ - "Matz"
+- December 21, 1995
+ - Released his work (0.95)
- Influenced by:
- Perl, Smalltalk, Eiffel, Ada, Lisp
- "more powerful than Perl, and more object-oriented than Python"
@@ -501,11 +490,15 @@
- add methods found in Smalltalk.
- add functionality found in Perl (in OO way).
- I will dig into the most similar of those languages, Smalltalk
-- Image credit: https://upload.wikimedia.org/wikipedia/commons/5/5a/Yukihiro_Matsumoto_EuRuKo_2011.jpg
- 1968: Mother of All Demos
- - December 9, 1968
- - ACM conference in San Francisco
+- Image credit: https://upload.wikimedia.org/wikipedia/commons/5/5a/Yukihiro_Matsumoto_EuRuKo_2011.jpg
- My story starts in 1968
- Matz was 3 years old
-- Who: Douglas Engelbart
+ - I wasn't even born yet
+ - Most of you weren't born yet
+ - Some of your parents weren't born yet!
+- December 9, 1968
+ - ACM conference in San Francisco
+ - Mother of All Demos
+- Who: Douglas EngelBART
- Augmentation Research Center
- Stanford Research Institute
- Stanford University
@@ -519,59 +512,10 @@
- Interactive editing
- Steven Levy dubbed it "the mother of all demos" in 1994
- _Insanely Great_
+- TODO: Tell them to watch the video (or fit 1 minute of it in)
- TODO: Better images
-- TODO: Link to "Augmenting Human Intellect: A Conceptual Framework" (1962)
- 1945: As We May Think
- - _The Atlantic_ magazine, July 1945
- - Engelbart read it in 1945 and again in 1961
- - Inspired him to design a sort of memex!
- - Wrote "A Conceptual Framework for the Augmentation of Man's Intellect"
- - 1963
-- Vannevar Bush
- - Engineer
- - Analog computers
- - Differential equation solvers
- - MIT
- - PhD
- - Dean of Engineering
- - Lots of government science agencies
- - Head of NACA (NASA's predecessor)
- - Organization overseeing Manhattan Project
- - Was in the 2023 Oppenheimer movie
- - Founded Raytheon
-- memex (memory expansion)
- - store all of your books, records, and communications
- - desk with microfilm screens
- - supplement memory
- - shared and collective memories
- - associative indexing "trails" of research
-- Innovative ideas
- - hypertext
- - personal computers
- - Internet/Web
- - speech recognition
- - online encyclopedias
- - information science/processing/work/society/literacy
- - information overload
-- Ted Nelson referred to it when he conceived "hypertext" in 1960
-- Primary sources:
- - https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/
- - paywalled
- - https://cdn.theatlantic.com/media/archives/1945/07/176-1/132407932.pdf
- - https://www.w3.org/History/1945/vbush/vbush.shtml
- - Abridged version in _Life_ magazine, September 10, 1945
- - https://worrydream.com/refs/Bush_1945_-_As_We_May_Think_(Life_Magazine).pdf
- - Adds some drawings
- - https://dougengelbart.org/pubs/augment-133183-AHI-Vistas.html
-- Photo credit: https://www.michaeljkramer.net/wp-content/uploads/2021/09/Bush_The-Memex.jpg
-- Photo credit (memex): https://erinkmalone.medium.com/foreseeing-the-future-the-legacy-of-vannevar-bush-c418edc9a4ee
- Xerox Palo Alto Research Center
-- Lots of people from SRI's Augmentation Research Center
-- Innovations:
- - Laser printer
- - GUI, icons
- - Ethernet
- - Real-time video conferencing
- - Interactive editing
-- Image source: https://www.techspot.com/articles-info/477/images/2015-09-30-image.jpg
- Attended MoAD
+- TODO: Explain the picture
+- TODO: Link to "Augmenting Human Intellect: A Conceptual Framework" (1962)
- Attended MoAD
- Degree in Molecular Biology
- Where
- Stanford AI Lab (1969)
@@ -582,7 +526,17 @@
- Squeak (1995)
- https://tinlizzie.org/IA/index.php/Talks_by_Alan_Kay
- https://www.quora.com/profile/Alan-Kay-11
-- Photo credit: https://commons.wikimedia.org/wiki/File:Alan_Kay_(3097597186)_(cropped).jpg
- 1968: Alan Kay had an idea
+- Photo credit: https://commons.wikimedia.org/wiki/File:Alan_Kay_(3097597186)_(cropped).jpg
- Xerox Palo Alto Research Center (PARC)
+ - Silicon Valley
+ - Founded 1969
+- Lots of people from SRI's Augmentation Research Center
+- Innovations:
+ - Laser printer
+ - GUI, icons
+ - Ethernet
+ - Real-time video conferencing
+ - Interactive editing
+- Image source: https://www.techspot.com/articles-info/477/images/2015-09-30-image.jpg
- 1968: Alan Kay had an idea
- This cartoon and cardboard mockup
- First paper on it: 1972
- Named it Dynabook
@@ -591,12 +545,19 @@
- from just “vehicles” and “tools”
- to “meta-media” and “for children”
- Portability -> ubiquity
-- ARPA: “interactive intellectual amplifiers pervasively networked worldwide"
- Says his original innovation was the idea of a personal computer for children
- Key to everything:
- GUI, windows, icons, mouse, UX
- OOP
-- Image credit: https://www.quora.com/What-lessons-were-learned-in-aspiring-towards-the-DynaBook-and-have-any-of-its-original-goals-become-dated/answer/Alan-Kay-11
- "The Interim Dynabook"
+- Image credit: https://www.quora.com/What-lessons-were-learned-in-aspiring-towards-the-DynaBook-and-have-any-of-its-original-goals-become-dated/answer/Alan-Kay-11
- Some notes:
+ - `to` is equivalent to Ruby's `def`
+ - 😀 was called smiley
+ - 😀 is instance of turtle class
+ - Looks a bit Lispy with the nested parens
+ - This is 100% accurate UTF transliteration
+ - TODO: Understand definition of `for`, `∢`, `do`, and `:#exp`
+- Already had `self`
+- Source: https://smalltalkzoo.thechm.org/papers/EvolutionOfSmalltalk.pdf
- "The Interim Dynabook"
- Xerox Alto
- Introduced March 1, 1973
- $32k ($200k+ today)
@@ -630,44 +591,19 @@
- https://en.wikipedia.org/wiki/PARC_(company)
- https://en.wikipedia.org/wiki/List_of_people_associated_with_PARC
- PARC campus photo credit: https://preview.redd.it/kjl8la0xow191.jpg?width=900&format=pjpg&auto=webp&s=bc4dfbff6ada4007fdf27ed9fed8dcdbee6ed12e
-- Xerox Alto photo credit: https://dq51jve9h21d4.cloudfront.net/sites/default/files/imce/xie-alto-1-886x750.jpg.pagespeed.ic.pU09ByiUIQ.webp
- Steve Jobs and Apple folks visited PARC in 1979 (twice)
- - Xerox received some Apple stock options
- - Inspired the Mac
- - Smalltalk-76, networking, mouse-driven WYSIWYG GUI
- - "Xerox could have owned the entire computer industry, could have been the IBM of the nineties, could have been the Microsoft of the nineties." -- Steve Jobs
-- Alan Kay joined apple in 1984
- - Had been at Atari for a few years
- - Stayed until 1996
-- Kay's criticism of iPad
- - Not user programmable
- - Not designed for authoring meta-media
- - Not designed for kids
- - No physical keyboard
- - "The Mac was a failure in the sense that it didn't achieve the goal of changing the way people think about computers."
- - "The Mac was a success in the sense that it was a very good implementation of the ideas that were around at the time."
-- Kay says Microsoft Surface tablet is closer to his vision
-- OLPC: One laptop per child (2005)
- - encourages children to interact with & change code on their computer
- Some notes:
- - `to` is equivalent to Ruby's `def`
- - 😀 was called smiley
- - 😀 is instance of turtle class
- - Looks a bit Lispy with the nested parens
- - This is 100% accurate UTF transliteration
- - TODO: Understand definition of `for`, `∢`, `do`, and `:#exp`
-- Already had `self`
-- Source: https://smalltalkzoo.thechm.org/papers/EvolutionOfSmalltalk.pdf
- All in an IDE in a full GUI windowing system
+- Xerox Alto photo credit: https://dq51jve9h21d4.cloudfront.net/sites/default/files/imce/xie-alto-1-886x750.jpg.pagespeed.ic.pU09ByiUIQ.webp
- All in an IDE in a full GUI windowing system
- overlapping windows
- different size fonts, bold, italic
- Source: https://smalltalkzoo.thechm.org/papers/The%20Smalltalk-76%20Programming%20System.PDF
- Dan Ingalls designed Smalltalk-76
- more of a compromise between the Lisp and Algol worlds
- brilliant design; not much flexibility was lost
- - almost 200 times faster than Smalltalk-72
- Smalltalk-80: first public release
+ - almost 200 times faster than Smalltalk-72
- Smalltalk-80: first public release
- Added blocks, booleans, meta-classes
- First Smalltalk book, 1983
- Adele Goldberg
- Xerox PARC
- - One of the designers/implementers of Smalltalk
- Alan Kay coined the term "object-oriented programming" in 1967
+ - One of the designers/implementers of Smalltalk
- Alan Kay coined the term "object-oriented programming" in 1967
- "objects" that encapsulate data and behavior
- interacting with each other through messages
- He'd been working on the ideas since 1966
@@ -678,7 +614,7 @@
- "OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things."
- Regrets that Smalltalk did not evolve after Smalltalk-80
- Smalltalk was 1st OOP language
- - or so I thought ...
- Or perhaps Simula 67 was the first OO language
+ - or so I thought ...
- Or perhaps Simula 67 was the first OO language
- Derived from ALGOL 60
- Most languages we use today are ancestors of ALGOL 60
- "more" syntax than we see today
@@ -688,7 +624,7 @@
- class keyword for user-defined types
- methods
- ...
-- code source: https://staff.um.edu.mt/jskl1/talk.html
- but you can make everything out
+- code source: https://staff.um.edu.mt/jskl1/talk.html
- but you can make everything out
- ... subclass inheriting from superclass
- and adding more instance variables
- Simula 67
@@ -697,21 +633,38 @@
- actor model
- coroutines
- no true parallelism
-- code source: https://staff.um.edu.mt/jskl1/talk.html
- October 3, 1996
+- code source: https://staff.um.edu.mt/jskl1/talk.html
- Steve Jobs and Apple folks visited PARC in 1979 (twice)
+ - Xerox received some Apple stock options
+ - Inspired the Mac
+ - Smalltalk-76, networking, mouse-driven WYSIWYG GUI
+ - "Xerox could have owned the entire computer industry, could have been the IBM of the nineties, could have been the Microsoft of the nineties." -- Steve Jobs
+- Alan Kay joined apple in 1984
+ - Had been at Atari for a few years
+ - Stayed until 1996
+- Kay's criticism of iPad
+ - Not user programmable
+ - Not designed for authoring meta-media
+ - Not designed for kids
+ - No physical keyboard
+ - "The Mac was a failure in the sense that it didn't achieve the goal of changing the way people think about computers."
+ - "The Mac was a success in the sense that it was a very good implementation of the ideas that were around at the time."
+- Kay says Microsoft Surface tablet is closer to his vision
+- OLPC: One laptop per child (2005)
+ - encourages children to interact with & change code on their computer
- October 3, 1996
- IMHO, one of the best "Ruby" books
- Design patterns "in the small"
- Kent Beck
- Agile Manifesto
- Extreme Programming
- Wrote _the_ book on Test-Driven Development
- - JUnit
- December 15, 2000
+ - JUnit
- December 15, 2000
- First English-language book on Ruby
- Dave Thomas (Pragmatic Dave)
- Pragmatic Programmer book
- Coined "DRY"
- Pragmatic Bookshelf
- Agile manifesto (2001)
- - Brought Agile/XP practices to Ruby
- David Heinemeier Hansson
+ - Brought Agile/XP practices to Ruby
- David Heinemeier Hansson
- Danish programmer
- Using Ruby since 2003
- Was doing PHP before that
@@ -728,10 +681,10 @@
- Made enough money to buy himself a bespoke exotic race car
- His Wikipedia entry has much more detail on his racing career than Rails
- image credit: https://dhh.dk/images/headshot-2017-full.jpg
-- image credit: https://commons.wikimedia.org/wiki/File:Ruby_on_Rails-logo.png
- Dave Thomas (Pragmatic Dave)
+- image credit: https://commons.wikimedia.org/wiki/File:Ruby_on_Rails-logo.png
- Dave Thomas (Pragmatic Dave)
- with DHH
- August 7, 2005
-- TODO: More about this book
- "Smalltalk’s Lessons for Ruby"
+- TODO: More about this book
- "Smalltalk’s Lessons for Ruby"
- Ruby IS-A Smalltalk
- Lessons the Ruby community should learn from Smalltalk
- TODO: What are the lessons?
@@ -744,22 +697,39 @@
- Source: https://www.akitaonrails.com/2007/12/21/chatting-with-avi-bryant-part-1
- Source: https://www.akitaonrails.com/2007/12/22/chatting-with-avi-bryant-part-2
- Source: http://web.archive.org/web/20130729204305id_/http://itc.conversationsnetwork.org/shows/detail3432.html
-- Image source: https://www.flickr.com/photos/x180/505428676
- Most of us are not using Ruby to its full potential
+- Image source: https://www.flickr.com/photos/x180/505428676
- Most of us are not using Ruby to its full potential
- Not using modern Ruby features
- I have not used most of these
- QUESTION: Who uses refinements regularly?
- QUESTION: Who is using pattern matching?
- QUESTION: Who is using Data class?
-- QUESTION: Who is using concurrency in Ruby?
- I gave talk on Crystal very early on
- - local Ruby user group - STLRuby
- - had one of the 2 originators on video
-- https://crystal-lang.org/
- Lightweight threads
+- QUESTION: Who is using concurrency in Ruby?
- Today: OpenSmalltalk Virtual Machine, shared among Squeak, Pharo, Cuis, Newspeak
+- Cuis looks interesting
- Lightweight threads
- 1 million threads on a 16-core machine
- Elixir scales
- Small embedded devices
- Large clusters & distributed systems
- Fault tolerance
-- https://elixir-lang.org/
- https://www.rust-lang.org/
- Good solutions are rediscovered
+- https://elixir-lang.org/
- I gave talk on Crystal very early on
+ - local Ruby user group - STLRuby
+ - had one of the 2 originators on video
+- https://crystal-lang.org/
- https://www.rust-lang.org/
- Good solutions are rediscovered
+ - We need to look out for other solutions we can learn from
+- Compiled languages are winning again
+- Many Rubyists have already moved to other languages
+ - And communities
+ - Community is important
+ - Why I keep attending conferences
+ - They take what they've learned with them
+ - Features
+ - Practices
+ - Community
+ - DX
+- Ruby is still alive and doing well
+ - Bright future for many years to come
+ - It will adapt
+- Eventually Ruby use will dwindle
+ - Long tail
- Good solutions are rediscovered
- We need to look out for other solutions we can learn from
- Compiled languages are winning again
- Many Rubyists have already moved to other languages
@@ -770,10 +740,10 @@
- Bright future for many years to come
- It will adapt
- Eventually Ruby use will dwindle
- - Long tail
- Go learn other languages!
- - It'll make you a better Ruby programmer
- [read quote]
+ - Long tail
- Go learn other languages!
+ - It'll make you a better Ruby programmer
- [read quote]
- TODO: Douglas Adams follow-on quote?
-- TODO: There was some point I wanted to make here
- Let's help invent the future!
+- TODO: There was some point I wanted to make here
- Let's help invent the future!
- Explore whether decisions made are still valid
- Experiment with language features
- Add to Ruby
diff --git a/Fifty-Years-of-Ruby/slides.md b/Fifty-Years-of-Ruby/slides.md
index 11766e1..313bfbe 100644
--- a/Fifty-Years-of-Ruby/slides.md
+++ b/Fifty-Years-of-Ruby/slides.md
@@ -49,14 +49,13 @@ url: https://craigbuchek.com/fifty
![bg 60%](assets/Yukihiro-Matsumoto-2011.jpg)
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# 1995: Ruby
---
-![bg width:100%](assets/As-We-May-Think-top-drawing.jpg)
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# 1942: As We May Think
-
-
-
----
-![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-
-> Wholly new forms of encyclopedias will appear,
-> ready-made with a mesh of associative trails running through them,
-> ready to be dropped into the memex and there amplified.
-
-Vannevar Bush, _As We May Think_
+![bg left](assets/Alan_Kay_(3097597186)_(cropped).jpg)
+# Alan Kay
---
@@ -170,7 +130,9 @@ url: https://craigbuchek.com/fifty
# 1969: Xerox PARC
---
@@ -216,7 +176,6 @@ url: https://craigbuchek.com/fifty
- from just “vehicles” and “tools”
- to “meta-media” and “for children”
- Portability -> ubiquity
-- ARPA: “interactive intellectual amplifiers pervasively networked worldwide"
- Says his original innovation was the idea of a personal computer for children
- Key to everything:
- GUI, windows, icons, mouse, UX
@@ -224,6 +183,42 @@ url: https://craigbuchek.com/fifty
- Image credit: https://www.quora.com/What-lessons-were-learned-in-aspiring-towards-the-DynaBook-and-have-any-of-its-original-goals-become-dated/answer/Alan-Kay-11
-->
+---
+![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
+# Smalltalk-72
+
+~~~ smalltalk-72
+to square
+ (do 4
+ (😀 go 50 turn. 90))
+
+to square length
+ (👉length 🠔 :.
+ do 4 (😀 go length turn 90))!
+
+to poly sides size
+ (👉sides 🠔 :. 👉size 🠔 :.
+ do sides (😀 go size turn 360/sides))!
+
+to for token step stop var start exp (:👉var.
+ (∢←⇒(:start.) 👉start←1).
+ (∢to⇒(:stop.) 👉stop←start).
+ (∢by⇒(:step.) 👉step←1).
+∢do. :#exp. CODE 24)
+~~~
+
+
+
---
![bg height:151%](assets/xerox-alto.webp)
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
@@ -267,86 +262,6 @@ url: https://craigbuchek.com/fifty
- Xerox Alto photo credit: https://dq51jve9h21d4.cloudfront.net/sites/default/files/imce/xie-alto-1-886x750.jpg.pagespeed.ic.pU09ByiUIQ.webp
-->
----
-![bg](assets/Macintosh.jpg)
-![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Macintosh
-
-
-
----
-![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Smalltalk-71
-
-~~~ smalltalk-71
-to T 'and' :y do 'y'
-to F 'and' :y do F
-
-to 'factorial' 0 is 1
-to 'factorial' :n do 'n*factorial n-1'
-
-to 'fact' :n do 'to 'fact' n do factorial n. ^ fact n'
-~~~
-
-
-
----
-![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Smalltalk-72
-
-~~~ smalltalk-72
-to square
- (do 4
- (😀 go 50 turn. 90))
-
-to square length
- (👉length 🠔 :.
- do 4 (😀 go length turn 90))!
-
-to poly sides size
- (👉sides 🠔 :. 👉size 🠔 :.
- do sides (😀 go size turn 360/sides))!
-
-to for token step stop var start exp (:👉var.
- (∢←⇒(:start.) 👉start←1).
- (∢to⇒(:stop.) 👉stop←start).
- (∢by⇒(:step.) 👉step←1).
-∢do. :#exp. CODE 24)
-~~~
-
-
-
---
![Smalltalk-76 GUI](assets/Smalltalk-76-UI.jpg)
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
@@ -487,10 +402,42 @@ End of LocRectangle;
- code source: https://staff.um.edu.mt/jskl1/talk.html
-->
+---
+![bg](assets/Macintosh.jpg)
+![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
+# 1984: Macintosh
+
+
+
+---
+![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
+# 1996: Squeak
+
+- Modern Smalltalk
+
---
![bg left w:80%](assets/Smalltalk-Best-Practice-Patterns.jpg)
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Smalltalk Best Practice Patterns
+# 1996: Smalltalk Best Practice Patterns
---
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
+# 2012: Elixir
-TODO: Pharo
+- FP
+- Ruby-like syntax
+ - DSLs
+- Erlang VM
+- Concurrency
+ - Lightweight threads
+- Fault tolerance
+- Scalability
+- Meta-programming
+
+
---
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Crystal
+# 2014: Crystal
- Effectively compiled Ruby
- Lose some meta-programming
@@ -661,31 +626,7 @@ x = [] of Int32;
---
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Elixir
-
-- FP
-- Ruby-like syntax
- - DSLs
-- Erlang VM
-- Concurrency
- - Lightweight threads
-- Fault tolerance
-- Scalability
-- Meta-programming
-
-
-
----
-![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
-# Rust
+# 2015: Rust
- Fast and memory-efficient
- Low-level
@@ -698,6 +639,37 @@ x = [] of Int32;
- https://www.rust-lang.org/
-->
+---
+![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
+# Ruby's Future
+
+- Ruby will still get new features
+ - Innovations
+ - Borrowing/stealing
+- Ruby will last a long time
+- Something will replace Ruby
+
+
+
---
![RubyConf 2024 doodle](assets/RubyConf-2024-background-doodle-2.png)
# Take-aways