Skip to content

Instantly share code, notes, and snippets.

@searls
Last active May 11, 2023 08:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save searls/e421238d1c70a2ecf7779b21b1b6f9e1 to your computer and use it in GitHub Desktop.
Save searls/e421238d1c70a2ecf7779b21b1b6f9e1 to your computer and use it in GitHub Desktop.
Ruby Kaigi 2023 - Matz Keynote Transcription. Includes Matsuda-san intro and sponsor presentations. Transcribed and Translated by OpenAI Whisper https://replicate.com/openai/whisper )
Welcome to Matsumoto. I mean, physically or virtually. We're so happy to have you here. I think I'm seeing a thousand people in front of me here in this venue. I think it's been a while. It's been a while. It's been like four years since we had this number of people in the Kaigi venue. Four years. I'd like to say thank you for gathering again, coming back to RubyKaigi. I feel like the Kaigi is back. Because of you. Because of you, in the venue. Because you are back. But actually, since there have been four years of blank period of Kaigi, I said you're back, but actually we should be having newcomers to the Kaigi. So, please let me know. Please tell me, who are the first-timers of RubyKaigi? I mean, raise your hand if you are coming to RubyKaigi for the first time. Thank you. Thank you for coming. We really welcome your attendance. So, one thing I'd like to tell you, I have to tell you is... Um... Not that. The COC thing, the Code of Conduct, the core of the conduct is be nice to each other. So, let us be nice to each other during the conference. At least during the conference. Let us be as nice as possible to each other. I think we can do that, because we are in a nice city called Matsumoto. So, let us be nice as man. Right? So, I think it's time to start the opening keynote. The speaker of the keynote is, of course, the creator of Ruby language, Mr. Matsumoto. Everybody, please welcome Mr. Matsumoto. Thank you. Thank you, everyone, for coming to the nice venue of the city of Matsumoto. Not my city, so... Before I start the keynote speech, I have a message from the sponsors. First of all, I would like to extend my thanks to the sponsors for making this conference possible.
Good morning. I'm Ohira from Lina. I have the time to introduce myself today. I'm Ohira, the representative of Lina, a cloud service company. Thank you for coming. I work in a business side of the company, but I was an engineer 10 years ago. I was a freelancer, and I was doing mass production everyday. I think my company has been doing well thanks to the whole company. I had a really good time with Ruby. I wanted to stay for a long time, and I enjoyed make-do jejouve far away quite a bit. I clicked on the same location in order to deliverásturn pliers into my garage, and then disassembled. Actually I didn't move anywhere at all. So, there for the day, I have come to give an opening words speech about Ruby. Ruby is a company that has been around for a long time. We have a team of about 150 people, and we have grown a lot in terms of our trading. I think this is all thanks to Ruby, which has been able to develop a good service in a short period of time. Thank you very much. And now, I would like to say something. Our users are the cars that everyone is riding, and the hotels in the resort, and the biggest companies in Japan are using the large-scale operating system. Among them, as many of you may know, the large-scale operating system is, as you know, a system that is used for a reason. The legacy system, including the operation and development, is still in the mainstream. And we are receiving a lot of support from large companies. We are receiving a lot of support from large companies. What I want to say is that, today, Ruby sponsors, not just us, but many other great companies, but I think there are many other IT companies that are not just startups. But, I would like to say one thing, to the large companies that support Japan, I would like to say that I am very grateful to you. I would like to say that I am very grateful to you. I would like to say that I am very grateful to you. Thank you very much. And finally, I would like to ask the leader to give a word of advice. We launched our second business last week, and we released a system link with Amazon. We have two large businesses, but we only have 15 engineers. We are not a small company. But, 80% of our members are referral-only, but 80% of our members are referral-only, and most of them started with friends in a community like this. And I think this will not change. So, I would like to ask the leader about his thought for today. I really appreciate your support. You have been participating in our Library of Congress this year, today, we had a lightning talk, and we are planning a drink up tomorrow. And when I think about it, people have quite a few гb of Japanese liquor in their hands. Please don't forget to leave a good name for alcohol! I hope you enjoy the Library of Congress. Thank you for your attention. Hello. I'm a lawyer from the company called Iwai-Yu. I'm sorry, I can't read Japanese. I hope you can understand what I'm saying. I hope you can understand that we are friends. I'm Itaya, the CEO. The other day, I read the article about the news about the EW code. I'm the author of that article. I've heard that Ruby has been around for 30 years. Now, it is respected as a common language for software development and for business. We, Montesquieu, are a legal tech team that wants to evolve the contract language which is a common language for business. Contract language is a high-end language. I understand that. We, humans, have been programming the contract language for 3,000 years whenever we make a deal. However, the contract language which is 100 times longer than Ruby has never been used. It's not in the ID, not in the GIP, and not in the GEM. Every time we make a deal, we develop the contract language on the premise. We live in such a society. We, Montesquieu, want to make the contract language easier to use. I'm writing a book about human beings in the forest class. We, low-farm companies, have 40 terabytes of contract data. By learning this, we want to develop a first product with natural language processing technology in Ruby. We are making a contract language for GIPAD and Copilot X. It's compatible with the first language model, and it automatically generates the first product for the world. It's a part of the Cobit project. It's a part of the contract. We want to contribute to the Ruby community. We don't have a sponsor book, but we will hold a drink-up from 12pm tomorrow. Please come and see us. Thank you. Thank you for your sponsor. Speaking of the proposal, when we first made Ruby, we didn't have a free software yet. When we were trying to release it as a free software, we thought it would be licensed. We started writing licensed versions ourselves. There are many free versions in the world, but we started writing them ourselves. It was fun to write them. I remember thinking that this is programming. I think it's a good idea to extend the idea. In the end, we concluded that the first version was not good. Today's topic is RubyKaigi 2023. I will start the keynote. As I mentioned earlier, it's been 30 years since Ruby was developed. I feel like I'm getting older. During that time, I learned a lot of things. I divided the 30 years into several periods and introduced what I learned. I will also talk about the old self-taught stories. It all started on this day. On February 24, 1993, the name of Ruby was decided. At that time, Ruby code was not written at all. When did the programming language that Ruby was created and started exist? If you look up the Wikipedia, the date of its release is written. In Ruby's case, the birthday is the day the name was decided. I've talked about this several times. Software is a virtual existence and I strongly believe that the day Ruby was decided was the day the concept of Ruby was born. That's why I call this day my birthday. On February 24, 1993, other than Ruby, there are other things like Coral, Sang, and Kish. I'm not sure if this is an object-based thing, but I heard that they named it as a language that can do object-based programming. I don't remember it myself. For example, if you name it Coral instead of Ruby, it would be Coral Conference instead of Ruby Conference. Well, Coral is still fine, but it's called Kish Conference. It's like a company name. It's a bit like a company name. The first lesson I learned from February 24, 1993 is to choose a good name. That's what I learned. If you want to make your own products or start a business, you need to choose a good name. I think it's hard for the startup people to choose a name. But you can decide whether the service or software will be successful or not by choosing a name. The next era is February, 1993. It's after the name was decided. I think it's a time when people don't know much about Ruby. I didn't tell anyone that I was making Ruby. To be exact, only a few people knew about it. At this point, I was developing Ruby by myself. There are not many source codes left. The oldest source code I have is version 0.49. Ruby at this time is surprisingly similar to modern Ruby. It's been 30 years. At this point, the basic part of Ruby was already completed. 30 years ago, Ruby could be developed just by a few people who made the test. We are glad now that the development of Ruby is progressing. In 7 years, I've added 10 more languages, and the organization is developing Ruby. The period of development of Ruby is from December 1994 to December 1995. It's about a year. You may know that Ruby was released on the Internet in December 1995. It was before the release. At that time, there was a conference called Net News. There were 20 people who were interested in making software. I asked them if they wanted to publish a software. I decided to develop the basic part by myself. I asked the opinions of people other than me. People have different opinions. I learned what I didn't realize by doing that. For example, Ruby has a function called block. By writing a code that is written in the end and passing it to the next person, you can pass the code to the next person. It's a unique function of Ruby. At the time of alpha release, block could only be written in brace. However, in the opinion of someone, I forgot the name, I think it was Keiji, he said that he didn't like the combination of brace and end when he was writing the nest. In modern JavaScript, it's hard to mix brackets and brace. He said the same thing. I thought it was right. I introduced the full block. I learned that I can't realize what I don't realize by listening to other people's opinions. In December 1995, I was a general public. Until August 1997, I was a public. I started to talk to people through public release. I'm still working on it. At the same time, I made a mailing list. It was 28 years ago. Slack and Twitter were not there. The main communication was mail. I made a mailing list. I got a mail from a friend who has been supporting Ruby for a long time. The second one was from the same friend. He said he could compile it on his computer. The report was beautiful. The third one was from another person. The fourth one was from another person. But my computer was chosen by him. To be honest, the quality was low when I released 0.95. But it was a plus. By having communication, I think Ruby community was created. For example, if you buy a car from Toyota and you don't like something, you don't complain. You don't like it. But Ruby is a very sensitive person. There are many gaps. You can complain. Then, you can say I don't like it. But you can be involved in development. That's the main scene. Now, some people are involved in Ruby from a very early age. But some people are active in the community. Considering that, I was a very busy person. With all this time, I didn't contact with anyone in the community. When discussing about community or communication, I think it's important. So like this year my the theMATCH is set up. It was for August 1997. This is the 1.0 version of Ruby. When you look at Ruby 1.0 software, it doesn't have much meaning. But when you say 0.x, you may think that this software is fine. But when you write 1.0, you may think that it's a stable and useful software. That's the general version number. After that, 1.0, 2.0, 3.0 came. But it's not like something happened and it became 3.0. I think it's more like a will to make it a new version. I remember I put a version number. In this era, Ruby is spreading and many people know that Ruby exists. On the other hand, Ruby at this time is still a bit old and there is no killer application. So, it's been a while since Ruby was released. When you get involved in software, most people want to get benefits. In other words, most people use this software because they have benefits. There are people who want benefits and people who say, it's not like that, it's fun, but 99% of people use software because they have benefits. Most people use software and use tools. 99% of people want benefits and bring in a word like a chicken like Ruby at that time. People use useful tools and use them to make people happy. People want useful tools. The problem is that the tools that are just born are not enough and libraries are not enough. So, it's hard to provide benefits. There are resources to provide benefits, but most users are not interested in that. So, it's hard to provide resources. So, it's hard to provide resources. There are no resources to provide benefits, and there are no benefits to provide resources. There are problems like chicken and egg. It's a very difficult time. People who have high antennas on the Internet know that there is a programming language called Ruby, but there is no reason to use it because there is a power. People who have high antennas on the Internet know that there is a programming language called Ruby, but there is no reason to use it because there is a power. People who don't use it say, I know Ruby, but I don't use it. I don't use it? You don't have to tell me. But 1% of people are making it for fun. So, we wanted to have people with a strong opinion who could make a Ruby because they liked it. who could make a Ruby because they liked it. who could make a Ruby because they liked it. We talked about how it is not easy to provide benefits, but people enjoy it, and we talked about the joy of creating software. and we talked about the joy of creating software. It's the same with Ruby. I talked about the joy of creating software. The motivation for freedom is the background of Ruby. I will talk about a point from October 1999 to October 2004. I will talk about a point from October 1999 to October 2004. This is the time when books were published and conferences were held. The first time a book was published was November 1999. It was supposed to be published in 1997, but it was hard to write a new book. It was hard for me. I didn't have a clear deadline. I was trying to extend it, but I couldn't. The manuscript of the magazine had to be published by that date or it would be lost. I had to keep it. I couldn't publish it. I had to keep it. I couldn't write it down. I extended the deadline. I continued to write. I was busy changing jobs. I couldn't write a new book. I was 2 years late. I'm sorry to the publishers, but I'm famous. I often get a project to write a book. I say I want to write a book like this. I have published many books. I couldn't write 80% of them. I couldn't write 80% of them. I couldn't write 80% of them. I couldn't write 80% of them. I published this book. Objects for Scripting. It was a technical book. It was published in 16,000. It was a little popular. It was a hit. Next, I published a book called Programming Ruby. It was published in October 2000. I have a memory about this book. December 1999 was the year of Y2K. It was the year of 2000. I was talking about what might happen on the Internet. I received an email on December 31, 1999. I was asked to write a book in English based on the Ruby language. I said yes. I didn't know at the time, but Dave Thomas and Andy Hunt sent me a lot of emails explaining what Ruby was. They said it was different from what was written in the document. They asked me why I had so many functions in my background. I'm still like that, but I'm not good at English. I wrote an English reply while I was excited. Then, in August, I was told I had written it. I was in a hurry. I wrote a manuscript for 8 months. The book was called Programming Ruby in the beginning. It was getting more and more popular. I wrote it in 8 months. It was published in October. I wrote it with a great momentum. Thanks to this book, many people outside Japan started to use Ruby. If it wasn't for this book, there wouldn't be Ruby today. In September 2001, JAO, Java and Object Oriented Programming was held in Denmark. I was happy to be invited to give a detailed talk about programming in Denmark. I met Dave Thomas, who wrote Programming Ruby, and Martin Fowler, who was a famous person in the industry. We were like, wow, and I was at the conference. I was like, wow, and I was at the conference. I finished my talk and went back to the hotel. The tower was on fire. I was like, wow, and I went back to Japan. The speakers from the US couldn't go back because the border was locked down. I asked the people in the US to wait for me. I went to the conference. I had to wait for a week. It was a hell. After this conference, JAO was in Japan. In 2001, David Feynman-Johansen, a Ruby developer, was a student at the time. He was helping out at the conference. He was talking with me and Dave Thomas. He was a programmer at the time. He was just introducing Ruby. He was just introducing Ruby. I didn't expect him to make Rails. I didn't expect him to make Rails. That's what happened. A month later, the first Ruby conference was held. It was in October 2001. It was in Florida. Some of you may remember. It was a short-term event. It was in Florida in October 2001. I was asked if I wanted to go to Florida. I was asked if I wanted to go to Florida. I said yes. I went to the first Ruby conference. There were 37 attendees. There were 37 attendees. That's about it. It started from there. The community spread all over the world. It started from there. It started from there. It was an international conference in Japan. It was in Japan. 1300 people registered. 1300 people participated. There were Ruby conferences overseas. There were Ruby conferences overseas. It was a large-scale conference. At the beginning, at the beginning, people who could read and write. Or people who invited me to the Ruby conference. Or people who were interested in Ruby and invited me to have their technical conference. or invited me to have their technical conference. The connection between people The connection between people The connection between people is very important. Especially, the programmatic programmers are very lucky. are very lucky. They wrote Ruby. They wrote Ruby. Dave Thomas is supporting AXR. Dave Thomas is supporting AXR. I'm not against it. Next slide. Next slide. From October 2004 to January 2009. From October 2004 to January 2009. The biggest event in that time was Ruby on Rails. Ruby on Rails was released in October 2004. Ruby on Rails was released in October 2004. Ruby on Rails was released in October 2004. It was a web application. It was a web application. Finally, we could provide benefits to benefit seekers. to benefit seekers. Ruby Association was created in that time. I am the president of Ruby Association. The program was developed for the benefit seekers, business people, whose intention was for having fun. But, people tend to be more and more aggressive. So, we established the program as an institution to communicate that weakness to developers. We can say that Joy Seekers has proved that it can create a benefit seeker and a business people. In addition, I am a programmer, and I have always thought that if we create good things, they will spread. I learned that it is not always the case. DHH is a very good marketing team. They are very talkative, so I am not afraid of getting burned. At that time, people who used Ruby on Rails were impressed. They said that using Ruby on Rails has a good productivity. It is a long-term solution. It is an extension of the standard. It is not a requirement. It is easier to do it in Java. DHH is a person who uses gasoline to fuel his car. It was very popular. The truth of the main team, I think that DHH is a good team. It is a team that has developed a web application that can be used for business. It is a team that has developed a web application that can be used for business. It is a team that uses Elastic Sky and Ruby. Thank you very much. In addition, we also have a delivery from Apapso. So, he thought that he could make something that could be moved in 15 minutes, and if it was not good, he could throw it away and make it again in 15 minutes. This video was very persuasive for that idea. I think that his ability of presentation, such as marketing and public relations, was the first influence of the current Solvayon Racing. To be honest, I thought that it was just marketing, but I learned that it is important to promote the product. I have always been a Ruby fan, and I have always been a fan of presentation. Also, as I mentioned earlier, there is a gap between the enterprise and tech people. I learned that I need to persuade people who wear suits to make their suits better. In this conference, there are no people wearing suits. For example, in the Ruby World Conference held in Shima, I thought that the suits were different in color, but I thought it was very important to create a gap between diversity. The next era is January 2009 to February 2013. In January 2009, Ruby 1.9 was released. To be exact, 1.9... Yes, 1.9.0. 1.9.0 was released in 2009. 1.9.1. 1.9.1. 1.9.0 was released in 2007. Ruby 1.9 is an enterprise that I made up to Ruby 1.8. The core part was replaced by a new virtual machine called YARV, which was made by Mr. Sasada. I also made a lot of changes. I couldn't do it all. I had to fix many things when I tried to run the applications that were running in Ruby 1.8 and Ruby 1.9. As a result, we released and improved the new versions, such as Ruby 1.9 and 2.0, and continued the process. Some people in the community said, we don't want to rewrite our applications, so we'll keep using Ruby 1.8. As a result, there was a sort of community division. Even if we wanted to improve Ruby, add new features, or improve performance, it didn't reach some people in the community. It lasted for more than five years. We learned from that that compatibility was very important. In Python, there was a similarity between Python 2.x and Python 3.x. The community division lasted for 15 years. We were lucky to live less than half of the community division, which lasted for 5 to 7 years. We learned from that that we can improve the community division by improving the compatibility. We didn't think too much about it, but if we break the compatibility, the community division will happen again. We've been working on many things since then. Even if we break the compatibility, we're improving it with various ideas that people want to follow. I think we've learned a lot from Ruby 1.8 and Ruby 1.9. The performance of Ruby 1.9 was much better. It's not like it's a matter of the programmer's skill, but Sosa-kun is a much better programmer than me. The performance was much better. You have to rewrite your application for Ruby 1.9, but if you rewrite it and migrate it to Ruby 1.9, you can get a lot of points. If the performance is good, you can get a lot of points. We've been using Ruby 1.8 little by little, and we've moved to Ruby 1.9. By improving the performance of Ruby, we've learned that we can solve other problems. For example, I often say that performance is important, but Ruby is slow in general. But I want to emphasize that performance is important. Next. The next era is from 2013 to 2015, oh, 2013, February to 2015, November. Ruby 0 was introduced in February 2013. This year is the 30th anniversary, but at that time it was the 20th anniversary. Ruby was released on the 20th anniversary. It was released on the 20th anniversary and it was released on the 20th anniversary. It was released on the 20th anniversary and it was released on the 20th anniversary. It was released on the 20th anniversary. Personally, at the beginning of Ruby, I wanted to do this and that, but there were some functions that were difficult to implement. Most of them were released on Ruby 2.0. The last pattern matching was 3.0. The last pattern matching was 3.0. Other than that, for example, the refinement and other things were included in Ruby 2.0. In the beginning, it was actually included in the concept, but it was not enough to be implemented because it lacked the ability or the technology. It was added more and more, and it was added by the community. The Ruby language was getting closer to the completeness that I had in my mind at that time. On the other hand, the reason why Rails had a lot of popularity was that it was the most popular. People were saying that Rails was good among people who were excited about it. It was a pity. Also, the fact that Rails appeared in 2004 was a breakthrough. It was a language that could do the same thing even if it wasn't for Rails. It appeared, and it's not 100% the same as Rails, but it appeared in a way that many people thought it was a success. Then, people left it. It was a time when I learned that some people came and some people left. However, it is still popular. It's a bit of a hit. Ruby is dead every year. I learned that I had to keep moving forward. It was a time when I made a decision. Do you remember that? It's been a while since I talked to you about your example. I made an example saying that we were preparing Ruby3.x in advance to Ruby3 Flash. I can understand if you understand. I didn't make it up. When someone was talking normally, I think I was saying 3x3. Someone said, I thought that was good. I used it as a catchphrase. The inspiration came from John F. Kennedy's speech in 1993. We choose to go to the moon in the decade and do other things, not because they are easy, but because they are hard. Because that goal will serve to organize and measure the best of our energies and skills. That's what I mean. So, let's go to the moon. Let's go to the moon in the next 10 years. Well, in the next 60 years. Let's go to the moon. By focusing on that, we can organize and measure our energies and skills. We can do that. That's what I'm saying. I have this in mind. In November 2015, I was thinking about how to organize and measure our energies and skills. I was thinking about that. I said that in November, I said that in November, at the Ruby Conference in America, I was the first one to talk about that. At that time, I didn't think that Ruby 3x3 could be realized. I was quite adventurous. So, I said that I wanted to do that, and that's how I got started. And, Brad Mattel made an M-JIT and introduced it. After that, M-JIT didn't improve the performance of the Rails application. Then, Y-Teams, including Maxim, challenged Y-JIT. And, the Rails application was improved. And, there were people who made it, including Brad, Kokumun, and Maxim. And, I was able to realize it because they tried hard. I think that's how it was realized. And, I realized the importance of leadership and vision. I realized the importance of leadership and vision. I realized the importance of leadership and vision. I want to talk about future. I want to talk about future today. The last period is from February 2020 to now. February 2020, was the time when Ruby 3.0 was released. At that moment, Ruby had been improved, but people said that Ruby 3.0 was the end of the world. Even in that kind of situation, we need to face it. we need to face it. But, if we get a popular programming language ranking, if we get a popular programming language ranking, Ruby will be the best. I hope it will be. Because, if we keep improving Ruby, Ruby will be better. If we keep improving Ruby, Ruby will be better. we will be the best. We should not say that. I'm not saying that. We should not say that. Yeah. Typescript and If you write typescript... good. He's pretty rich, but he's complimenting me. I'm pretty satisfied with my own spirit. So, typescript people are like this. Sometimes people just wanna blame me. What? What I mean is the theory of the earth's plane. There are people who believe that the earth is flat, and there are people who believe that it's not round. There are people who strongly deny what modern science proves. That's what I mean. What I mean is that programming languages are going in the direction of static types because they are scientifically proven by the basic erosion. So, there's no such type definition. There are people who are dynamic types. So, dynamic types are said to have no future. And those who insist on that are flat-earth believers. It's tough. But, I think that's not the only future. I understand that there are different types of results. I'm glad that I can find more errors or coding rings when I'm programming. I'm glad that I can find errors faster and more safely. I understand that. But, I think that adding type definitions to languages is the best way to find errors. I think that's the best way to find errors. But, adding type definitions to languages is not always the best way to find errors. I want to create a different future. I've said this many times. Alan Kay's famous quote is the best way to predict the future is to invent it. I want to create a better future. I can check the type even without type definitions. I can check the type even without type definitions. But, I can't believe that there is a future like that. I can't believe that there is a future like that. Especially for static type believers. They don't believe me. They say I'm a flat-earther. It's tough. I want to create a future like that. I talked about Ruby's past from 30 years ago to today. I want to talk about some things that I didn't talk about in 30 years. One is Ruby's separate implementation. When Ruby was created in 1990, there was a major programming language called Perl. There was a conference. There was no separate implementation for that language. In other words, programming language and implementation were strongly tied to each other. It was natural that there was no separate implementation. That was 30 years ago. During these 30 years, I didn't make a language that was easy to make separate. But, I took on such a challenge. For example, in 2001, JRevue was created. In 2007, IRuby was created. It was abandoned by Microsoft. In 2013, I started with a paper by Chris Seaton. There are many things that are not referenced in the benchmark. But, there are many things that are referenced. For example, I refer to the object state that was introduced in 3.2. I also refer to the MLuby that I know. I started with a project in 2012. It was not exactly the beginning of the project, but it was in 2012. The fact that there is no separate implementation means that the value of Ruby has increased and it has a meaning to do it. For me, there are others who can implement their own language. I am very grateful for that. I think it is a very strong event. The other one is ISO Standard. I forgot to mention the space. ISO Standard was created in 2012. It was an ISO standard. It was very impressive. It was very difficult. The standard standard was very difficult unlike open source. There were meetings, meetings, and meetings. It was very difficult. I worked very hard on it. I thought it was amazing. But, I did not have any good results. I did my best. If you can make a standard project, you can follow the standard project and implement it within the scope of the standard project. There are companies that adopt it. Or, for example, I was hoping that a standard project would be adopted for a certificate exam. I was hoping that a standard project would be adopted for a certificate exam. But, I was told that I would be in the standard project and I was in. It was very difficult. Where is the standard project? And, If I start this, it will not end in 30 minutes. Paul Graham created the base version of Yahoo! Store and started Y-Combinator. He wrote an essay called 100 Years of Language. In that essay, he talked about programming languages that can be used in 100 years. It is difficult to predict 100 years, but he wrote 100 years of language because there is no restriction to predicting the future 100 years later. I am not as good as him and I am not a respawner. I have been surviving for 30 years. I will talk about the remaining languages. Paul Graham's words are simple and easy to read. It is a language with a high scalability. Ruby is actually very simple and you can write Ruby in programs that you cannot read. You can write Trick, but it is easy to read and it is high in scalability. I think he is saying a good thing. He is saying that a language that can survive for 30 years is a good thing. Of course, I am not saying that there is nothing to improve. For example, there are things like performance, concurrency, support tools, and so on. These things have been improved a lot since 3.0. I have also added RGIT compiler and memory layout changes and concurrency changes. I have also added fiber and AC fiber. I have also added Ractan. Of course, there are improvements, but they are still being worked on. There is also a Ruby tool and Ruby profiler. There is also a Solve. There is also a Type profiler. I have added a lot of things. I am working on these things, but I am not sure that it is complete yet. I am sure that it is progressing in the right direction. Especially, for the type, recently, chat GPT is a hot topic. I asked people to try to import the type of the following programs. They said, this M is a integer, Fibonacci function is also input, and return value is also an integer. They imported it correctly. If you have chat GPT, you can do the same thing. Of course, chat GPT is not imported for Ruby, so I don't mean to say that it is OK. We are working on new technologies, and we think that it is possible that people can write types and do things without doing that. I think that the possibility of people doing that is high. I think that people can write types without writing the program without writing the program. I think that it will come someday. I think that it will come someday. I think that it will come someday. To prevent that future, Flat Earth Believer will not put the type declaration. I will push forward to make it harder. We have been working hard, but there are many things that we have to improve. There are many things that we are working on, but we are not perfect. We will work on that. We will make a better world. Ruby users will be happy if you can write types that are not written by others. We will make a better world. I think that Ruby users will be happy if you can write types that are written by others. I think that Ruby users will be happy if you can write types that are not written by others. I think that Ruby users will be happy if you can write types that are not written by others. I think that Ruby users will be happy if you can write types that are not written by others. Thank you. Thank you.
こんにちは、松本です。フィギュアであるとしても、リアルであるとしても。皆さんに来てくれて本当に幸せです。私がここで、この会場で、私の前に何千人もの人を見せてくれています。4年間、この会場で、この数の人々を迎えに来ています。4年間。だから、また、RWBY会議に戻って、皆さんに感謝の言葉を伝えてもらいたいと思います。RWBY会議に戻って、皆さんに感謝の言葉を伝えてもらいたいと思います。皆さんが戻ってくるからです。皆さんが戻ってくるからです。でも、実は、4年間の空き時間の間、会議に戻ってきて、実は、会議に新人が来てくれるべきだったので、会議に戻ってきて、皆さんに教えてもらいたいと思います。RWBY会議に来てくれた人は、初めてですか?RWBY会議に来てくれた人は、手を挙げてください。初めてのRWBY会議に来てくれた人は、手を挙げてください。皆さんの参加を本当に喜んでくれています。皆さんの参加を本当に喜んでくれています。私が言いたいことは、私が言いたいことは、COCのコードコンテンツ、COCのコードコンテンツ、コードのコンテンツのコードは、ココのコンテンツのコードは、私たちに優しいことを言いたい。私たちに優しいことを言いたい。最少、会議の間に。最も優しく話すことをしなさい。最も優しく話すことをしなさい。私たちが日本の好きな都市にいるので、私たちはそれができると思います。優しく話すことをしなさい。優しく話すことをしなさい。では、開発のキーノートを始めましょう。では、開発のキーノートを始めましょう。キーノートのスピーカーは、もちろん、Ruby語の創始者の松本さんです。皆さん、松本さんをお招きください。皆さん、ありがとうございます。松本のセリフの素敵な場所に来てくれてありがとう。私のセリフではありません。おはようございます。リーナのお平です。本日、私の方からご挨拶のお時間をいただきましたので、軽く自己紹介させていただければなと思っています。改めまして、リーナというクラウドサービスを代表しています。お平と申します。本日もよろしくお願いします。我々はクラウドサービスの会社で、私自身は、ビジネスサイドで今働いていますが、10年前はエンジニアでございまして、端くれで日々、わけわからんほど毎日量産するという日々を送っておりました。本日、相談させていただくにあたって、せっかくなので、僕らのユーザーさんからのRubyへの感謝というところでメッセージを送ってきました。我々の会社は、企業が企業から物を買う、いわゆる調達部門とか、購買部門と呼ばれるような部門にインフラを作っていただいています。2019年、昨今、コロナの前に創業してから何とか何とかやってきまして、50人くらいのチームになり、取引額も100億円を超えて非常に成長させていただきました。これも、ひとえに数年という短い時間の中で、スピーディなサービスの開発を実現させていただいているRubyのおかげだなと本当に思っています。本当にありがとうございます。ご清聴ありがとうございました。そしてここからが、私が特に言いたいところでございまして、我々のユーザーさんなんですけれども、皆さんが乗られている車であったり、リゾートのホテルとか、日本で一番大きな会社さんがご利用いただいているような大企業のシステムになっています。この中でご存知の方も多いかもかもですが、大企業のシステムは、ご存知の通り、わけわからんシステムの仕様で、全てエラボに大きいというようなレガシなシステムはまだまだ主流でございます。そういった大企業の方々から非常に感謝している声を日々いただいている状態でございます。これは何が言いたいかというと、本日、Rubyスポンサー、我々に限らず色々素晴らしい会社が出されているかなと思いますけれども、スタートアップも限らずスタートアップであったり、またIT業界が多いのかなと思っています。一つだけ言えることとして、日本を支えるような大企業の方々にもRubyであったり、皆様に本当に心から感謝しているのだということを一番お伝えしたいなと思って代表して心から感謝をお伝えしたいなと思っています。本当にありがとうございます。最後にせっかく相談させていただいているのにいいな、というところでございまして、先週、我々2つ目の事業をローンチにいたしまして、Amazonさんであったりというところとのシステム連携も公開させていただきました。2つ大きな事業を持っているんですけれども、実は我々の会社エンジニアは15名しかいないという状況でございまして、正気の姿ではない状態でございます。ただに、この中で8割がリファラルに入社していただいたメンバーでございまして、こういったコミュニティであったりというところの友達から始まったメンバーが大半でございます。そういうのかなと思っています。ですので、最後にリーナーからのお願いというところではございますが、ぜひ友達になっていただけると嬉しいなと思っています。15名のうち、本日3人がRubyKeyに参加させていただいておりまして、本日ライティングトークであったり、明日ドリンクアップも企画させていただいております。キクに22章日本章、長野などで用意している225あるというところでございまして、それも正気の姿ではないなと思っているんですけれども、ぜひお酒楽しんでいただきたいなと思いますし、お酒飲みすぎて学校さんの名前だけ覚えて忘れることないように、それだけよろしくお願い致します。ぜひ皆さんRubyKey楽しんでください。ご清聴ありがとうございました。【拍手】こんにちは。モンデスキュー株式会社でございます。なんと読みづらい喋りです。これをですね、もう手すきと読めるようになっていただければ、もう皆様、私たちのお仲間だと考えております。私はですね、CEOの板谷と申します。先日、もし弁護士がEWコードを読んだら、このオラインが起こっている記事を読めた方がいるか、当事者でございます。Rubyは誕生して30年というふうに聞いております。今はですね、世界中で使われるソフトウェア開発の共通言語としてリスペクトされていますし、我々もリスペクトしています。そして、私たちモンデスキューがですね、どういうチームかというと、私たちはビジネスの共通言語体系である契約言語をですね、進化したいと思っているリーガルテックのチームでございます。契約というのもですね、実は一つの言語体系、高級言語のようなものだと私は理解しております。私たち人類はですね、3000年もの間何か取引をするたびに、必ずこの契約言語をですね、プログラミングしてきたわけであります。しかしですね、Rubyのおそらく100倍ぐらいですね、長く生きているはずのこの契約言語というものは、生まれてから全く進化していません。IDにもありません。GitHubもありません。当然、GEMもありません。毎回ですね、我々は取引をするたびに契約言語をですね、オンプレミスのフルスタッチ開発をしていると。こういう社会で生きております。私たちモンデスキューは、この契約言語のプログラミングを可能的に楽にするということをしたい会社でございます。毎回こんな感じで本当に、今は逃げがるフルスクラッチで書いているところを我々が提携している日本トップのローファングが40テラバイトの契約データを持っております。これを学習することによって、いわば自然言語処理技術をコアとしたパースプロダクトをRubyで開発しているというのが我々でございます。いわばですね、GitHubとCopilotXの契約言語を作るんだか。こういうことをやっておりまして、ChatGPTとかですね、第一の言語モデルとの相性も非常に良い。世界中のすべての契約が手上げに自動的に生成される、こういう世界を目指すという会社です。個別会話のパーツでございまして、日本の契約にハブになるようになっているように導入されていております。私たちもですね、ぜひ本当にRubyのこのコミュニティに貢献したいと思っております。こちらですね、スポンサーブラスはないんですけれども、明日の12日の夜18時からドリンクアップを主催させていただきますので、ぜひ遊びに来てください。以上、モンテッドでございました。ありがとうございます。会場の拍手会場の拍手はい、スポンサーのお二方ありがとうございました。契約といえばですね、Rubyを最初に作った時にですね、当時まだオートソフト用途がなかったので、フリーソフトケアとして公開しようとした時に、ライティングライブラリを持ってですね、ライティングライブラリとか自分で書き始めたんです。世の中にはGPLとかDLCとかいっぱいあるのに、自分で書き始めたのが、そういうのも間違いじゃないですけれども、いざ書き始めてですね、意外と楽しくてですね、これプログラミングだよなって思ったことをすごくよく覚えているんですけれども、その発想の延長線上にもしかすると、モンテッドがあるんじゃないかなというふうに思いました。結局ね、始まりのライティングライブラリは良くないという結論になったんですけれども。はい、それではですね、本日のRubyKaigi2023年のキーノートを始めようと思います。先ほども紹介ありましたように、Rubyの開発を開始してから今年で30年になります。いや、なんか年取ったなという感じではあるんですけれども、その期間の間にですね、様々なことを教訓として学びましたので、この30年でいくつかの時代に区分して、その時点で学んできたことについて皆さんにご紹介しつつですね、ちょっと恒例の自訳ネタも含めつくお話ししようと思っています。まず、全て始まったのはこの日ですね。1993年の2月24日にRubyの名前が決まりました。この日の時点では別にRubyのコードは一行も書かれていなくて、普通ね、プログラミング言語がいつ誕生したかとか、いつ始まりましたかっていうと、Wikipediaとかで調べると公開された日が書いてあるんですけれども、Rubyの場合は名前が決まった日をもって誕生日という、Rubyの誕生日と呼んでいます。そういうのも何度か話したこともありますが、ソフトウェアっていうのは概念の存在、物理的実態を持たないバーチャルな存在なので、名前によってその存在が決まるというふうに私は堅く信じています。ですからRubyという名前が決まった日をもってRubyという概念が誕生したというふうになっていて、この日を誕生日と呼んでいます。この1993年2月24日にRubyの他にも、例えばCoral、サンゴですね、とかKish、これオブジェクト志向、セルプログラミングができるような言語みたいなことをもって名前つけたらしいんですけど、自分のことなにかあまり覚えてないんですが、ただですね、例えばこの時にRubyじゃなくてCoralという名前をつけたりとかすると、ここはRuby会議じゃなくてCoral会議になっていたわけですね。Coralならまだいいんですけど、Kish会議とか言われるとですね、ちょっとこうなんか政治会社か何かのカンパネやすさともありそうですので、この一番最初にですね、1993年2月24日の出来事から学ぶ教訓というのはですね、良い名前を選ぶということをですね、学ぶことができます。もしですね、皆さんがご自分でプロダクトを作る、あるいは授業を始めるという時にですね、それぞれ実際にスタートアップされた方は名前により苦労されたと思うんですけども、この時に選ぶ名前によってですね、サービスなりソフトウェアなりが成功するかどうかの、ある程度決まるという風なことが見えるんじゃないかなという風な気がします。次の時代はですね、1993年2月、名前決めてからですけども、それから1994年12月までは一つの塊になるんじゃないかなと思っています。これはあまり知られていない時期なんですけども、つまり誰にもRuby作ってますということを教えなかったので、正確に言うと私の同僚と私の友達の僕少数の人だけが知っていたので、この時点ではですね、一人で開発していたんですね。当時のソースコードはあまり残ってないのですが、一番古いソースコード、私の手元にある一番古いソースコードがバージョン0.49というバージョンなんですけども、この時のRubyはですね、驚くほど現代のRubyに似ていてですね、30年も前なんですけども、この時点においてそのRubyの原則、基本的な部分はすでに完成していたというふうに言ってもいいと思います。つまり30年前にこんな言語が欲しいというふうに思った原則そのものは、ずっと安定しているわけですね。そういうわけで、最初に決めた基本的方針や基本的原則におこじするということは、すごく大切なことだよということを、この時代の教訓とすることができると思います。次の時代がですね、1994年の12月から1995年の12月ですね。1年くらいの期間なんですけども、ご存知の方はご存知かもしれませんけど、Rubyを世界にインターネットで公開したのは1995年の12月でした。ですからこれはインターネットで公開する前のことですね。この時にですね、アルファリネイスという名前をつけて、何人かの人に、当時ネットニュースという大会があってですね、そこでこんなソフトウェアを作っている人の興味のある人はいますかという風な融資を募って、そうですね、20人くらいの人が集まったような気がするんですが、そういうような方々とソフトウェアを公開したりとかですね、意見を聞いたりとかしました。基本的な部分は一人で開発することに決まったんですけれども、この時にですね、私以外の人たちの意見を聞いて、人によっていろいろな視点とか視野とか意見とかあるんですけれども、そういうのを聞くことによってですね、自分だけでは気づかないことを学ばせてこれたということがあります。例えばですね、今Rubyってブロックという機能がありまして、メソッド呼び出しのようにルールとかとエンドで括ったコードを書くことによって、手続きの一部をですね、メソッドで渡すことができるという、Rubyの特徴的な機能があるんですけれども、実はですね、このアルファリリースの時点では、ブロックというのはブレースしか書くことができなかったんですね。しかし、そのアルファリリースの時の、誰だったかな、もうちょっと名前忘れちゃいましたけれども、誰かの意見でですね、ケイブさんだったかな、誰かの意見で、他の部分はエンドで終わるのに、ここだけブレースだと、ネストした時にブレースとエンドが混じって嫌だという風な意見がききましてですね、確かにですね、現代のJavaScriptとかではですね、丸括弧とブレースを混ぜなくちゃいけなくて結構辛いみたいなことがありますが、それと全く同じことをしてきたり、ああ、その通りだと思ってですね、Rubyのルートエンドで括るブロックを導入されたのがこの時期になります。自分だけでは視野が狭くなってしまって、気がつかないことも、他の人の意見を聞くことによって気づくことがあるということを教訓として学びました。1995年の12月、一般公開したときですね、それから1997年の8月までの間が、ファーストパブリックリリースみたいなものを通じて、いろんな人に使ってもらうようになりました。今でも動いてますけれども、その時に同時にメーディングリストを作りましてですね、28年くらい前なので、今以来スラックとかTwitterとかないので、主なコミュニケーションはメールだったわけですね。メーディングリストを作ってですね、最初のメールが、ずっと昔からRubyについてかけながら応援してくれた2人がですね、おめでとうございます、とうとう一般公開ですね、というメールが来ました。2つ目がですね、同じ友人からですね、でも僕のコンピュータでコンパイルが選ばれます、レポートがきれいですね。3つ目がですね、すいません、見落としてました。ここのこっちは手が変わります。4つ目が別の方からですね、でも僕のコンピュータではこっちの方で選ばれます。正直言うとですね、一般公開した0.95の時点でですね、かなり品質が低かったというところがあるんですけれども、しかしですね、それはかえってプラスになって、こうやってコミュニケーションが発生することによって、Rubyのコミュニティというのができていったという気がするんですね。例えば、トヨタが車を購入したとして、気に入らないところがあったとしてもですね、文句を言いに行くところはあまりないわけですよね。気に入らないな、と言われわけですね。ところがRubyの場合はですね、作った人がだいぶ不格な人なので、そうするとですね、だいぶ隙があるので文句をつけに行くところがあるわけですね。そうすると関わってくださった人たちの中にはですね、しょうがないなとか言いながら、開発に関わり始めてですね、それがこのシーンに残ってくださる方もいらっしゃいます。今ではですね、何人かの方々はですね、こういうすごく早い時期からRubyに関わっていて、しょうがないなと思いながら、コミュニティに積極的に参加してくださる方もいらっしゃいます。それを考えると、私自身がですね、だいぶ不格な隙のある性格だったっていうのはですね、Rubyにとっては実は大分したさ、プロダクトのクオリティとしてはどうか知りませんけれども、Rubyコミュニティ全体としてはだいぶ成功したなという風な気がします。教訓としてはですね、コミュニケーションとコミュニティというのは非常に大事であるということをこの時代の教訓として学びました。1997年8月から1991年11月というのをクリエイトしたいと思います。この時期はですね、Ruby 1.0というバージョンが出ました。Ruby 1.0、ソフトウェアを見たときに別に大した意味はないんですけれども、バージョンが0.いくつとかいうと、なんかこのソフト大丈夫?という風に思うわけですけれども、なんなく1.0って書いてあるとちょっと安定して使い物になるかなという風に思っていただけるんじゃないかなという風に思います。バージョン番号って大体そんなもんですよね。その後1.0、2.0、3.0ときましたけれども、別に何かしたから3.0になったというよりはですね、どちらかというとここを節目としたいという意思表現みたいな感じでバージョン番号を付けた覚えがあります。この時代なんですけれども、Rubyがだんだん広まってきて、今の方がRubyというものが存在するよということは知っていただいたんですけれども、一方ですね、この時期のRubyってまだよちよち歩きで、キラーアプリケーションみたいなものがなくてですね、そこでいまいち伸びないという時期が続きました。ソフトウェアに関わるときにほとんどの人たちは利益を得たい、このソフトウェアを使って自分がメリットがあるから使うという人がほとんどあるんですね。そのベネフィット、利益を求める人たちと、それからそうじゃないんだ、利益なんか関係ないから楽しいからやるんだ、楽しいんだから作るんだという人たちもいるわけですけれども、実際の世界として99%の人たちは何か利があるからソフトウェアを使うという人たちがほとんど、ロゴを使うソフトウェアを使う人たちはほとんどあるんですよね。99%の人たちが利益を求めるようなところにルーミンのような、当時のルーミンのようなひよこみたいな言語を持ち込むと、人々は便利な道具を、良い言語であって使って、嬉しい、便利なツールとして欲しがるわけなんですけれども、実際問題としてまだ生まれたばかりの言語というのは、機能も足りないし、ライブラリも足りないし、いろいろ足りないので、なかなか利益を提供できないんですね。そうすると利益を提供するためにはリソースがいるんだけど、ほとんどのユーザーはそんなことには関心がないので、なかなかリソースを提供してくれるわけではないので、利益を提供するためにはリソースがないし、リソースを提供するためには利益がないという、それが取りたままみたいな問題を禁じるわけですね。なかなか悩ましい事態ですね。ここらへんになると、Rubyについてインターネットでアンテナを高い人が、Rubyというプログラミングゲームが存在していることは知っているんだけれども、だけどその時点だと、例えばパールがあるので使う理由がない、Ruby知ってますよ、使ってないけど、みたいなことがよく言われるわけですね。辛いですか、言ってくださらなくてもいいんですけど。ですがですね、1%の人は楽しさのために作っているわけです。作ったり使ったりしているわけですね。もっと人は、もっとリソースが必要だというこの時期ですね、私たちはどうしたかというと、ちょっと固い言葉ですけど、同志を求めるという感じですね。好きだからRubyを使う、好きだからRubyを作るような人たちをアピールするようなことを続けていきました。現地人たちは便利と提供できません、ごめんなさい、でも楽しいよというふうなことを語り続けたわけですね。私たちが持っているソフトウェアを開発する楽しさ、自由ソフトウェアを作り続けることの喜びみたいなものを皆さんに伝え続けたのがこの時期でもあります。この自由に対するモチベーションみたいなものがこの時期のバックグラウンドになってきました。1999年10月から2004年10月までの一部分と次の一つにとします。この時代は本とコンファレンスが、本がたくさん出版されコンファレンスが開かれ始めた時期でもあります。最初の時に本が出版されたのは1999年の11月でした。本は1997年くらいに出るはずだったんですけども、書籍、書き下ろしの書籍って大変なんですよね。僕にとっては大変で、明確な締め切りがないように。伸ばそうとしても伸ばせるっていう。雑誌の原稿はこの日までに出さないと落ちるっていう。出版できなくなりますっていうふうに決まってるんで、いじりを守らないといけないんですけども、書き下ろしの場合はしょうがないな。出版予定量を伸ばしますねみたいな話をして、ごめんなさい、ありがたいですみたいなことを続けてたんですね。当時転職して忙しかったりとか、いろいろあったので、なかなか原稿が進まなくてですね、結局2年ぐらい遅れて出ました。2年遅れただけで済んだのは幸いというべきで、出版業界の人には本当に申し訳ないんですけども、私、知名度が高いので、書籍を書きませんかっていう企画をいただくことが結構あってですね、こんな本を書こうと思いますみたいなことを言って、出版企画が通ったことがたくさんあるんですが、そのうちの多分8割9割が私が書けなくてですね、ボツになったっていう企画があってですね、もうダメじゃんっていう感じなんですが、この本は無事出ました。オブジェクトスコースクリプト言語ルービングの本でですね、技術系の本としてはそこそこ無数が出て、16000年からちょっとぐらいで出たりですね、ちょっと出たらパッという感じの本になりました。目出し目出しって感じですけども。次にですね、最初の英語の本ですね、ピッケルコンってよく言われているプログラミングルービーっていう本ですけれども、これが2000年の10月に出ています。この本については思い出があって、1999年の12月ってY2K問題というのがあって、2000年問題ですね。インターネットで大変なことが起きるかもしれないみたいなことをみんな言ってた時期なんですけれども、その時、まさにその時ですね、1999年の12月31日にメールをいただきまして、あなたの作ったルビーっていう言語について英語で本を書きたいんだけどいいだろうか、というメールをいただいたんですね。どうぞどうぞというふうに答えたいんですけれども、そしたらですね、ちょちゃーな人、当時は知らなかったんですけど、デイブ・トーマスとアンディ・ハンクという2人からですね、特にデイブがですね、どともとメールが来てですね、ルビーってこういうふうになってるけど、これ一体どういうこと?とかですね、ドキュメントに書いてあるんだよ、ソフトウェアの共同が違うんだよ、とても悲しいですね。この機能の背景はどういうこと?なんでこんな機能あるの?みたいなのがすっごいたくさんメールされてたりですね、そうなんですけど当時もあんまり英語得意じゃないのでですね、アップアップしながら、特に当時Google翻訳がないので、アップアップしながら英語の返事を書いたんですけども、そしたら8月ぐらいに書けたからとか言われてですね、ちょっと待ってください、私2年おめでとうなんですよ。なんですけど彼ら本当に半年、もうちょっとか、7、8ヶ月でですね、原稿を書き上げてですね、でも初版のプログラミングルビーって本、後になるほど熱くなるんですけど、それでも結構な分量があるから、8ヶ月ぐらいで書き上げてですね、で10月には出版されるっていう、ものすごい怒涛の勢いで本を書いてたんですよ。この本のおかげで、日本の外のたくさんの方たちがですね、ルビーに気がついて、あるいはルビーを学んで、ルビーを使うようになったという、この本がなかったら今のルビーはなかったと言ってもいいと思います。次にですね、2001年の9月はですね、JAOOとJava and Object Oriented Programmingっていうカンファレンスがずっとデンパックで開かれてたんですけども、これに呼んでいただいてですね、海外のカンファレンスから詳細講演されると、という喜びさんに行ったんですけども、ここで実際にこのプログラミングルビーを書いたレイブ・トーマスともここで会いましたし、それからマーティ・パーラみたいな業界の有名人みたいな人も何人もあってですね、わーいと思いながらですね、だいぶリハですね。で、カンファレンスに出席しました。海外カンファレンスに呼ばれるようになったんだな、自分も、とか思いながら出席したんですけども、2001年9月ってですね、あれなんですか、911があったんですね。私が自分の講演を終わって、ホテルのルビーに戻ったらですね、タワーが火を消えてました。えーっとかいう感じで、その後カンファレンスは日本に帰ってきたんですが、アメリカから来たスピーカーたちはですね、国境がロックダウンされて、全然帰れないっていう。あとでアメリカの人たちはですね、メールで聞いたらですね、1週間帰れなかった。あのね、カンファレンスに出るつもりでこうスッと行ったらですね、そのまま1週間延長しないといけないっていうのが大体地獄のような感じですけども、大変だったと思います。で、えーっと、あとですね、このレイブ・トーマスのJOOってカンファレンス、2004年に出てきてるんですけども、2004年に出てきて、あ、違う、この時だ、この時。2001年にJOOに出てきた時に、レイビッド・ハイヤマヤマンセンっていうですね、レールで作った人ですね、この人がその時学生インターンをしてて、カンファレンスのご手伝いをしてたんですけども、その時にデイブ・トーマスと僕とBHHで普通に話をして、当時彼PHPプログラマーだったので、別にRubyってこんなんだよみたいなことを紹介しただけだったんですけども、後にその人がレールズを作るようになるとは思いもしなかったんですけども、こんなことがありました。その1ヶ月後にですね、一番最初のRubyカンファレンスが開かれました。2010年10月の終わりくらいですね。2011年11月にプロイラストが3波で開かれたんですけども、覚えてらっしゃる人はもしかしたら覚えてらっしゃるかもしれませんけど、短足の差はあったのが、2001年10月のフロリダで、この時期にフロリダ行くのはお前は死ぬ気かって言って周りに止められたんですけども、まあきっと大丈夫って言って、最初のRubyカンファレンスに出席しました。出席者が37ぐらい。このぐらいですね。その時から始まってですね、世界中のコミュニティがどんどん広がっていって、それから20数年経ちますと、例えばRuby海外、日本で開催されるインターナショナルカンファレンスで、今日一応登録は1300人いるそうですけども、バーチャルで参加する人も含めて1300人が参加するようなカンファレンスが開催されております。海外のRubyカンファレンス、あるいはヨーロッパのNUDOKOとかもですね、結構な規模のカンファレンスが開かれるようにまで成長しました。これというのもですね、やっぱり一番最初の時点に、例えばそのレイム・キョウマス・アンディ・ハンドがRubyに行ってて、それをただ単純にするだけでなく本を出しますと言ってくださった。あるいは最初のRubyカンファレンスをオーガナイズしてくださるような方々がいらっしゃった。あるいはRubyに興味を持って自分のところのテクニカルカンファレンスに招待講演したとして、招待をしてくださった人、みたいな、そういう人と人とのつながりみたいなのがですね、今のRubyにつながっているというのは、まあ骨っていうとおりなんですけども、つながりですよね。つながりが非常に大事であるということを教訓してもらいます。特にこのプログラマティブ・プログラマー、本物の達人プログラマーですけども、二人はですね、非常に恩があってですね、二人がプログラムのRubyを書いてくださったからこそ今のRubyがあるというのも言い過ぎではないかと思いますね。デイブ・トーマスは今、EXRを一生懸命応援してますけれども、別に仲高いお下がりではないです。次の時代としてはですね、2004年の10月から2009年の1月までの一つをお伝えしたいと思います。この時代にあった一番大きなイベントというのはやっぱりRuby on Railsの登場ですね。Ruby on Railsが公開されたのが2004年の10月になるんですけども、キラーアプリケーションがないないってずっとRubyを言われたんですけども、とうとうですね、Rubyのキラーアプリケーション、そしてWebアプリケーションの開発というものが登場してきました。ようやくですね、Benefit Seekersたちの利用を提供することができるようになってきたわけですね。この時代にはですね、Ruby Associationという団体も登場して、Ruby Associationというのは私も任事をしてますけれども、Benefit Seekers、ビジネスでRubyを使いたい人たちと、それからテキーで楽しみのためにプログラムを開発されているというのは、どうしても見ているものが違うので、ジャックが生まれがちなんですけれども、そこを埋めるような組織としてRuby Associationを作りました。この時代から学べる教訓というのは、楽しみのためにソフトウェアを作ってきて、ツールを作ってきたんだけれども、それを継続してよりも作り続けていけば、JoyseekersがBenefit Seekersを満足させるようなものを作り出すことができるというようなことを実証したということが一つの教訓として言えるというふうに思います。さらに言うと、私と任事したプログラムがあるので、よいものを作ればそれは広まるというふうにずっと思っていたんですけれども、それは必ずしも真実ではないなということを学ぶのもこの時代でした。DHHというのはものすごいマーケティングがうまい人いるんですよね。どっちかというとすごい口が立つので炎上しても怖くないという感じですね。当時、Ruby on Railsを使った人たちは感銘を受けて、Ruby on Railsを使うとJavaの10倍の生産性がログインされているんですよね。当然のように炎上するわけですよ。条件がそのうちないからですね。Javaではこうやれば楽だということがあるんですけども、このDHHというのは延長しているとガソリンを持って駆けつけるんですよ。ものすごい燃えたんですけれども、その中にまとめるとメインチームの真実、つまりRailの生産性が高いということであるとか、おもちゃではなくてちゃんとしたウェブアプリケーション、ビジネスにも使えるようなウェブアプリケーションも十分に開発できるということを彼らの力によって証明したんですけれども、それによってRailsの知名度が高まったのも確かですね。あと、彼のRuby on Rails.orgのところにビデオがアップロードされたんですね。彼がブラジルカンファレンスの講演で、アドリブでRailsアプリケーションで小さなToDoアプリケーションを作るデモだったんですけれども、15分くらいでToDoアプリケーションのデモを作ったんですね。で、PHP Web AdWordsか何かのデータベースで作って、そのあと、Tierfoldで何とかっていうことをやって15分くらい作るという。2004年当時に15分でウェブアプリケーションを作るというのはだいぶ発達的なことだったんですよね。かつ、思い出すと2004年ってYouTubeが生まれた年でもあるんですよ。そうするとインターネットでビデオを使うっていうのはあんまり一般的ではなかったんですよね。それをビデオで公開してみると、あ、そうか、じゃあうまくやれば15分で最初の一歩を踏むことができる、最初のウェブアプリケーションを作ることができるし、見栄えとかはとにかくとして、そっちは後からやればいいんだけど、とりあえず動くものを15分で作ることができるなら、ダメだったら捨てて15分で作り直せばいいやってやろうというプロジェクトがトレークになった。そのことに対してこのビデオって当時ものすごい説得力があったんですけれども、それっていうのは彼のやったプレゼンテーション能力、マーケティングだったりパブリッククリエーションだったりとか、そういうふうな能力によってRuby on Railsに現在の最初の影響を受けたっていうのはあると思うんですね。正直言うとマーケティングって思ったんですけども、実はちゃんとした広報をするっていうことは大事なことだよっていうことを学ぶのもこの人です。相変わらずRubyや特に私はプレゼンテーション、映作ソフトに変わらないんですけども、あとですね、さっきちょっと話をしたんですけども、エンタープライズ人の人とテクニック人の間にギャップが生まれる感じなんですけども、スーツを着てる人に対して技術の優位性を説得する必要があるってことを聞いてって、学んだのもこの人です。このカンファレンスだとスーツ着てる人いないじゃないですか。例えば私までできなくなっているRubyワールドコンポネント、3個の位スーツ着てるんですね。だいぶ軽量が違うなと思ったりするんですけども、それも多様性だったり、ギャップを生めるっていうことは非常に大事なことだというふうに思いました。さて、次の時代は2009年の1月から2013年の2月になります。これは2009年の1月にRuby1.9というバージョンがリリースされたんですね。正確に言うと1.9、1.9.0ですね。1.9.0がリリースされたのが2009年。1.9.1だね。1.9.0がまるか2007年だった。Ruby1.9というのが1.8まで私が作ったインタープルだったんですけども、コアの部分を笹田さんが作ってくれた、YARVという名前の新しいバーチャルマシンに置き換えたので、あといろんなところ大規模な回転をしたので、動かせていかなかったんですね。今までRuby1.8で動いていたアプリケーションをRuby1.9で動かそうとすると、いろんなところを直さなくちゃいけなくなったんですね。その結果、私たちは新しいバージョンがRuby1.9であるとか2.0であるとかをリリースして改善して、そういう活動をずっと続けていても、コミュニティの一部の人たちは、私たち自分のアプリケーションを書き換えたくないから、Ruby1.8をずっと使い続けますと言った人が結構な割合にいたんですね。その結果、ある種のコミュニティ分断みたいなことが起きたんですね。Rubyをもっとよくしたい、新しい機能を追加したい、あるいは性能を改善したいと思っても、それはコミュニティの一部の人に届かないという事態が5年以上続いたんですね。そのことから学んだのは、互換性というものすごい大事だということもありますが、おとなしくPythonという言語では、Python2.xと3.xの間に同じ互換性の問題があったので、あちらは15年コミュニティの分断が起きてしまいました。それに比べたら、うちは5年から7年くらいまで半分以下に済んだというのはだいぶラッキーではあったんですけども、それにしたとき、互換性を一生懸命考えないとあり得ないんですけども、互換性を壊すと、またコミュニティ分断みたいなのが起きがちだというのは確か。それ以降、そういうのが起きないといろいろ工夫しているんですけども、互換性を壊してもみんながついていきたいと思えるような工夫をいろいろしながら改善しています。もう一つこの時代から学んだことは、Ruby 1.8とRuby 1.9でだいぶ性能が違っていたんですね。Ruby 1.9のほうがだいぶ性能が良かったんですよ。それはどちらかというと、作ったプログラマーの売れ前の問題のような気もしないではないんですけども、その中のほうがだいぶ私の優れたプログラマーなので。だいぶパフォーマンスが良かったんですね。そうすると、Ruby 1.9用に自分のアプリケーションを書き換えないといけないんだけども、書き換えて1.9にマイクレーションをしたら、自分のパフォーマンスが結構良くなるんだったら、それぐらいポイントをもらってもいいかとか結構言ってですね、そうやって少しずつ1.8を使い続けている人たちが1.9に移行してくださったというのがあって、つまりパフォーマンスを改善することによって、他の問題はそれに伴って解決することがあることもこの時に学びました。だから結構ね、例えばJITの話とかパフォーマンスパフォーマンスって結構言うんですけど、Rubyの全体がそのものが遅いと言われつつもですね、パフォーマンスの話を続中するのはこの時の教訓があるからですね。次。次の時代は2013年2月から2015年の11月ですね。ここはRuby 2.0が登場したのが2013年の2月からでした。今年38周年ですけども、この時は20周年ですね。20周年記念でRuby 2.0が発表されたということで、Ruby 2.0でした。個人的にはですね、Rubyの最初の時期はですね、ああいうことをやりたい、こういうことをやりたいって思っていることの中で、実装が難しくてほったらかしていた機能がいくつかあったんですけれども、それのほとんどが揃ったのがRuby 2.0でした。最後に残っていた思いがあるパターンマッチングが3.0というのが残ったんですけれども、それ以外でもですね、例えばRefinementであるとかですね、含めて入ったのがRuby 2.0の時期でした。それとですね、一番最初に構想の中には実は入っていたんだけど、実力が足りなかった、あるいは技術が足りなかったので実現できなかったというのが、追加されて、コミュニティのお陰ですけれども、Rubyという言語はですね、私の頭の中にある感性にだいぶ近づいたという時期がこの時期でもあります。一方ですね、Railsがものすごい評判が高かったのが、その人気に限りが出たというのもこの時期でもあります。そうするとですね、人々がですね、Railsがガーってきている人の中では、もうRailsはいいや、他の言語に行くからという人たちも結構いてですね、残念。あとRailsがね、2004年に登場した時には画期的だったというのもですね、別にRailsでなくても同じようなことを実現するような原源が登場しつつあってですね、まあ100%Railsと同じ使い心地になるかというのはまだないんですけども、多くの人たちに対して妥協できるような事例ではRailsに追いついたと思われるようなものも登場してですね、そうすると離れている人もいる、来る人もいるでも離れている人もいるというのが学んだのもこの時期でした。ただ、そういうのにですね、今は人気が上げると叩かれるんですよね。毎年そんな言ったりでありますが、Rubyは死んだって言われてですね。まあなんだけどずっと毎日住み続けないといけないなという決心をしたのもこの時期です。2015年の11月から2020年の2月までのもう一つの時代としたいのですけれども、この時期はですね、Ruby3xというキャッチフレーバーを作って、Ruby3.xに対して備えをしている時期という風に定義しましょう。Ruby3xというのは別に私が言い出したわけではないんですけれども、誰かが普通に話をしている時に、その時は3x3と発音していたような気がするんですが、誰かが言い切ったのがですね、それいい、最強って言ってそのままキャッチフレーズに使ったんですけれども、インスピレーションのもとになったのはですね、ジョン・F・ケネディの1993年の演説の中にあった言葉ですね。We choose to go to the moon in the decade and do other things not because they are easy, but because they are hard,because that goal will serve to organize and measure the best of the energies and scaleということですけれども。それが月に行きましょうと。この10年の間に月に行きましょうと。60年くらいかな。それが月に行きましょうと。それが簡単だからそれをするのではなくて難しいから。それにエネルギーを効果することによって、私たちが組織化して、私たちのエネルギーとスキルを測ることができるというふうに言っているわけなんですけれども、これをイメージしていて、2015年の11月のですね、アメリカのRuby Conferenceでこの話を一番最初にしたんですけれども、その時点で私がRuby 3x3が絶対確実に実現できるってあんまり思ってなかったんですね。正直言うとこは難しいよなって言って、Ruby 3.0が出た時にごめん、できなかったよという可能性は結構あるなって思って言ってたんですね。だいぶ冒険ですけれども。なんですが、そうやってですね、私がこういうふうにこの方向に行くんだっていうふうに言ったらですね、その中でBlood MattressがMJITを作って持ってきてくれて、こういうふうなことをしてJITコンパイラーがいきますよっていうふうに。それを国分さんが引き続いて導入してくださりました。その後、でもMJITってレーザーアプリケーションのパフォーマンスがあんまり改善しなかったんですよね。そしたらこのShopifyチームがMaximumに含めてYJITにチャレンジさせて、それでレーザーアプリケーションによっても3倍とはいってませんけれども、程度改善されたという素晴らしいことがあって、それっていうのはもちろん実際には作ってくれた人がいて、Bloodがいて、国分さんがいて、Maximがいて、そういう人たちが努力してくれたから実現できたんだけど、その最初の入り口、きっかけを作って旗を振ったことによってそれが実現したっていうふうなのは見えるだろうなっていうふうに思って、そこによってリーダーシップとそれからビジョンの提示、Rubyを3倍速くするっていうビジョンの提示にですね、それの重要性っていうのに気がついたのがこの時期でもありました。そうするとキーノートとかで未来の話をしないといけないというふうな、今日未来から全然しないんですけど。最後の時代は2020年2月から現在に至るまでですけども、2020年2月っていうのはRuby3.0が出たタイミングですね。このタイミングでもちろんRubyは随分改善されたんですけども、それにもかかるとRubyは死んだとか、Ailsも終わりとか言われるわけでですね、そういう逆風の中にあっても耐える、立ち向かうみたいなことが必要な時期でもあります。例えばプログラミング言語の人気ランキングみたいなものを取ったとして、Rubyが1位になる未来は、来るといいですね。あんまり近い時代では考えられないんですけど、じゃあ2位じゃダメなんですけど、2位以下の言語に存在価値がないかっていうと、話もそうではないというわけですね。私たちは去年のRuby会議のキーノートもあっても、価値を成長し続けているので、それでいいんだというふうな気がするんですね。ただ、私たちが何回言うと戦う感じがあるわけですね。これはですね、3日ほど前のEHのタイプスクリプトを書いている場合にあって、成長が少しでも私にとっては楽しいし、タイプスクリプトと似たような型ヒントや型宣言みたいなものを言語に入れるのに屈しないマットに永遠に感謝するって書いてあるんですよね。ありがとうございます。EHね、彼らはだいぶ金持ちなんだけど、こうやってたくさん読み込めてくれるんですね。私の自尊心はだいぶ満足してくれて。そういうことを言うとですね、タイプスクリプトの人たちはこういうふうに言うわけですね。Sometimes people just wanna blame me for how I am.どういうことかというと、地球平面論ってやつですね。今では地球は平らだと信じても丸じゃないと信じてる人たちがいて、現代の科学が証明しているものをカタクナに否定する人がいるっていうふうなやつなんですけども、どういうことかというと、つまり静的カタの方向にプログラミング言語が行くのは既定エロ線で科学的に証明されているので、そっちが絶対いいので、そういうカタ宣言がない、動的なカタ、タイプベースってそういう人たちがいるんだけどね。カタあるから。動的なカタの言語にはもう未来はないと言われるわけですね。それに固執する人はflat earth believerである。つらいね。なんですが、ここで私としては、そればっかりが未来じゃないかというふうに思うんですね。私個人としては、もちろん静的カタがあることによって、うれしさからもちろん理解していて、プログラミングしているときにより多くエラーをコンパイル、あるいはコーディングリングにつけることができるのがうれしいし、より安全で、プログラムが、エラーがより早く見つけられるのが、それはそれでうれしいし、私もそれはわかるんだけど、じゃあカタ宣言を言語に加えることが最善の方法かというと、必ずしもそうではないので、違う未来を作りたいなというふうに思っているんですね。これ何回も言ってるけど。アラン・ケイの有名な言葉ですね。The best way to predict the future is to invent it.ということで、未来を予測するのとも良い方法はそれを作り出すこと。私がこうやってカタ宣言がなくてもちゃんとカタチェックができるようになるし、そういう未来もあるんだよってことを口で言っても、特にスタティックタイプのリリーバーは信じてくれないんですね。お前ブラックアスカーみたいなこと言われるんですね。つらい。そういう未来を作りたいというふうに心からわかっているわけですね。ここまでですね、30年前から現在に至るまでRubyの過去を振り返り、恐怖について語ってきたわけなんですけども、30年の間にここに挙げなかったいくつかのイベントがあって、それを挙げておきたいなと思います。一つはですね、Rubyの別実装ですね。1990年にRubyを作った頃に、その頃メジャーだったプログラミングリング、例えばパールであったか、パイサーにもありましたけども、そういう言語には当時別実装はなかったんですね。つまりプログラミング言語と実装というのはものすごく恐怖に結びついていて、別実装というものが存在しないというのが当たり前だったんです。なんですが、この30年の間にですね、そういうことを思ったから別実装が作りやすいような言語を作りに来てこなかったんですけども、そういうチャレンジに向かうのがですね、例えば2001年にはJRubyが始まりました。2007年にはIrubyが始まって、マイクロソフトに見捨てられましたけども、あとTruffle Rubyですね、2013年の別実装のロンドンから始まりましたけれども、Truffle Ruby、今でも現役に不思議なくらいベンチマークが早い、ちょっと概念を参考させていただいていないものがたくさんあるんですが、実際、そのTruffle Rubyからですね、例えば3.2で入ったオブジェクトシェイプみたいなものを参考にされたりしています。それからですね、私自身知っているmRuby、2012年から、正確にはプロジェクト始まったのは2010年からですが、こういう別実装が現れるようになったというのは、Rubyの価値が高まってそれをやるだけの意味があるというのもそうなんですけども、私にとっては自分の言語を実装してくれる他の人がいるというのはですね、だいぶ自尊心を満足させるというか、ありがたいというかですね、そういうところがあります。私にとっては非常に強いことにした。もう一つはですね、スペース入れるのを忘れたかな。ISO Standardですね。ISO ACの30170201012というISOの企画ができたんですね。印象的でした。これですね、すごい大変だったんですよ。標準企画というのはですね、オープンソースと違ってなんですかね、すごい大変で、会議があって会議があって、ミーティングがあって会議があって会議があって、出場があって会議があってというすごい大変なことをして一生懸命作っていたんですけども、2012年できました?いやばっかりと思ったんですけど、この後何かいいことがあったかというと別にというかね、いやまあ頑張ったんだけどねという感じで。標準企画ができたら、じゃあ標準企画に従ってその範囲内で例えばそれを採用する事業者がいますとか、あるいは例えば検定試験みたいなことにプログラム言語をして標準企画なら言語が採用されるかもしれませんよみたいなことが期待してたんですけども、じゃあ上級的な試験に私プログラム言語を入りますって入ったの大変だったんですね。標準企画はどこにあるの?しかもですね、まあいいやいいや。これ始めると30分じゃ終わらないですからね。はい。で、ポール・フレアムっていう元Yahooストアのベースリジナルバイアウェルという会社を作って、YFコンピネーターを始めた人ですね。彼がですね、100年の言語っていうエステを書きました。その中に100年後でも使われるようなプログラム言語について、でも100年後予測するのは難しいけれども、プログラム言語に関して言うと、100年後の未来を予想するのに制約がないので、考えるだけなら自由だっていうようなことを言いながら100年の言語を彼に書いているんですね。私は彼ほど優秀でもないしリスパーでもないので、30年生き残る言語について、30年生き残ってきたんですけど、もう30年残る言語について考えてみようというふうに思いますが、プログラムに参考にすると、簡潔で読みやすく拡張性の高い言語がいいんだという感じなんですよね。実際そのルビーは非常に簡潔ですし、読めないプログラムのルビーで書けますけれども、トリコリクとかね。なんだけど、大体の場合は読みやすいし、拡張性にも高いので、結構いい線いっているんじゃないかな。30年プラス30年で60年生きる言語っていう意味では、いい線いっているんじゃないかなというふうに思いますが、もちろん改善すべき点がないというふうに言わないんですね。例えばですね、パフォーマンスであるとか、コンカレッシブ性向実行であるとか、サポートするツールであるとか、さっき言った型の話であるとかですね、色々あるんですが、これらのことはですね、3.0以降ずいぶん改善してきました。パフォーマンスでも、今、RJITになりますね、JITコンパイラー入れました。それからメモリレイアウトの変更であるとか、GCの改善であるとかもしました。コンカレッシブについても、ファイバーの改善であるとか、ACファイバーを入れました。ラクタも変えました。もちろん改善の余地はありますけど、全然取り掛かっています。ルーミのツールもずいぶん誘致してきて、マルボコッコがあります。それから、RubyLSTみたいなのがあります。タイププロフであるとか、ソルベもそうですよね、そういうものもあります。タイプに関しても、Stringであるとか、Solidであるとか、それからタイプ共有、いろいろ入れました。こういうような、常に手をつけてはいますが、これで完成も大丈夫というところまではまだ行ってないんですが、正しい方向に向かって進歩しているというふうに私は確信しています。特に型に関しては、最近、ChatGTTが話題なので、聞いてみました。以下のプログラムの型を推論してみてくださいと聞いたら、このMは整数ですとか、Fibonacci関数の入力ですとか、それから、戻り値も整数ですというふうに正しく推論してくれたんですね。タイププロフ、ChatGTTがあればタイププロフと同じようなことができる。もちろん、ChatGTTはOrbiに注入されていないので、これでもうOKというつもりはないんですが、私たちは、どんどん新しい機能を採用すると、人間がいちいち型を書いてやるとか、そういうようなことをしなくても、十分に推論してくれる可能性は高いというふうに私は思っています。さらにもっと語りたくないようなこと、例えばこのオブジェクトフリーズされているかどうかとか、タイプXであるかどうかというより多くの情報を持った型推論みたいなものを、プログラムの実装に書かなくてもできる日はいつか来ると思っているんですね。その先に型宣言を言語に入れた連中は、もっと簡潔に書けたらいいなと思う日は来るんじゃないかなと思うんですね。【拍手】その見えないうちに潰さないためにも、フラットアース・ビリーバーはですね、型宣言を言えないというふうなことを、固くなり突き進もうというふうに思っています。いずれにしても、私たちこれまでずっと頑張ってきましたけれども、このまま前に進み続ける、今まで改善しなくちゃいけないと思っていたことがたくさんあります。手をつけているものも、手をつけているけどまだ完全に立っていないものもたくさんあります。そこに手をつけていこうというふうに思っています。それは一重に、より良い世界を、つまりRubyユーザーが喜んでプログラムを書き、そしてそれからベネフィットを受けられるような未来をつくり続けるためなんですね。私と一緒に働いているコア開発者たちもそうしてくださったし、ジェームオーサーズたちもそうしてくださっています。レールズ開発者たち、レールズそのものを開発している人たちもそうだと思います。ぜひ、そのRubyを使って、あるいはレールズを使って、アプリケーションを使って、世の中を良くしていくような、そしてベネフィットをより多く世界に提供していくような活動をRubyコミュニティ全体として推し進めたいと考えていますので、ぜひ皆さんも参加していただければというふうに思って、このキーノートを終わります。キーノートは、salesforce.com、NACL、OSFセミション、最近こういう会社つくったんですけど、仲間出しソフト、それからGitHubスポンサーズの皆さん、どうもどうもありがとうございます。最後、Rubyコミュニティ全体の提供でお送りいたしました。ありがとうございます。【拍手】【質問者】
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment