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!
Thank you.
There are several things I would like to ask you. But first of all, I would like you to introduce yourself.
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.
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?
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.
Yes, yes, exactly. Like Bookmarklet.
Wow. That is the first thing you did ?
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.
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….
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)
(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?
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?
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)
(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?
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?
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?
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?
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?
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?
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.
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.
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.
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.
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?
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.
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?
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.
Thank you.