Summarized using AI

Keynote: Reinventing Wheels of the Future

Yukihiro "Matz" Matsumoto • November 01, 2012 • Denver, Colorado • Keynote

In the keynote titled "Reinventing Wheels of the Future" delivered at RubyConf 2012, Yukihiro "Matz" Matsumoto discusses the significant role of diversity in fostering innovation in programming and technology. Matz reflects on his journey as the creator of the Ruby programming language, which he began developing in 1993. He emphasizes that programming languages are more than just tools; they encapsulate philosophies that guide the thinking of their users.

Key points from the talk include:

  • Passion and Motivation in Programming: Matz shares how his love for programming led to the creation of Ruby and highlights that motivation, whether it stems from fun or profit, is a crucial resource in creative processes.
  • Value of Diversity: He argues that diversity in programming—different motivations and approaches—leads to greater innovation and should not be seen as a waste of resources. Instead, he suggests that diverse projects enrich the programming landscape by introducing new ideas and concepts.
  • Learning from Failures: Matz reminds the audience that not every innovative idea succeeds, but the act of attempting them is valuable. He draws a parallel to fishing, where patience and the experience of waiting contribute to the enjoyment of the activity, not just the catch.
  • Design and Improvement: He critiques poor design in both programming and everyday products, advocating for continuous improvement and innovation. Matz mentions practical innovations within programming languages that can enhance user experience and accessibility, underscoring that those who design languages shape their functionality and usability.
  • Future of Programming: The keynote includes a look back at the evolution of Ruby and Matz's expectations for its future on the occasion of its 20th anniversary. He notes the collaborative efforts in the Ruby community to enhance the language, introduce new features, and fix bugs as part of this ongoing improvement effort.

In conclusion, Matz's keynote champions the idea that diversity and motivation are essential drivers of creativity and innovation in software development. By embracing different perspectives, aspiring programmers can contribute to a more vibrant and effective technological future. He challenges the audience to be designers in their own right and to never settle for the status quo, encouraging them to innovate and enjoy the process of creation.

Keynote: Reinventing Wheels of the Future
Yukihiro "Matz" Matsumoto • Denver, Colorado • Keynote

Date: November 01, 2012
Published: March 19, 2013
Announced: unknown

In this Keynote 'Matz' talks about how diversity helps to create innovation.

12:36 - website Matz referes to http://www.malevole.com/mv/misc/killerquiz/

RubyConf 2012

00:00:15.480 uh good morning
00:00:17.600 everybody you know this is
00:00:20.960 n the one who started
00:00:25.160 everything
00:00:27.960 so I call
00:00:30.960 I have a programmer I'm very happy
00:00:33.600 program I happen to create the
00:00:36.480 programming language and then so many
00:00:39.040 people so many people using my
00:00:44.000 language and then I I've feel
00:00:48.440 Happ but I've feel nervous when
00:00:51.399 I I'm a programmer not a te
00:00:55.920 presenter how do you feel about losing
00:00:59.519 was that the conference so this this
00:01:04.559 sounds great conference I I believe this
00:01:08.640 this year's conference will be
00:01:12.360 great so we was started in February
00:01:17.880 1993 as a script for
00:01:21.520 units
00:01:25.240 to but not
00:01:28.079 very I just wanted to create my own
00:01:30.560 programing language I was a language G
00:01:32.439 for last I don't know 30 something years
00:01:35.560 then when I was in high school I right
00:01:38.240 after I started programming
00:01:41.479 so I was somehow interested in the
00:01:44.759 programming by
00:01:45.920 myself rather than programing something
00:01:49.119 so some of my friends are interested in
00:01:52.280 programming and started making games or
00:01:55.640 using uh computers as their tools for
00:01:59.240 research or something
00:02:01.840 or or the something to make money
00:02:07.280 but I don't know exactly with I don't
00:02:10.119 know why but I have interesting in
00:02:12.480 programing practice I back thing I use
00:02:15.879 the pram langage name
00:02:18.440 basic was great PR language very
00:02:21.760 interactive but you know as aing
00:02:24.239 language it's quite weak so I started
00:02:28.680 learning I I wrote a book about the
00:02:31.400 language in the past and I studyed I
00:02:34.720 read through the book but I didn't have
00:02:37.040 a computer to run H so back then the
00:02:41.920 compiler was so expensive you know the P
00:02:45.280 compiler wasn't some I don't
00:02:49.440 know $5,000 $5,000 or something I know
00:02:55.280 very it was very expensive but thing so
00:02:58.720 I couldn't compile my my program so I
00:03:01.959 just read through the book write down
00:03:03.799 the pass program so
00:03:06.799 I consider myself
00:03:12.120 learn and then and interestingly P
00:03:17.040 taught me many things that the the
00:03:19.959 programming language can be uh different
00:03:24.599 the language to language and some
00:03:27.200 language is very strong in some as that
00:03:30.879 some language very weak in some so and
00:03:35.120 every program language has its
00:03:38.080 designer and this their designer these
00:03:42.920 designers has their own philosophy onp
00:03:47.040 on upon designing the language
00:03:51.239 so and uh the
00:03:54.920 language affect the the Mind thought the
00:03:59.280 way of thinking of programmers so the
00:04:03.799 language designers is kind of like a
00:04:05.519 programming the
00:04:07.840 programmers so that that made me uh
00:04:13.319 interested in programing Lang so when I
00:04:16.199 was in high school I I decided I I
00:04:20.560 wanted to create my own but back then I
00:04:24.680 didn't have any experience I have no
00:04:26.680 knowledge I have no internet back then
00:04:30.160 so I couldn't do that so I just write
00:04:32.840 down my uh ideal programming language on
00:04:36.280 the
00:04:37.120 notebook so it's very sad I lost my
00:04:41.600 that I don't remember that that language
00:04:44.960 look like but so I wanted to to create
00:04:50.320 my own programing language for for years
00:04:54.120 then in 1993 I happened to St my
00:05:00.000 F so this is the very basic motivation
00:05:04.199 behind
00:05:05.400 Rie uh recently a guy came and bl me on
00:05:08.680 Twitter that said he said why did you
00:05:11.440 even rby where we have
00:05:15.000 PE it was redundant reinvention the whe
00:05:19.319 it was a wte of man power that is lied
00:05:23.840 resource so many people feel negative
00:05:27.039 about the work
00:05:31.680 what is
00:05:36.680 it yeah we have there there is some
00:05:40.520 truth in his words like uh you
00:05:45.720 know we indeed we have really
00:05:48.680 resource we only have 7 billion people
00:05:51.759 on Earth very
00:05:54.800 limited and very few among them
00:05:58.000 P so
00:06:00.720 the man power is actually limited
00:06:04.199 resource but it's not about neck we have
00:06:07.759 more real resource which is
00:06:10.280 motivation motivation is the most
00:06:12.720 precious resource behind great
00:06:15.880 work we are not machines we need driving
00:06:19.840 course to accomplish great things like
00:06:23.400 making
00:06:26.520 websites what's your motivation like
00:06:29.599 having fun or profit making money my
00:06:33.720 motivation is love toward PR Lang so I
00:06:37.919 love alls from her
00:06:42.560 including and
00:06:44.360 her
00:06:49.000 even it sounds spooky to to love Lang
00:06:56.000 but but who should love notification
00:07:00.000 everyone has different motivation and
00:07:02.479 motivation is very precious to have and
00:07:06.599 it is the driving force behind the great
00:07:10.400 works since since some may call rein whe
00:07:15.759 like a pro Ruby after Pro it's redundant
00:07:19.479 reinvented
00:07:20.680 way but I think I i' say go ahead if we
00:07:24.560 have different
00:07:25.560 motivat and if we introduce diversity
00:07:30.199 everything
00:07:31.599 good it require cost you know the rund
00:07:36.280 works but it might it might waste your
00:07:39.840 time you know the diversity works the
00:07:43.319 different Works May Fail so you your
00:07:47.639 work will fail so your work your time
00:07:51.919 should shall be wasted
00:07:54.639 but I think it's okay I think it's okay
00:07:58.159 just because you know
00:07:59.960 if you motivated you you have you have
00:08:03.800 fun on
00:08:06.000 that so you had a front time so it's
00:08:11.440 it's okay just
00:08:14.479 because some of you might like fishing
00:08:18.879 so fishing takes time waiting fish to to
00:08:23.680 eat your b b but you don't say wasting
00:08:28.720 it's just W having fun
00:08:32.279 so so diversity you motivated diversity
00:08:36.839 is very good
00:08:38.399 thing and and the world without
00:08:41.839 diversity is
00:08:44.000 unpleasant what if we forc to forc
00:08:47.080 people to focus on Pro back in
00:08:50.040 1993 so we might have better
00:08:53.560 call but the the world the world so the
00:08:59.839 uh young prog back then me was forced to
00:09:04.680 work
00:09:05.720 on Pearl instead of Designing my own pet
00:09:10.560 project
00:09:13.680 it's it's not present not not not at all
00:09:18.200 it's like in the world of
00:09:22.519 84 forc them to do something by their
00:09:26.240 big
00:09:27.800 brother so person is that the kind get
00:09:31.040 cost of
00:09:32.240 imigration no one understand about
00:09:34.880 imigration so
00:09:37.560 no no one no one Invasion the the people
00:09:42.200 who have succeeded who made The Invasion
00:09:45.360 don't know about innovation in general
00:09:47.880 so the people who succeeded may not
00:09:52.600 succeed next may not make next
00:09:56.920 Innovation so and few people of course
00:10:00.040 don't don't know about
00:10:01.920 Innovation so no one so each innovation
00:10:06.480 has different faes
00:10:09.640 so only we can do is
00:10:13.800 try try to innovate most of them ver uh
00:10:19.880 most of them are fail will
00:10:23.240 fail but you know we we try again and
00:10:28.000 again until we make Invasion that's the
00:10:31.480 diversity that's the spirit of diversity
00:10:35.160 I think it's a good
00:10:37.320 thing but what we would cre the future
00:10:41.079 to raise the possibility of
00:10:43.600 success so few days ago I have I I read
00:10:48.200 a
00:10:50.399 um
00:10:52.120 broadcast like
00:10:54.399 is you really
00:10:59.680 so I I think most of you don't Japanese
00:11:03.600 what a
00:11:05.320 say so that it it says ID survivors will
00:11:10.760 be language designers de impers and high
00:11:15.279 value
00:11:21.399 nich sounds
00:11:23.440 weird uh his outline is
00:11:39.519 F uh Fring will be the fundamental
00:11:43.079 literacy like a writing and Counting
00:11:46.680 something and then it t can be done by
00:11:50.200 everybody so professional like us should
00:11:53.000 do hard T we now but how can we be l
00:12:00.200 designers me like designers that's okay
00:12:03.440 but you how are
00:12:08.040 you how many langers do you know
00:12:12.880 me maybe you know greo but uh who
00:12:17.160 invented py L I mean I mean not
00:12:24.440 L of of pearl r orish
00:12:29.760 what
00:12:31.120 others so if you Google it you can find
00:12:35.519 very interesting website
00:12:38.959 namers
00:12:43.279 or it's a
00:12:45.800 cite the if when you access it the it
00:12:50.560 gives a bottle face BT of the person
00:12:56.160 mostly with be
00:12:59.760 and some of them are
00:13:02.120 langers and the the other part of the
00:13:05.880 Civ is quite
00:13:11.839 difficult likely I'm not not not in them
00:13:16.760 not listed in them
00:13:20.079 anyway you may not start making popular
00:13:23.639 langar you may not the pr how many of
00:13:27.040 you how many of you have designed your
00:13:31.120 own programing language raise your
00:13:34.000 hand yeah very few of them but it's it's
00:13:38.959 much more than I expected maybe 10 10 of
00:13:43.199 them out of
00:13:46.480 people I don't know how
00:13:48.440 many 700 700
00:13:51.759 people 10 out 10 so how many of you
00:13:57.680 implement program
00:14:05.160 thank you so yeah little maybe less than
00:14:09.920 20 but we
00:14:13.480 call my I is a
00:14:16.639 program you you
00:14:19.720 design you design code you design API
00:14:23.759 you design
00:14:25.639 interface
00:14:28.040 the so they
00:14:30.440 Thomas who is not here I guess they
00:14:34.120 Thomas once once said the programming is
00:14:36.959 a process designning own DSL
00:14:40.480 so the the process of implementing
00:14:44.199 application is designing and
00:14:47.040 implementing your own vsl upon top of
00:14:50.079 the your program right Ruby then create
00:14:54.040 the your application on top of
00:14:57.440 yoursl so every process of
00:15:01.399 rication is a process of Designing and
00:15:06.160 implementing programing language so in
00:15:09.040 that sense you can be language Lang and
00:15:12.639 you should be language so to
00:15:18.240 create great PR great education so you
00:15:23.360 should be a
00:15:29.560 so too few people care about
00:15:32.199 design the world is fo C
00:15:36.360 designs for example Sho
00:15:40.079 SS few years ago I had a I bought shoes
00:15:44.160 this are ni on shoes I like that I I
00:15:47.360 like the that pair of shoes but somehow
00:15:52.319 that strings losen every time so I tied
00:15:57.279 up again and again
00:15:59.440 and I feel like I'm wasting my
00:16:04.920 life that's a bad
00:16:07.279 design why on Earth in 21st century we
00:16:13.040 have to tie up my shoes again in the
00:16:17.079 G so I had
00:16:20.639 time so
00:16:26.920 I it's a hack
00:16:32.880 but but the stream sh streams has
00:16:38.079 this better should be better
00:16:41.120 designed at the first
00:16:43.600 place so the world is full full full
00:16:47.759 roomful
00:16:49.120 Improvement go
00:16:52.240 victim by starting a new project by
00:16:55.319 first existing project called netive
00:16:59.000 happen
00:17:00.639 so I believe most of you here are
00:17:03.959 programmers or some something involving
00:17:07.000 program in
00:17:08.640 BR I think that the reason we gather
00:17:12.120 together here and we can program we can
00:17:16.439 code that means we can change the
00:17:20.000 world so code make it happen in good
00:17:23.799 shape and reinvented way very
00:17:30.280 so make a better place and be happy I
00:17:37.600 will so it was dark
00:17:40.960 stor not really it isn't dark it is
00:17:44.559 storing it is night but in
00:17:47.520 1993 almost 20 years ago I invented I
00:17:51.480 started developing movie actually I
00:17:54.720 named Ruby on the February 24th 1993
00:18:00.080 since the the programing language is
00:18:02.440 some kind of virtual existence so m is
00:18:05.760 pretty important so I decided the DAT
00:18:09.760 date that date which I named my
00:18:13.720 programming language is the birthday of
00:18:15.760 my bir so since then it has the almost
00:18:19.760 20 years has passed so I had been I had
00:18:24.120 been happy for last 20 years I always
00:18:26.840 have been more it always been more
00:18:28.840 expected you know I when I started pram
00:18:32.280 uh I started
00:18:33.919 Ruby it was my project it was my hobby
00:18:37.559 so I you know I expect rovie users to be
00:18:43.600 less than
00:18:44.720 100 it's the that dark corner of the
00:18:48.360 room but you know something happened
00:18:51.760 some some yeah I don't I don't I don't
00:18:54.520 know exact process but something
00:18:56.400 happened so everyone got interested in
00:18:59.799 movie all over the world maybe millions
00:19:02.880 of people right now using movie is far
00:19:06.520 far more I expect and
00:19:10.039 then yeah and giving a keynote before
00:19:14.360 700 people is far more than
00:19:17.799 SC so I going try to make the world
00:19:20.559 better place by providing
00:19:23.400 Ruby not my primary intention but but
00:19:27.559 you know
00:19:29.640 anyway but by making will be even better
00:19:33.440 so on feary
00:19:35.880 24th
00:19:37.440 2013 February next
00:19:40.320 year it's the 20th birthday we will L
00:19:44.880 all as as we announced
00:19:55.880 before why
00:20:01.640 finally by finally I mean that the I I
00:20:06.320 about the previous Keynotes in the Ruby
00:20:09.159 conference this is a
00:20:12.520 11 Ruby conf the 12 the first one is
00:20:17.919 21 so I look look back and the first
00:20:22.480 menion of Ruby 20 in
00:20:26.799 301 the first Ruby confence I mentioned
00:20:30.280 Ruby to all in the first keynote in the
00:20:33.799 first
00:20:35.840 Ruby it's it's 11 years ago and uh then
00:20:42.200 in the year 2003 i metion r
00:20:45.799 again actually that within the last
00:20:50.200 Keynotes I me in these
00:20:53.840 conferences 2011 203 206 207 20110
00:21:01.280 so it's kind of like a boy and
00:21:07.120 is but let's find but find this is this
00:21:12.080 should be true of course you know that
00:21:15.200 and it is progressing steadly the the
00:21:18.720 guys the guys like in Japan is now
00:21:21.520 working on working on the the release
00:21:25.760 candidate rual release candidate one
00:21:29.400 and by compensating the they cannot you
00:21:34.600 know they cannot attend they couldn't
00:21:37.279 afford to attend the rubikon so they had
00:21:40.600 frustrated so they had the the they had
00:21:44.840 something to work on to to ignore their
00:21:49.760 stress so they're working on rubby stand
00:21:53.000 one so I would I will see it we will see
00:21:56.240 it in today or tomorrow
00:21:59.279 I mean tomorrow
00:22:01.279 yeah in Japan we already
00:22:05.279 tomorrow
00:22:06.919 anyway it will be the Ruby to will be
00:22:09.720 faster than
00:22:11.480 ruby9 the working on it and he he is
00:22:14.760 going to get a presentation on have a
00:22:17.600 session and tomorrow I I guess I I'm not
00:22:21.039 sure and the co will have a session
00:22:24.840 about how to improve the internal of the
00:22:28.039 version
00:22:30.159 of9 to
00:22:32.200 visual it be more reliable it be more
00:22:35.640 fully
00:22:36.600 tested so more fun to use and it will
00:22:40.520 have the keyword for more arents so rby
00:22:44.559 one9 can uh you can provide the keyword
00:22:48.919 arguments at the the bottom of the bot
00:22:53.600 the AR L as a inline
00:22:56.880 hash but you have to De compos it in the
00:23:00.480 the
00:23:02.320 colite by by hash the kind of key works
00:23:06.960 you you can see the example in some the
00:23:10.320 rails methods but it's so so we timate
00:23:16.080 timate that kind of De decomposition so
00:23:19.880 we you can Define the keyword argument
00:23:23.960 in the the death
00:23:26.799 arum so and then we will have that
00:23:30.159 enable lazy which enables you to sub the
00:23:33.960 lazy for him you real lazy you know but
00:23:38.039 not that lazy but lazy evalation La
00:23:43.039 lazy so and we going to have a b PR
00:23:47.000 which provides some kind of meod
00:23:48.880 comination
00:23:50.600 Comm so it's it is proposed by Thea hats
00:23:56.000 but we look through it and finally
00:23:59.440 implemented as a as mod prep that means
00:24:03.240 that mod prep mod include uh as the
00:24:08.600 methods to that existing class of modu
00:24:13.039 but uh modu prend R existing CL modu so
00:24:18.000 the method will come
00:24:20.799 before the
00:24:25.000 for the the the prepended modu the
00:24:30.080 method in the prented modu RS the
00:24:32.360 existing method so you can replace the
00:24:35.760 the alas me Chain by using the
00:24:39.679 mod so we will have some kind something
00:24:43.799 refinement which is uh kind like a the
00:24:47.760 main Stace for the monkey pattern so you
00:24:50.799 can grab the monkey patching in some
00:24:53.919 module some refinement so you put the
00:24:57.480 you
00:24:58.960 uh declare using
00:25:01.840 the the requirement and space so the
00:25:06.360 multi pattern is only available in that
00:25:09.880 scope so this Ruby tool featur will be
00:25:13.720 uh explained in the session named I
00:25:17.480 don't remember the exact name ruby2 in
00:25:20.600 ra ons or something yeah
00:25:24.760 today so if you're interested go go
00:25:28.000 there
00:25:29.760 I I believe it it will be the extensive
00:25:33.559 explanation so you can join us the E the
00:25:37.240 the key or effort of making Ruby to all
00:25:40.799 so by using trun and and uh I mean GI
00:25:47.799 Ruby Ruby or from the
00:25:51.720 main by reporting bags we still have
00:25:55.600 bags on Ro so you can report them so you
00:25:59.520 may have some kind the uh compatibility
00:26:02.279 issues from one n so it we consider
00:26:06.000 basically they are BX so report them so
00:26:09.399 we will we try to fix so by fixing you
00:26:13.080 can fix it's open source you can fix bgs
00:26:16.080 by yourself if you if you will so report
00:26:20.080 them so by sending the pool like Quest
00:26:23.360 we are we are happy that accept pool
00:26:26.360 like but holding a
00:26:28.880 to all and tell them my my project is
00:26:32.120 working really to now I'm trunk now so
00:26:35.159 it will it will work on rout to
00:26:37.919 go we can make it better we can make the
00:26:41.399 world better
00:26:44.799 and
00:26:47.159 what we can make the world better
00:26:51.480 so and recently I work I have a
00:26:56.200 different work of name m this is the
00:27:00.360 topic of the last keyot last year's
00:27:02.600 keyote so m is uh something the mini
00:27:06.640 Ruby or invaded
00:27:08.919 Ruby so it's it's a ruby auton
00:27:13.080 implementation of the subset of the
00:27:15.039 language on to the
00:27:20.159 eding environment so so weak uh resource
00:27:25.640 like a less memory res power or
00:27:27.880 something
00:27:28.720 so this is very
00:27:30.399 compactation it actually runs on the
00:27:33.399 very teeny B
00:27:35.039 computer um with few 100 kiloby of
00:27:38.679 memory so comparing to that the MRI
00:27:43.279 requires I don't know few
00:27:45.840 mix or
00:27:47.720 the of memory so memory is very very
00:27:53.240 compact so and uh we we will have M
00:27:58.880 mobile which is the the M extension to
00:28:03.039 to enable to write the iOS
00:28:06.600 appication so we will have a session on
00:28:09.200 that so
00:28:11.399 summary uh to
00:28:16.200 go who
00:28:18.440 moated reent
00:28:20.720 Wheels fix strings bad designs the the
00:28:26.960 improvements left on past so make it
00:28:30.799 work better I believe you
00:28:34.120 can maybe if you
00:28:37.480 don't it's okay as long you to be
00:28:40.799 happy happy
00:28:42.960 acting thank you
Explore all talks recorded at RubyConf 2012
+46