Yuta Saito (kateinoigakukun) Interview

host Yukihiro Matsumoto

まつもとゆきひろ委員長

We would like to start the interview. So Yuta Saito, you are the awardee of Ruby Prize 2022. Congratulations!

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Thank you.

まつもとゆきひろ委員長

There are several things I would like to ask you. But first of all, I would like you to introduce yourself.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes, I am Saito. I am a senior at Waseda University at the Department of Computer Science and Engineering. I’m interested in programming and language and language processing. That’s why I got involved in various languages, Ruby, Swift LLVM. And I participated as an OSS contributor. This time during the last year, I had been involved in the web assembly of Ruby which I think, is the reason of my being awarded.

まつもとゆきひろ委員長

Yes, yes, you’re correct in your understanding. I would like to know how you started programming.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Well, since I was younger…. It is strange to say “since I was younger”, but I had been living in an environment where the computer is always has been with me. My parents, let me use their tablet. It was when I was in junior high school. But my parents tablet had a lot of limitations. I wanted to play games on the tablet, but I couldn’t download apps for the games, so then the most interesting thing was to use internet browser, and so I would use the web browser. And when I was exploring the web browsers, I learned that the URL bars of the web browser allow us to write the program. We can write script with JavaScript and I started to play with that. That was the beginning.

まつもとゆきひろ委員長

So you mean writing JavaScript directly onto the browser bar?! Well, I know that it can be done, but you did it. So what kind of programs did you write?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

For example, I used to go and check many internet sites like Channel 2, but with regards to those you know how HTTP cannot be a used? They omit the H, so that it would not be linked. But it was a nuisance. So I tried to rewrite it so that we can click on it and see that channel. That’s the first programming I did.

まつもとゆきひろ委員長

Like bookmarklet.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes, yes, exactly. Like Bookmarklet.

まつもとゆきひろ委員長

Wow. That is the first thing you did ?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. Many people entered into this field through games and all, so this maybe a strange way to enter.

まつもとゆきひろ委員長

You can play the browser games though if you wanted to play games. Why didn’t you try browser games, instead you went for the JavaScript and program writing.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

I just happen to have an interest there. But those days most of the games were on Flash. On the iPad you cannot run Flash.

まつもとゆきひろ委員長

I see. So you cannot play with browser games with Flash….

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. So the things to do get limited.

まつもとゆきひろ委員長

If you are born a little bit later when HTML 5 became popular, then you may have got into the field of games maybe? (laughs)

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

(laughs) I may have gone a different route, yes.

まつもとゆきひろ委員長

I understand, thank you. Then, when you got interested in programming, you decided to major in it in university too?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. I learned programming using Bookmarklet in middle school. I thought it interesting. But in the browsers the things I could do was limited and I wanted to write native apps. I started to learn how to write apps when I was in senior high school. I felt that I am good at it and this is the field I want to work in.

まつもとゆきひろ委員長

So it was when you were in senior high school, you decided to go to the informatics. You felt it would be interesting, and you would have a future in it. But you are a senior at university and during these four years you have been contributing to Ruby, Swift LLVM etc. The computer science is a wide field but you gained an interest in this specific area?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Well, when I was in senior high school, I started to write iOS apps. That tool chain is written in Swift and the tool chain quality was, I would say, not too good. The compiler would crash. There appeared a lot of stack traces when I compiled and I could see inside of the apps. I got quite interested in that which lead me to language processing.

まつもとゆきひろ委員長

Not many people select it that way. You are quite special. So you could see the contents of the compiler tool chain and that was interesting to you? (laughs)

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

(laughs) Yes. For example, there are a lot of displays on the street. If we could see the window update script, it would be interesting, I think.

まつもとゆきひろ委員長

Yes. I understand, for example, when the Linux boot up sequence appeared on the screens on the airplane, it was interesting, like “Oh I see, it uses Linux”. So then, from there what lead you to learn the Ruby on Web Assembly?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Before doing the web assembly with Ruby, I did web assembly with Swift. Because iOS apps alone will not help me. If Apple goes out of business, I won’t have any jobs to do. But Swift language is something I like. So I want to use Swift on other platforms. For example if I can run it on browsers it would be fun.

まつもとゆきひろ委員長

So basically adding Web Assembly to the backend of Swift?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. I got more interested in the Web Assembly itself while I was doing things like that. In order to advance Web Assembly in itself, we have to support many languages. And that’s why I came to Ruby.

まつもとゆきひろ委員長

I see. You said during your keynote speech that there were a lot of difficulties, but anyway you overcame those difficulties and you merged it. When 3.2 is released, CRuby will be running on WebAssembly. What is your opinion on its level of completion?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Well, that is a difficult question to answer. As for the level of completion, actually, I succeeded in merging at the beginning of this year (2022), and I have been improving for half a year till it became rather stable. The basic use case can be operated on the browser, which is I think is the best part. So on that part it is very stable. Though the C Ruby is stable, the binding library is not perfect yet, we have to improve it. That’s the future challenge.

まつもとゆきひろ委員長

So, about Ruby on Wasm, do you have any future plans?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

So as I mentioned, I want to improve the libraries but I also want to improve the C Ruby overall. Currently, Asyncify, an instrumentation is used, but it is a kind of a workaround. So in order to eliminate it, as we have to eliminate it, because workaround would create overhead. So, I want to directly introduce it into the WebAssembly. That’s the plan I have.

まつもとゆきひろ委員長

Wait a minute, so, you are not talking about implementation in Ruby on Wasm, but you want to add it to WebAssembly itself? That is your ambition?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. For Ruby, I want to change it.

まつもとゆきひろ委員長

So, we have been talking about Ruby till now. Other than that, is there anything that you want to do? Do you have any specific ambitions?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Well, I myself am interested in the fact that very strange programs work in a very odd environments. So I want to make Ruby work wherever, so working on the program size and possibly one binarify it as well. So I want to help so that Ruby can run anywhere.

まつもとゆきひろ委員長

One binarification is something many people want it seems.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

So it seems.

まつもとゆきひろ委員長

There are a lot of things within and beyond WebAssembly, so there seems to be hope for that. For example, VFS, that we worked on together, in that there are certain things that are a must when binding gems. It’s a kind of technology that has a lot of expectations on it, so I take that that kind of thing is also included in your plans.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. Currently VFS is specialized in WebAssembly. So it cannot be run on other platforms as it is. But if we can have a similar experience on other platforms, it might be nicer. It’s just a rough idea as of now.

まつもとゆきひろ委員長

Thank you. Yes, there are people who are graduating from Ruby. But I would like you to maintain your interest in the Ruby, while doing other things too so that we can work longer with you. There might be a young people who would like to be like you in the future. You are also young, but do you have any message to the younger generation.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Wow. Uh, that is huge responsibility. I would like them to pursue their interests. When you are doing something interesting, you will meet other people who give you a lot of opportunities. I got to know Ruby when I wanted to have an internship at Cookpad as an engineer of iOS and I visited at Cookpad and I had an opportunity to talk with Mr. Endo and I thought that it might interesting. That’s why I said that I just decided to go on Ruby. So if you try to get an opportunity, if you try not to miss the opportunity, you would have a good encounter.

まつもとゆきひろ委員長

Yes. A lot of things are born from encounters, and this might be a bit rude to say but it may be a bit more exciting to work on Ruby on Wasm that iOS applications. Technologically I suppose.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes. Challenging, I should say challenging.

まつもとゆきひろ委員長

It’s more challenging. I understand. So today’s learning is to value our encounters. Thank you. Oh, another question. Have you decided how you use the prize?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

I’m living with my parents and I am working for a company, which is headquartered abroad. Most of the coworkers are in Europe. So I have to work at midnight due to the time diference.

まつもとゆきひろ委員長

Ah. Of course.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

However my family doesn’t like me working at midnight. So I want to rent a house. So it will be used renting a house.

まつもとゆきひろ委員長

So it is going to become the deposit?

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Yes

まつもとゆきひろ委員長

How very reliable. So we are very grateful to be able to help you. Thank you. So that’s the end of this interview. Congratulations once again.

RubyPrize2022 Winner Yuta Saito(kateinoigakukun)

Thank you.