Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
1つの言語を原点に色々な言語を学ぶということ
Search
karupanerura
June 16, 2023
Programming
4
2.9k
1つの言語を原点に色々な言語を学ぶということ
Kichijoji.pm #33 Lightning Talks
karupanerura
June 16, 2023
Tweet
Share
More Decks by karupanerura
See All by karupanerura
Use Perl as Better Shell Script
karupanerura
0
720
GoでParserを書く
karupanerura
4
920
マイ隙間家具OSSたちのご紹介
karupanerura
2
260
Mustache Template 話 2024
karupanerura
0
27
Javaの実装をPerlでテストする
karupanerura
0
1.2k
Go Generics Overview
karupanerura
0
1.3k
Japan.pm 2021 開催まで至る道
karupanerura
0
2.1k
Perl MongersのためのAWS_CDK入門
karupanerura
0
140
Webシステムのパフォーマンス・チューニング
karupanerura
2
840
Other Decks in Programming
See All in Programming
リバースエンジニアリング新時代へ! GhidraとClaude DesktopをMCPで繋ぐ/findy202507
tkmru
3
960
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
0
330
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
23
9.6k
What's new in AppKit on macOS 26
1024jp
0
150
生成AI時代のコンポーネントライブラリの作り方
touyou
1
290
Porting a visionOS App to Android XR
akkeylab
0
680
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
13k
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
200
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
140
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
470
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
660
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Unsuck your backbone
ammeep
671
58k
A Tale of Four Properties
chriscoyier
160
23k
A designer walks into a library…
pauljervisheath
207
24k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Pragmatic Product Professional
lauravandoore
35
6.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Site-Speed That Sticks
csswizardry
10
700
Transcript
1ͭͷݴޠΛݪʹ ৭ʑͳݴޠΛֶͿͱ͍͏͜ͱ Kichijoji.pm #33 Lightning Talks id:karupanerura
@karupanerura • DeNA, Co., LTD. • Software Engineer • Perl/Go/Java/TypeScript/etc..
• Japan Perl Association • Chief Director • Age: 0x20
ݪ
(0, 0)
ref. https://www.weblio.jp/content/%E5%8E%9F%E7%82%B9
ref. https://www.weblio.jp/content/%E5%8E%9F%E7%82%B9
(ϓϩάϥϛϯάͷ)ݪ
ࣗͷϓϩάϥϛϯάวྺ • (HTML) • N88ޓBASIC • Perl • C/C++ •
(CSS)ɺJavaScriptɺXSɺJavaɺSwiftɺKotlinɺelisp • BashɺCrystalɺGoɺRubyɺPythonɺTypeScript
ݴޠΛֶͿͱ͖ʹߟ͑Δ͜ͱ
※ݸਓͷݟղͰ͢
ͦΕͲΜͳݴޠʁ • Ͳ͏ͬͯ։ൃڥΛͭ͘Δʁ • Ͳ͏ͬͯίʔυΛॻ͘ʁ • Ͳ͏࣮ͬͯߦ͢Δʁ • Ͳ͏ͬͯςετ͢Δʁ •
Ͳ͏ͬͯϦϦʔε͢Δʁ ͍Ζ͍Ζߟ͑Δ
ॳΊͯͷϓϩάϥϛϯάͷ߹
ͦΕͲΜͳݴޠʁ • Ͳ͏ͬͯ։ൃڥΛͭ͘Δʁ → ʙͦ͏ͳΜͩ • Ͳ͏ͬͯίʔυΛॻ͘ʁ → ʙͦ͏ͳΜͩ •
Ͳ͏࣮ͬͯߦ͢Δʁ → ʙͦ͏ͳΜͩ • Ͳ͏ͬͯςετ͢Δʁ → ʙͦ͏ͳΜͩ • Ͳ͏ͬͯϦϦʔε͢Δʁ → ʙͦ͏ͳΜͩ
😄
2ͭΊҎ߱ͷ߹
ͦΕͲΜͳݴޠʁ • Ͳ͏ͬͯ։ൃڥΛͭ͘Δʁ → ʙͦ͏ͳΜͩ • Ͳ͏ͬͯίʔυΛॻ͘ʁ → ͑ɺͦ͏ͳͷʁʢڻ͖ʣ •
Ͳ͏࣮ͬͯߦ͢Δʁ → ʙͦ͏ͳΜͩ • Ͳ͏ͬͯςετ͢Δʁ → ʙͦ͏ͳΜͩ • Ͳ͏ͬͯϦϦʔε͢Δʁ → ʙͦ͏ͳΜͩ
😕
Ͳ͏ͯ͠ʁ
ͳͥଞͷݴޠʹରͯ͠ڻ͖͕ൃੜ͢Δͷ͔(1) • ϓϩάϥϛϯάͷײ֮ = ॳΊͯ৮ͬͨݴޠͷײ֮ ʹͳΔ͔Β • ͭ·Γɺ࠷ॳʹ৮ͬͨϓϩάϥϛϯάݴޠʹݪΛஔ͍ͯ৮Ε͍ͯΔ • ͦ͏͍͏ײ֮Ͱ৮Δ͜ͱࣗવ
• ͦͷ΄͏͕Ұൠʹֶशޮߴ͍ͣ
ͳͥଞͷݴޠʹରͯ͠ڻ͖͕ൃੜ͢Δͷ͔(2) • ॳΊͯ৮ͬͨݴޠͱڞ௨͍ͯ͠ͳ͍෦ʹҧײ͕ͰΔ • ڞ௨͍ͯ͠Δ෦͕ଟ͚Εଟ͍΄Ͳҧײ͕ڧ͍ͣ • ʮ͜ͷΜಉ͡ͳͷʹ͜ͷΜҧ͏ͷ͔ʂʁʯ • ٯʹɺશ෦͕શ෦ҧ͏ͱڻ͖͔͠ͳ͍ͷͰٯʹҧײͳ͍ •
͠͞ݏѱײͱͯͦ͠ΕΛײ͡Δ͜ͱ͋Γͦ͏
ଟ͘ͷ߹େͨ͠ڻ͖Ͱͳ͍ • ݴޠͷઃܭࢥ͕͍ۙ߹ɺ͋·Γڻ͖গͳ͍ • ͋Δ͍ɺϙδςΟϒͳڻ͖ଟ͍ͣ • มɺؔɺΫϥεɺͱ͍ͬͨ֓೦ଟ͘ͷݴޠͰڞ௨͍ͯ͠Δ • ଟ͘ͷݴޠڞ௨ͷઌΛ͍࣋ͬͯΔ͜ͱ͕ଟ͍ͷͰڞ௨ଟ͍ •
ҧ͍ࡉ෦ʹݱΕΔ • ϝϞϦཧɺ֓೦ͷࡉ͔ͳҧ͍ɺϥΠϑαΠΫϧɺͳͲͳͲ
ݴޠͷઃܭࢥ͕ԕ͍ͱڻ͖͕ଟ͍/େ͖͍ • ಈతܕ͚ݴޠˠ੩తܕ͚ݴޠ • ͜Μͳͱ͜Ζ໌ࣔతʹܕΛॻ͔ͳ͍ͱಈ͔ͳ͍ͷʁ • ΦϒδΣΫτࢦݴޠˠؔܕݴޠ • Ϟφυʁʁʁʁʁʁʁ •
ߴϨϕϧͷݴޠˠϨϕϧͷݴޠ • ϝϞϦΞϥΠϝϯτʁʁʁʁϙΠϯλʁʁʁʁ
۩ମྫ
ڻ͖ͷ۩ମྫ: Perl (autovivi fi cation) • $hash{a}{b}{c}Λࢀরͨ͠ͱ͖ʹ$hash{a}{b} = {}͕҉తʹߦΘΕΔ •
ྑ͍ͷ͔ѱ͍ͷ͔ɺͱ͍͏அ࣮͍͠ • ͨͱ͑ϫϯϥΠφʔͰศརɺͱ͔ͦ͏͍͏ଆ໘͕͋Δ • sedawkΈ͍ͨͳͭͰߏΛఆٛͨ͘͠ͳ͍ • ٯʹɺPerlͰ͜Εʹ׳ΕͯΔͱଞͷݴޠͰ໘͘͞͞Λײ͡Δ(?)
ڻ͖ͷ۩ମྫ: JavaScript (varม) • ؔϨϕϧͷείʔϓͰఆٛ͞ΕΔม • ifforͳͲͰϒϩοΫΛͬͯͦͷ֎ଆʹӨڹΛ༩͑Δ • ͨͱ͑ɺforϧʔϓͷͨΊʹఆٛͨ͠ม͕֎ଆͰੜ͖͍ͯΔ •
ݱࡏϒϩοΫϨϕϧͷείʔϓͰఆٛͰ͖Δconst/let͕͋Δ • ͦΕΒΛ͔ͭ͑ྑ͍
ڻ͖ͷ۩ମྫ: PHP (ྻ) • ʮPHPͷྻɺ࣮ࡍʹॱ൪͚ΒΕͨϚοϓͰ͢ɻʯby php.net • ྻͷఆٛΛarrayؔͰߦ͏
ͳͥڻ͖͕ൃੜ͢Δͷ͔ʁ ݪͱͳͬͨݴޠɺ͜Ε·Ͱͷܦݧ͔Β ༧Ͱ͖ͳ͔༷͕͔ͬͨ͋ͬͨΒ → ͲΕ͘Β͍ڻ͔͘ܦݧʹґΔ
ڻ͖ʹରͯ͠ͷ͖߹͍ํ
ڻ͖൱ఆతͳݟํΛͨΒ͢ • ͨͱ͑ʮPerl͜Θ……ۙدΒΜͱ͜……ʯͬͯͳΔ • ࣮ࡍɺWeb։ൃͰੵۃతʹ࠾༻͢Δཧ༝૬ରతʹݮΓͭͭ͋Δ • ҰํͰɺศརʹ͑Δ໘·ͩ·ͩ͋ΔʢϫϯϥΠφʔͳͲʣ • ͔ͤͬ͘ʹ͚ͭͨʢʹ͚ͭ͡ΊͨʣεΩϧΛࣗΒख์͢ •
͍ͬͨͳ͍
ڻ͖൱ఆతͳݟํΛͨΒ͢ • ͨͱ͑ʮPerl͜Θ……ۙدΒΜͱ͜……ʯͬͯͳΔ • ࣮ࡍɺWeb։ൃͰੵۃతʹ࠾༻͢Δཧ༝૬ରతʹݮΓͭͭ͋Δ • ҰํͰɺศརʹ͑Δ໘·ͩ·ͩ͋ΔʢϫϯϥΠφʔͳͲʣ • ͔ͤͬ͘ʹ͚ͭͨʢʹ͚ͭ͡ΊͨʣεΩϧΛࣗΒख์͢ •
͍ͬͨͳ͍ → ڻ͖ʹର͢Δ͖߹͍ํ͕ॏཁ
͖߹͍ํΛߟ͑Δ
ͳͥࣗڻ͍ͨͷͩΖ͏͔ʁ • ͜Ε͓ͦΒ͘͜ͷݴޠΛීஈ৮͍ͬͯΔͻͱ͔Β͢Εৗ • ͕ࣗڻ͖Λײ͡Δͷͳ͔ͥʁ • ͨ·ͨ·͕ࣗ৮ͬͨ͜Ε·Ͱͷݴޠʹͦ͏͍͏༷͕ͳ͔ͬͨʁ • ͜ͷݴޠ͕Ή͠Ζಛघʁ •
͍ํ͏໘͕ؒҧ͍ͬͯΔʁ
ͳͥ͜ͷ༷ʹͳ͍ͬͯΔͷ͔ʁ • ͜Ε·Ͱ৮ͬͨݴޠͰͳͥ͜ͷ༷ʹͳ͍ͬͯͳ͍ͷ͔ʁ • ಉ͜͡ͱΛଞͷݴޠͰΖ͏ͱͨ͠ͱ͖Ͳ͏ͳ͍ͬͯͨͩΖ͏͔ʁ • ͜ͷ༷Ͱ͏Ε͍͠ͷͲΜͳ໘͔ʁ • ͏Ε͘͠ͳ͍ͷͲΜͳ໘͔ʁ
͍Ζ͍Ζࣗपғʹ͍͔͚ͯΈΔͱ • ݟ͕ஷ·Δ • ϓϩάϥϛϯάݴޠΛ࡞Δਓʑͱͯݡ͍ͷͰϛεগͳ͍ • ͳʹ͔͠Βཧ༝Λͬͯͦ͏ͳ͍ͬͯΔ͜ͱ͕΄ͱΜͲ • ࢹ͕͕Δ •
͜͏͍͏બࢶ͋Δɺͱ͍͏͜ͱΛΕΔͱखࡳ͕૿͑Δ
͕͑ग़ͳ͍͜ͱ͋Δ • ϚδͰϛε༷͕ͬͨͦͷ··ʹͳͬͯ͠·ͬͨͱ͍͏ͷ͋Δ • (ྫ) Ruby: ಛघมΛPerlΛࢀߟʹ࠾༻ͨ͠ͷࣦഊͩͬͨ • ͦ͏͍͏߹େସࡦ͕༻ҙ͞Ε͍ͯΔ •
TwitterKichijoji.pmΈ͍ͨͳͰΦʔϓϯʹฉ͍ͯΈΔͷྑ͍ • ීஈίϛϡχέʔγϣϯ͠ͳ͍ਓ͕࣮͑Λ͍ͬͯΔ͜ͱ
ͦΕͰ͕͑ग़ͳ͍͜ͱ͋Δ • Ծઆཱ͕ͯΒΕΔ͚ͩͰೲಘײ͋Δ͍ͯͲ͋Δͣ • ͦ͜ʹਊΛ࣋ͯΕͦͷपΓͷίʔυʹҰ؏ੑΛग़ͤΔ
ਖ਼໘͔Β͖߹ͬͯ ࣗͷͳ͔ʹ͑Λ࣋ͭ
·ͱΊ
·ͱΊ • ৭ʑͳݴޠΛֶͿͱ͖ʹଟ͘ͷ߹ͳʹ͔͠Βڻ͖Λ͏ • ଞͷݴޠʹڻ͖Λײ͡Δ͜ͱ͍͜͠ͱͰͳ͍ • ڻ͖ͱͲ͏͖߹͏͔ͰͦΕΛྐʹͰ͖Δ͔͕มΘΔ • ࣗͷͳ͔ʹ͑Λ࣋ͯΕڻ͖͕͋ͬͯೲಘͰ͖Δ •
ʮڷʹೖͬͯڷʹै͑ʯ • ʢ܁Γฦ͠Ͱ͕͢ɺ͋͘·ͰݸਓͷݟղͰ͢ʣ
Ұ۟
ڻ͖ʹڻ͔ͳ͍Ͱྑ͘Ͷ