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.8k
1つの言語を原点に色々な言語を学ぶということ
Kichijoji.pm #33 Lightning Talks
karupanerura
June 16, 2023
Tweet
Share
More Decks by karupanerura
See All by karupanerura
GoでParserを書く
karupanerura
5
840
マイ隙間家具OSSたちのご紹介
karupanerura
2
240
Mustache Template 話 2024
karupanerura
0
8
Javaの実装をPerlでテストする
karupanerura
0
1.1k
Go Generics Overview
karupanerura
0
1.3k
Japan.pm 2021 開催まで至る道
karupanerura
0
2k
Perl MongersのためのAWS_CDK入門
karupanerura
0
110
Webシステムのパフォーマンス・チューニング
karupanerura
2
800
WebシステムのパフォーマンスとGo
karupanerura
3
1.6k
Other Decks in Programming
See All in Programming
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
47
17k
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
390
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
740
Writing documentation can be fun with plugin system
okuramasafumi
0
120
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
320
Software Architecture
hschwentner
6
2.1k
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
750
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
740
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
480
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
250
AWS Organizations で実現する、 マルチ AWS アカウントのルートユーザー管理からの脱却
atpons
0
150
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
10
3.6k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
22k
Faster Mobile Websites
deanohume
306
31k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
960
Practical Orchestrator
shlominoach
186
10k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building Your Own Lightsaber
phodgson
104
6.2k
Become a Pro
speakerdeck
PRO
26
5.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
330
Navigating Team Friction
lara
183
15k
Bash Introduction
62gerente
611
210k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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Έ͍ͨͳͰΦʔϓϯʹฉ͍ͯΈΔͷྑ͍ • ීஈίϛϡχέʔγϣϯ͠ͳ͍ਓ͕࣮͑Λ͍ͬͯΔ͜ͱ
ͦΕͰ͕͑ग़ͳ͍͜ͱ͋Δ • Ծઆཱ͕ͯΒΕΔ͚ͩͰೲಘײ͋Δ͍ͯͲ͋Δͣ • ͦ͜ʹਊΛ࣋ͯΕͦͷपΓͷίʔυʹҰ؏ੑΛग़ͤΔ
ਖ਼໘͔Β͖߹ͬͯ ࣗͷͳ͔ʹ͑Λ࣋ͭ
·ͱΊ
·ͱΊ • ৭ʑͳݴޠΛֶͿͱ͖ʹଟ͘ͷ߹ͳʹ͔͠Βڻ͖Λ͏ • ଞͷݴޠʹڻ͖Λײ͡Δ͜ͱ͍͜͠ͱͰͳ͍ • ڻ͖ͱͲ͏͖߹͏͔ͰͦΕΛྐʹͰ͖Δ͔͕มΘΔ • ࣗͷͳ͔ʹ͑Λ࣋ͯΕڻ͖͕͋ͬͯೲಘͰ͖Δ •
ʮڷʹೖͬͯڷʹै͑ʯ • ʢ܁Γฦ͠Ͱ͕͢ɺ͋͘·ͰݸਓͷݟղͰ͢ʣ
Ұ۟
ڻ͖ʹڻ͔ͳ͍Ͱྑ͘Ͷ