Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Road to Ruby for A Linguistics Nerd

Road to Ruby for A Linguistics Nerd

I summarised the following 4 items what I preprared for and learned in RubyKaigi 2025.
This slide is not just for my personal note but also a presentation material

1. My Goal in RubyKaigi 2025
2. A Kaigi Effect -A Field I Have Been Into-
3. The Most Memorable Discussion
4. As Is vs. To Be

Hayato Ishida

May 05, 2025
Tweet

More Decks by Hayato Ishida

Other Decks in Programming

Transcript

  1. Road to Ruby for A Linguistics Nerd 1 Composed By:

    Hayato Ishida Updated On: 05 May 2025 For Japanese version, click here
  2. About Me • Accounts • GitHub: @hayat01sh1da • X: @hayat01sh1da

    • Linkedin: @hayat01sh1da • Speaker Deck: @hayat01sh1da • Docswell: @hayat01sh1da • Occupation: Software Engineer • Things I Am Into • Linguistics • Singing at Karaoke • Listening to Music • Watching Movies • Cat Feeding 2
  3. Licences / Certifications • English • TOEIC® Listening & Reading

    915: Certified on December 2019 • Engineering • Information Security Management: Certified on November 2017 • Applied Information Technology Engineer: Certified on June 2017 • Fundamental Information Technology Engineer: Certified on November 2016 • IT Passport: Certified on April 2016 • Others • Abacus 2nd Class: Certified on June 2002 • Mental Arithmetic 3rd Class: Certified on February 2001 3
  4. Skills • Languages • Japanese: Native Proficiency • English: Full

    professional Proficiency • Development • Ruby: Upper-Intermediate(FW: Ruby on Rails) • Python: Intermediate • TypeScript: Intermediate(Library: React.js) • HTML: Intermediate(Library: Bootstrap) • CSS: Intermediate(Library: Bootstrap) • SQL: Intermediate • Others • Documentation: Advanced 4
  5. Work Experiences 5 1. System Engineer @System Engineering Service Firm

    • Maintenance of Legacy Windows Servers • Management of Corporate Employees’ Accounts • Promotion of Cooperate Security • English Translator for Video Conferences, Vendor Control and Host of International Staff Member 2. Software Engineer @System Development Firm on Contract Basis • Server-Side Development(Ruby on Rails, RSpec) • Front-End Development(HTML / CSS, JavaScript) • Quality Assurance(Native iOS / Android Apps) • Composer of In-House Technical Blog 3. Software Engineer @Chatbot Platform Development Firm • Development and Maintenance of Existing Chatbot Platform(Ruby on Rails, RSpec) • Inspection of an Alternative Chatbot Engine(Ruby, Ruby on Rails, RSpec, Python) 4. Software Engineer @Educational Service Development Division of a Mega Venture Firm • Server-Side Development for Academic Career Supporting Features(Ruby on Rails, RSpec, Minitest, TypeScript + React.js) • Annual Maintenance of Master School Data Migration(Ruby on Rails, RSpec) • Technical Debt Resolution Activities(Ruby, Python, GitHub Actions etc.)
  6. International-Exchange Activities 6 • Activities in University • English Linguistics

    Seminar(Focusing on Mass Media English) • International-Exchange Clubs(The 2nd Year) • International-Exchange Programmes conducted by Japan Cabinet Office(2013 - 2016) • Japanese Linguistics Course(The Final Year) • Overseas Life Experience • Working Holiday in Australia(April 2014 - March 2015) • Language School for 1 month in Sydney • Work for 6 Months in Hamilton Island Resort • Volunteering for 1 Month as Assistant Teacher of Japanese Language at St Ives High School in NSW • Other Activities • Keep Everyday Journal in English (April 2014 - Present) • Sunrise Toastmasters Club(February 2017 - March 2018) • Vital Japan(January 2018 - July 2019, October 2022 - February 2023) • Self Learning and Training of English Language • Participation Ruby-Related Tech Conferences
  7. Prior to Lightening Talk… The chief organiser of RubyKaigi, Mr.

    Akira Matsuda, allows me to use the official logo of RubyKaigi 2025 as the background image. No offence to its copyright. Ref) https://x.com/a_matsuda/status/1918612709169672210 7
  8. Agenda 1. My Goal in RubyKaigi 2025 2. A Kaigi

    Effect -A Field I Have Been Into- 3. The Most Memorable Discussion 4. As Is vs. To Be 5. References 8
  9. 1. My Goal in RubyKaigi 2025 To Find A Breakthrough

    where I Can Contribute to Ruby as A Linguistics Nerd. 10
  10. 1. My Goal in RubyKaigi 2025 11 What brought me

    this goal? • Have a long development experience in Ruby, but turned away from understanding of its complicated and profound lower layers • The fact made me an immature developer who can use Ruby but cannot make the most of Ruby • Strongly realised it was high time to seriously face and learn the ecosystem and lifecycle on lower layers of Ruby • Wondered what I should cut my teeth on, so I decided to find something linguistic which may bring me a huge interest at RubyKaigi 2025
  11. 1. My Goal in RubyKaigi 2025 12 What strategies did

    I take? • Picked up only the speeches focusing on the field I was interested in • Took notes of keywords which did not make sense and/or attracted me, instead of trying to understand all • Started learning the details of the keywords after RubyKaigi 2025 was over
  12. 2. A Kaigi Effect -A Field I Have Been Into-

    14 A Big Interest in Language Processing Ecosystem and Lifecycle • Used not to be interested in parser without any special reasons till this year • Dissecting and Reconstructing Ruby Syntactic Structures presented by @ydah_ san brought me a huge interested in how Ruby source codes are interpreted
  13. Discussion with My Colleagues and Collection of Materials • Turned

    out the ecosystem was more complex than I knew • Would love to know more about details of Ruby language processing system • Discussed what materials are useful to learn Ruby language processing system works with my coworkers who are deeply familiar with the field • Bookmarked the recommended websites and files • I got recommendations on X as well(My best regard to all kind Rubyists) * Having knowledgeable colleagues is 100% absolutely AN EMPLOYEE WELFARE 15 2. A Kaigi Effect -A Field I Have Been Into-
  14. Discussion with My Colleagues and Collection of Materials 16 2.

    A Kaigi Effect -A Field I Have Been Into-
  15. Discussion with My Colleagues and Collection of Materials 17 2.

    A Kaigi Effect -A Field I Have Been Into-
  16. Discussion with My Colleagues and Collection of Materials 18 2.

    A Kaigi Effect -A Field I Have Been Into-
  17. Discussion with My Colleagues and Collection of Materials 19 2.

    A Kaigi Effect -A Field I Have Been Into-
  18. What am I learning by? • LLVM Language Reference Manual

    • PARCING TECHNIQUES -A Practical Guide- • 低レイヤを知りたい人のための C コンパイラ作成入門 • MIPS アーキテクチャ • うさぎでもわかる計算機システム Part10 コンパイラの基礎・分割コンパイルの流れ • うさぎでもわかる計算機システム Part11コンパイラの処理の流れ(字句解析と意味解 析のしくみ) ✓ Ruby Parser 開発日誌(14) - LR parser 完全に理解した ✓ オートマトンと言語理論 学習記 #1: オートマトンとは何か - ✓ オートマトンと言語理論 学習記 #2: 有限オートマトン - ✓ Ruby の中身の予備知識 RubyKaigi の前に知り鯛! ✓ たのしい Ruby の構文解析ツアー ✓ LL 法と LR 法の違いは?調べてみた!-完全版-/Comparing LL and LR parse algorithm -EX Edition- 20 2. A Kaigi Effect -A Field I Have Been Into-
  19. What am I delivering by? • Ruby でつくる、ミニで Ruby なコンパイラ

    • 9cc • lr-parser-101 • Ruby でつくる Ruby ゼロから学びなおすプログラミング言語入門 21 2. A Kaigi Effect -A Field I Have Been Into-
  20. 3. The Most Memorable Discussion with Matz 23 I expetected

    Mr. Matz was so interested in Linguistics that he shared my advent calendar entry on Twitter(Current. X) as mentioned in Life and Death -Natural Languages vs. Programming Languages-. Also, I myself am sure that Ruby is highly conscious of as smooth a writing experience as English mentioned in Recommendation of Comparative Linguistics - Learn Identity of Programming Language from Ruby vs. Python-.
  21. 3. The Most Memorable Discussion with Matz 24 Highly fortunately,

    I was on the same table as Mr. Matz had a seat on at Code Party RubyKaigi 2025 organised by ANDPAD and succeeded in having the following discussion. * H = hayat01sh1da, M = Mr. Matz H) Mr. Matz, you created Ruby learning from Perl, so it has some similarities to that. One of them is Linguistic and Cognitive Considerations. Did you have such a linguistic and cognitive philosophy when you created, grew and released Ruby? M) Mr. Larry Wall, creator of Perl, has a backbone as a linguistics while I majored in Computer Science. Our backgrounds are different from those of each other, but I really value Linguistic and Cognitive Considerations taking care of compatibilities.
  22. 3. The Most Memorable Discussion with Matz 25 H) As

    a Rubyist and someone who majored English linguistics, I believe that Ruby provides a smooth writing experience as English. I feel like writing Ruby is quite similar to writing an English poem. I do understand your philosophy and my hypophysis mentioned Recommendation of Comparative Linguistics -Learn Identity of Programming Language from Ruby vs. Python- is proved to be correct. M) I think highly of not just what method is but what the method is for. For example, let's think about `Enumerable#collect` and `Enumerable#map`. Both of them returns a new array with the results of data processing of every element of the receiver, inside of the block. The former does it for data collection, whereas the latter for data mapping. As you see, this example demonstrates different methods of the same data processing have as many different purposes. H) It reminds me what you mentioned in 107. The Importance of Naming on Japanese Edition of 97 Things Every Programmer Should Know as naming vividly reflects the design.
  23. 3. The Most Memorable Discussion with Matz 26 M) In

    a cognitive term, I made an error in the past. I thought about naming for a method which takes its receiver as the block argument of returns the result of processing it. At first, I named it `Object#yield_self`. It makes sense in order to describe how it works, but I failed to illustrate what it is for. Later on, I created its alias as `Object#then`. Data processing is done once prior to its receiver, and 'then' it focuses on what is done. It makes more sense not just in terms of data processing but linguistic and cognitive consideration. H) Totally make sense. (To compare it to English syntax) Most of methods treats its receiver as the subject, themselves as the predicate verb, its argument(s) as the object(s) and inside of block as the subordinate clause. However, you adopt an adverb 'then' as a method, so your perspective strikes me as incredibly impressive!
  24. 3. The Most Memorable Discussion with Matz 27 * Enumrable#sort

    returns a new array as the return value by rb_ary_sort_bang function through enum_sort function, so a Range object is implicitly converted to an Array object. S V3 O S V3 O S V1 M (and) S = Subject V = Verb O = Object C = Complement M = Modifier V1 = SV V2 = SVC V3 = SVO V4 = SVO1 O2 V5 = SVOC
  25. 3. The Most Memorable Discussion with Matz 28 This discussion

    with Mr. Matz lasted only for 10 minutes or more, but I was honoured to have such a fruitful time. I cannot be more grateful to Mr. Matz as a big fan of Ruby and linguistics.
  26. 4. As Is vs. To Be 30 AsIs • A

    Rubyist who implements web applications and scripts in Ruby ToBe • A Rubyist who knows ecosystems and lifecycles of lower layers of Ruby and optimise performance in web applications and scripts I implement • A Rubyist who understands how Ruby language processing works and commits enhancements • A Rubyist who enriches and optimises linguistic and cognitive design of Ruby
  27. 5. References 32 • RubyKaigi 2025 > Schedule • Last

    Accessed On: 05 May 2025 • LLVM Language Reference Manual • Last Accessed On: 05 May 2025 • PARCING TECHNIQUES -A Practical Guide- • Last Accessed On: 05 May 2025 • 低レイヤを知りたい人のための C コンパイラ作成入門 • Last Accessed On: 05 May 2025 • MIPS アーキテクチャ • Last Accessed On: 05 May 2025
  28. 5. References 33 • うさぎでもわかる計算機システム Part10 コンパイラの基礎・分割コンパ イルの流れ • Last

    Accessed On: 05 May 2025 • うさぎでもわかる計算機システム Part11コンパイラの処理の流れ(字句解 析と意味解析のしくみ) • Last Accessed On: 05 May 2025 • Ruby Parser 開発日誌(14) - LR parser 完全に理解した • Last Accessed On: 05 May 2025 • オートマトンと言語理論 学習記 #1: オートマトンとは何か - • Last Accessed On: 05 May 2025 • オートマトンと言語理論 学習記 #2: 有限オートマトン - • Last Accessed On: 05 May 2025
  29. 5. References 34 • Ruby の中身の予備知識 RubyKaigi の前に知り鯛! • Last

    Accessed On: 05 May 2025 • たのしい Ruby の構文解析ツアー • Last Accessed On: 05 May 2025 • LL 法と LR 法の違いは?調べてみた!-完全版-/Comparing LL and LR parse algorithm -EX Edition- • Last Accessed On: 05 May 2025 • 9cc • Last Accessed On: 05 May 2025 • lr-parser-101 • Last Accessed On: 05 May 2025
  30. 5. References 35 • Yusuke Endo, Ruby でつくる Ruby ゼロから学びなおすプログラミング言語

    入門, Tokyo, 2017 • APIdoc > Ruby • Last Accessed On: 05 May 2025 • Perl 6 Design Philosophy • Last Accessed On: 05 May 2025 • 97 Things Every Programmer Should Know • Last Accessed On: 05 May 2025 • プログラマが知るべき97のこと • Last Accessed On: 05 May 2025