We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Ruby Conference 2018 - Opening Keynote

00:00

Formal Metadata

Title
Ruby Conference 2018 - Opening Keynote
Subtitle
The Power of the Community
Title of Series
Number of Parts
66
Author
Contributors
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
VideoconferencingAssociative propertyPower (physics)NumberTotal S.A.InternetworkingTelecommunicationMusical ensembleObject-oriented programmingComputer programmingMultiplication signNeuroinformatikProgrammer (hardware)Flow separationImplementationCompilerUniverse (mathematics)NumberInternetworkingCategory of beingFormal languagePolar coordinate systemCompilation albumForm (programming)Student's t-testFunctional (mathematics)Programming languageLimit (category theory)Operating systemStructured programmingData structureEmailLocal ringLibrary (computing)Computer scienceRow (database)User-defined functionNatural languageJSONXMLComputer animation
NumberTotal S.A.SatelliteRobotServer (computing)Game theoryOperations support systemState of matterLocal GroupImage registrationWeb 2.0Open sourceVotingEmailProgramming languageImage registrationAutomatonSoftwareReal numberNatural numberField (computer science)Computer programmingGroup actionCartesian coordinate systemState of matterTouch typingGame theoryNumberOcean currentInternetworkingSatelliteServer (computing)Web pageRevision controlTraffic reportingTerm (mathematics)Electronic mailing listImplementationSource codeVirtualizationExistenceComputer animation
Data structureSoftware developerPressurePower (physics)Type theoryConcurrency (computer science)Just-in-Time-CompilerSoftware frameworkTelecommunicationFormal languageTraffic reportingEmailProgramming languageElectronic mailing listPower (physics)Type theoryJust-in-Time-CompilerConcurrency (computer science)Computer programmingData structureMessage passingSoftware developerMereologyOpen sourceRepresentation (politics)Software bugTouch typingPoint cloudData conversionForceSimilarity (geometry)Form (programming)Decision theoryPattern recognitionTelecommunicationProgrammer (hardware)Enumerated typeElectric generatorProjective planeFormal languageSoftware frameworkMultiplication signDifferent (Kate Ryan album)Internetworking2 (number)CompilerComputer animation
Formal languageSimultaneous localization and mappingPlateau's problemAxiom of choiceTwitterForm (programming)Error messagePoint (geometry)TelecommunicationRankingTwitterProduct (business)Greatest elementPoint (geometry)Multiplication signSoftware developerBoom (sailing)Formal languageError messageLevel (video gaming)WebsiteGraph (mathematics)Object-oriented programmingCycle (graph theory)Form (programming)Programming languageSoftware frameworkAxiom of choiceCore dumpSoftwareVirtual machineFluid staticsProcess (computing)Scripting languageOpen sourceComputer programmingExpected valueObject (grammar)Computer animation
Formal languageData typeSurvival analysisRule of inferenceWater vaporDrop (liquid)Mathematical analysisCodeConcurrency (computer science)Memory managementPattern matchingForm (programming)Software testingProcess (computing)Concurrency (computer science)Formal languageSelf-organizationProduct (business)Programming languagePay televisionProjective planeProcess (computing)Multiplication signGoodness of fitTestbedBitMemory managementCompilerImplementationPattern languageDrop (liquid)Shared memoryCodeMereologyMathematical analysisType theorySurvival analysisForm (programming)Library (computing)Kernel (computing)Just-in-Time-CompilerPositional notationPattern matchingComputer animation
Coma BerenicesSimultaneous localization and mappingXMLComputer animation
Transcript: English(auto-generated)
I feel pretty nervous. I don't know why. Probably because this is a very great venue. Well,
this is the city I watched over and over in the Hollywood movies. Well, when I speak in English, I feel like I'm 30% less intelligent. But, okay, you have to stand because you don't
speak Japanese, right? Well, in the year 1993, I started developing Ruby. I was 27. And I made
it just for fun. I have no ambition to take over the world or anything. Or I didn't try to make any money out of it. I just created programming language for fun. Just because soon after I
started programming when I was 15, I was interested in programming languages because back then, you know, our programming language is called basic, which is pretty much basic.
And, you know, these days basic really evolved. But in early 80s, the basic programming language
was pretty, you know, limited. And then I didn't know any other programming language. So, I didn't know the reason, but I felt so frustrated because of the limitation of the language. And then I find a book explaining the programming language named Pascal, which is,
also the ancient programming language. And I didn't have a computer to execute the Pascal compiler because back then, those PCs came with the basic interpreter so that we have to buy
operating system and compiler to execute the Pascal compiler or C compiler. And the C compiler, oh, these compilers costed, I don't know, $2,000 or something. So, it is too expensive
for high school students. So, I just read through the book. And I learned many things, like the structured programming and the user-defined data structure. In Pascal,
it's called record and user-defined function. Those ideas are pretty much enlightened for me. And then back then, I was pretty much interested in programming,
computers, and programming languages, and that's along with kind of psychology. So, I'm interested in how human mind can be expressed. So, the programming language is
the form of expressing our ideas, right? So, I think that's the reason I got interested in programming languages. So, I read research about the local bookstore or libraries. And I
graduated from high school and went to the university, majored in computer science. And gosh, the university library has tons of books and papers about programming languages. So, I studied about programming languages. And I found out these programming languages are
designed by intention, so that we didn't know who invented English. And then no Japanese, no Chinese, or any other natural language. But every programming language has its inventor
or designer. And these languages are designed by intention. So that, for example, the Pascal was designed to be an educational programming language. And the C programming language is a language to replace assembly to implement operating system, Unix. So,
those programming languages are designed by clear intention by human beings. So, it was my teenage dream. It was my teenage dream. So, these programming languages are designed
by people. So, why not me? Yeah. It was kind of my teenage dream. But, you know, remember,
it was 80s. We didn't have internet. So, there's no way to, you know, Google about the implementation of the compiler or anything. So, I took the book from my local bookstore.
I lived next to the bookstore. So, I went to the bookstore. And then they took the book titled The Compiler, and I read. But it was the textbook for, you know, the university class. And it was too difficult for high school students. So, I screwed up.
So, I entered the university majoring in computer science. I learned a lot about computer science and graduated from the school. Then I worked as a professional programmer for several years. And then finally, I thought I got talent, got enough skill to implement
my own programming language. And it was 93. But then total number of my programming language
was one because, you know, I didn't publish. But I developed by along that programming language
for more than two years. And then I felt, okay, this used to be toy programming language, got to be realistic and usable. And then, okay, it's about the time to put it on the
internet. So, I put it on the internet. So, then soon after that, I formed the mailing list. Do you know what it is? We used to be using mails to communicate among the
community because we didn't have the, yeah, World Wide Web. Yeah. Actually, the World Wide Web was invented in 1990. So, there was an internet, but it is not for the,
you know, the general public. So, I didn't use the internet. So, I formed the mailing list. And then soon after I formed the mailing list, 200 people joined that mailing list.
So, you know, the community was formed by number of 200. And then by this community, many people tried to ask me, report bugs, and gave me suggestions and anything. The
open source community movement had started. Actually, we didn't call it, we called it open source because it's 95. The term open source was invented in 97, 98, I mean, 98.
So, it was older than that. So, we called them free software. Right? Then, year 2000. Remember the Y2K things? So, December 31st, 1999, I got an email from the publisher,
the Allison Wesley, and they wanted to publish a book about my programming language, Ruby. And okay, I said okay because I wrote a book in Japanese, but it's quite difficult for
me to write them or translate it into English. So, that if someone, talented someone, wrote book for me, for my programming language, it is more than welcome. So, I agreed on
that day, on December 31st, 1999. And then, for that fortune, so we didn't have any big accident in that day. So, in year 2000, the book named the Peacock's Book was
published. So, the team of two called the Programmatic Programmers, they wrote the book very extensively. So, it took them eight months to write the whole book of, I don't remember, 400 pages, and it's big books. And the front page is like this, and
we have pickaxe on the front page, so we call it the Peacock's Book. So, the first book was published, and they sold 20,000 copies of the first version of the Peacock's
Book, 20,000. It's quite a number, not that big. Consider that, back then, Ruby is virtually no one knows Ruby, back then. So, 20,000 copies is quite a number. And then, I estimated
that the Ruby users back then is 10,000 or something. You know, not everyone both used the Ruby, I guess. I guess. The year 2001, next year, we have the first RubyConf, this conference, the first one, was held in Tampa, Florida. A few days before the
OOPSLA conference of the ACM. The attendees, okay, we have so many RubyConf attendees here, probably 800. We had, in first Ruby conference, we had 34 attendees. Okay, this
year, we had a RubyKaigi conference in Sendai, in Japan, and we had a thousand attendees
there. And then, this conference, we're confident here, registered attendance is 800. And then, some people estimated the current number of Ruby users is over one million.
Actually, Ruby is open source. There's no way to count the actual number of users, but from the traffic of internet and the sales of the books or something, and some people estimated the number. Okay, one to one million, that's the number. Ruby became
popular. Ruby is used everywhere. Numerous applications are written in Ruby, from strong to big, especially in web field. Small startups use Ruby. Big companies like Twitter, Netflix, Airbnb, use Ruby. And the DevOps use Ruby, like through the
Chef and Puppet, or other things. And then, embedded programming people started adopting Ruby by the autonomy implementation named mRuby. Ruby is used in robots, payment devices,
and microsatellites, and et cetera. And then, some web servers embed Ruby, like also embedded in games, like for example, Neo Automata, or some other games. And
then, you use Ruby, right? For some reason. We call those people community. It's said
to be a group of people, like the city of Los Angeles, or state of California, or United States of America. They're real communities, but the OSD community is not really like
that. They're not a mere group of people. Nature of the source community is less known, so that I use Ruby, you use Ruby, some individuals use Ruby. And unlike real communities, we have no registration of the Ruby community. So you have any initiation to enter into
the Ruby community? No. We have no vote. We have no mayor. So that open source community is kind of virtual existence. We can't touch it. And so open source community, you are
the community, and at the same time, you are not really the community, because, you know, the open source community is not excluded. Anyone use JavaScript here? Everyone
use JavaScript here. So you are part of the JavaScript community, right? It's okay. It's not exclusive. We don't have membership. We are not exclusive. So the open source community is kind of a vague structure of developers and others. So I feel it's kind
of like a typhoon. You know, when typhoon came, we see rains, we see wind, and we
see low pressure. These are observable. And then we can understand the movement of the atmosphere molecules. But we don't touch typhoon. Okay, the TV says, okay, typhoon
is coming. So beware of typhoon. Beware wind or something like that. The typhoon itself is kind of a vague structure of wind and rains and the clouds and something like that. And then we cannot touch nor move nor even delete the typhoon. But these
vague structure at the same time comes with very huge power. Okay, the Ruby community is kind of like that. We see you, you, you, so that you are part of the Ruby community,
but you cannot be representative of the Ruby community. You are part of the Ruby community. I often considered as a leader of the Ruby community, but actually I'm not. I'm just
a part of Ruby community. But Ruby is heavily rely on the community. So we got many bug reports from community. I remember, I told you about the forming
of the mailing list back in 95. And then the first mail in the mailing list was from my friend. Okay, congratulations about forming of the mailing list. Good friend. The second mail is, by the way, I cannot compile your Ruby program on my compiler.
The third mail was from me. Okay, I fixed it, thank you. And the fourth mail was, okay, I find another bug. Then I fixed it, report, fix it, that keep going. Okay, we got tons
of bug reports in the history of Ruby. So that actually I don't consider myself as a, say, genius programmer, but you know, I think I'm very good at designing language,
but I don't consider myself as a great programmer. So I created so many bugs. And then in the past, we got so many feature requests and the proposal in the history.
So the first Unicode support was introduced by the proposal from the community. The feature, like an enumerator or other things, as a contribution from the community, generation garbage collector, keyword arguments, and the discussion about the future types,
and the JIT compiler, and the concurrency support, these are from the community. It's not from me. So I got proposals, I considered a lot, and I investigated them a lot, and I made final decision. But still, I was not the one who invented or who came up with those ideas.
And I'm not really good at document writers, so the community, many people contributed about making Ruby documents and tutorials better. And they formed the meetups, they wrote books,
they organized the conferences, they implemented the frameworks and the gems. So we owe much to the community. So what drives the open source community?
The biggest one, I think, is the intellectual curiosity. So that we like, say, puzzles, and then like Sudoku or something like that. So the designing or fixing or improving the language
is kind of similar things. So open source activities often are driven by intellectual curiosity. Or maybe some want recognition about contribution to the community.
Or maybe some people like communications. You know, the communication between the similar personality is kind of fun, amusing. Like Ruby friend things, so the make friend
is pretty much fun. Have a conversation with a stranger with similar interest is quite amusing, quite interesting. And then some people work for money. Yeah, that's important. And then some people work for responsibility. So the open source community does not have
uniform mindset. We are all different. But that's okay. As I said, communities like Typhoon, so that this molecule and this molecule has different movement, but still forms a typhoon and a very big power. The community is kind of like that. So Ruby used to be a one person project, and 200 mailing list members, and 20,000 copies of
the first English book, and a conference all over the world. So the community has grown. Ruby increased its power. And I believe Ruby has the best open source community.
Right? Because of being friendly and being nice. I am proud of this community. The Ruby language is just a thought. I created the language, and I put it on the internet.
The community was formed so that Ruby, the community, is the value. So that how can we value? Providing benefit, productivity, and the comfortable community, the scalability, and the intellectual challenge. So that we need to feed community.
Otherwise, community members will go away. So that if you're bored about the Ruby language, so you can go anywhere, like Rust, Go, Python, whatever. So there are tons of other attractive programming languages out there. So that you are free to go out.
But we, core members, we need to feed the community. OS community is like a shark. This problem I used for years, but this year someone pointed out that not every shark
needs to swim all the time. Anyway, some kind of shark. We have to keep swimming. So that open source software cannot stop, or it will eventually fade away. One anxiety. I have one anxiety, which is I am sick of hostile claims, like
Ruby is dead things. Because Ruby gems have less GitHub stars on GitHub, because Ruby doesn't have static typing, because Ruby is no longer a shiny language, does this mean Ruby is fading? Despite of our effort to make Ruby better? I disagree, of course.
There's something named hype cycle. The new technology comes and goes, but its popularity forms this kind of graph. Like started, then the popularity goes up, but goes too high.
Too much expectation, or maybe illusion. Then many people notice it's over-exaggerated. So many people disappointed about the new technology. So the popularity falls down
to the trough of disillusionness. Then people realize, okay, the past boom was illusion,
but this technology surely has some value. Then we recognize the technology, and then the technology goes to the plateau of productivity. Probably we are in the trough of disillusionment. A few years ago,
the Rails best stage was the year 2009 to 2020 or something. We are at the peak. We were in the 8th or 7th in the TOG index, programming language popularity index,
and then everyone used Ruby. Ruby was pretty hot back then. Some people noticed there are some programming languages sometimes that run faster or even
handles more traffic in the very heavy traffic websites. So we are in the trough of disillusionment or in the plateau of productivity. If we are at the bottom of the trough, we can only go up.
So best time to invest. If we're in the plateau of productivity, past the trough, the productivity has the best benefit. So this means we are in a golden age.
In any way, we are not failing. So the people love bizarre things, and people love new and shiny things. New language comes every year. New frameworks comes everywhere. It's fun. Being fun is pretty much important, I agree. Ruby is a fun programming
language. But we are grownups. No new language every year. No new frameworks every year. No longer. That's enough. We must not be fragile in our choice. We must not be fragile.
Twitter has moved away from Ruby. So people say Ruby is dead because of that. Ruby declined popularity ranking. Ruby is not recommended. So what?
Oops. Ruby helped the trials and errors. And then, okay, Ruby helped to form Twitter. When Twitter started in 2007, I guess,
so Twitter was the microblog, we said, of the 140 characters. That's nothing. That sounds like a stupid idea. The blog, every entry is limited to 140 characters. Sounds silly, right?
So many venture capitalists refuse to invest in Twitter because of that kind of silliness. But the people in Twitter tried and errored to form the current tweeters, like adding
hashtags, their mentions, retreat, many things. So Twitter became some kind of infrastructure, our messaging infrastructure. So Ruby helped their trials and errors.
And then the Twitter succeeded. Then they formed, I don't know, hundreds of millions of users, or maybe billions of users or something, so that Ruby is now really outperformed this kind of traffic. Remember, these days Twitter used Ruby 1.8. So it's quite tough. So that kind of
trials and error itself is the value. So remember Twitter used 1.8, so we implemented the new virtual machine after that, so the break-even point has even moved far away.
So now Ruby is much faster, and now Ruby is more scalable, and now Ruby is feature-rich. So what do we need more? Maybe we need developers, business success stories, sponsors, conferences, development grants, the job board, the communication community,
and yeah, and we have those things, and we need more. The Ruby's policy, one of Ruby's is never give up. So back in the 90s, when Ruby was baby,
many people claimed to me, but we don't need no new scripting language. And I said no. And a person sent me an email, the object-oriented programming is not really
required for scripting. So Ruby is scripting language, so the object-oriented programming is just too much. And I said no. And then some people claim the smaller programming language,
the simpler, the smaller in spec or syntax is better. And then relatively, Ruby is more complex. Ruby is natural, but not simple, so I said no. So some people claim that Ruby is slow, and it was slow back in, say, 1.8. But we've improved
them a lot, so I said no. Some people said we should type a notation to the language, like a Python 3 did and a PHP 7 did. So then I said no. So they never give up.
We had other programming languages back in the 90s. We had tons of programming language developed by individuals. These days, new programming language developed by
the organization or company, like Go from Google or Swift from Apple and other programming languages from the companies and individuals. But the 90s, most of the programming languages are from individuals. And then we had many, many programming languages out there in the 90s,
but very few survived. Then everyone else went away. They gave up. So the best way for survival is the policy to the community and not giving up and keep moving.
So we've done great things as a community so that we use Ruby, we earn money, we hire developers and participate to the community, like conferencing, be nice,
and be happy, and contribute to our effort, and form positive feedback loops, improve the productivity, lower learning curves, and we provided the great tools and libraries, like Ruby on Rails and Ruby gems, for example. And we had a great Ruby community.
But what can we do more to survive, to keep being great? So I propose we are lengthen our stride, one step further, out of comfort zone, attend one more conference,
make a new friend, try new things. So that, okay, look into your next person,
and look into eyes, shake hands, oh, how great you are.
So, hey, then during the conference and after you came back home, admire others,
share your idea, share your feeling to blogs, Twitter, Facebook, or Medium, or whatever, so that these kind of things will be a drop out of order, but it will form the ocean. You do your part, we do our part. We will try our best to survive.
So we will improve the language, for example, we are working on Ruby 3, everything for productivity, we will improve the performance, we will improve the concurrency, we will improve the code analysis and tools. So if you do your part, one step further, it will change the world to the better place
for the future. Not the end. So our future, our future is uncertain, but we are trying to make Ruby 2.6 in this year, Christmas. It comes with the endless ranges, the kernel then,
another O2H, JIT compiler, experimental, the plug call, faster plug call, and the faster heap implementation. So I found a good summary of Ruby 2.6 here, so the guy
Malia is here or not, but thanks to him. So that, okay, tiny URL, Ruby 2.6. And then we are going to have the Ruby 3 on Ruby 2020, hopefully.
And then we are working, in addition, we are working on the pattern matching and same keyword arguments, a better tooling, and a better concurrency in Ruby 3. This is the future to 2020. So even, I'm going to tell a little bit about even further future.
Guido van Rossum, which invented Python, was retired this year. I was kind of shocked. You know, he was nine years older than me, and he invented Python years before Ruby.
But then I would turn 60 in 2025. So time to think about retirement. So after my retirement, Ruby is designed by committee, and I said definitely no. So from language design,
I'm not sure it's possible. But I'm vaguely thinking about the Ruby 4 project in 2025. So I have no concrete idea yet, but it is kind of the practice for the future,
so that, you know, the world without me. So it should be the test bed for the new design process. The future is uncertain, but after releasing Ruby 2.3, we will experiment something
for the future, named Ruby 4. The future is uncertain. We have to be prepared. We will keep moving forward, at least. We will lengthen our stride. We have to lengthen stride to make something good. So we will create value as a community,
so that when I say we, that includes you. Thank you.