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
4
900
マイ隙間家具OSSたちのご紹介
karupanerura
2
260
Mustache Template 話 2024
karupanerura
0
17
Javaの実装をPerlでテストする
karupanerura
0
1.1k
Go Generics Overview
karupanerura
0
1.3k
Japan.pm 2021 開催まで至る道
karupanerura
0
2.1k
Perl MongersのためのAWS_CDK入門
karupanerura
0
130
Webシステムのパフォーマンス・チューニング
karupanerura
2
830
WebシステムのパフォーマンスとGo
karupanerura
3
1.7k
Other Decks in Programming
See All in Programming
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
190
OpenTelemetry + LLM = OpenLLMetry!?
yunosukey
2
200
最速Green Tea 🍵 Garbage Collector
kuro_kurorrr
1
160
Design Pressure
hynek
0
190
Носок на сок
bo0om
0
1.5k
“技術カンファレンスで何か変わる?” ──RubyKaigi後の自分とチームを振り返る
ssagara00
0
170
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
0
140
ruby.wasmとWebSocketで遊ぼう!
lnit
0
120
Designing Your Organization's Test Pyramid ( #scrumniigata )
teyamagu
PRO
5
1.7k
TypeScript Language Service Plugin で CSS Modules の開発体験を改善する
mizdra
PRO
1
290
In geheimer Mission: AI Agents entwickeln
joergneumann
0
130
Global Azure 2025 @ Kansai / Hyperlight
kosmosebi
0
170
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Pragmatic Product Professional
lauravandoore
33
6.6k
Automating Front-end Workflow
addyosmani
1370
200k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.7k
Done Done
chrislema
184
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Gamification - CAS2011
davidbonilla
81
5.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
14
860
Six Lessons from altMBA
skipperchong
28
3.8k
Designing Experiences People Love
moore
142
24k
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Έ͍ͨͳͰΦʔϓϯʹฉ͍ͯΈΔͷྑ͍ • ීஈίϛϡχέʔγϣϯ͠ͳ͍ਓ͕࣮͑Λ͍ͬͯΔ͜ͱ
ͦΕͰ͕͑ग़ͳ͍͜ͱ͋Δ • Ծઆཱ͕ͯΒΕΔ͚ͩͰೲಘײ͋Δ͍ͯͲ͋Δͣ • ͦ͜ʹਊΛ࣋ͯΕͦͷपΓͷίʔυʹҰ؏ੑΛग़ͤΔ
ਖ਼໘͔Β͖߹ͬͯ ࣗͷͳ͔ʹ͑Λ࣋ͭ
·ͱΊ
·ͱΊ • ৭ʑͳݴޠΛֶͿͱ͖ʹଟ͘ͷ߹ͳʹ͔͠Βڻ͖Λ͏ • ଞͷݴޠʹڻ͖Λײ͡Δ͜ͱ͍͜͠ͱͰͳ͍ • ڻ͖ͱͲ͏͖߹͏͔ͰͦΕΛྐʹͰ͖Δ͔͕มΘΔ • ࣗͷͳ͔ʹ͑Λ࣋ͯΕڻ͖͕͋ͬͯೲಘͰ͖Δ •
ʮڷʹೖͬͯڷʹै͑ʯ • ʢ܁Γฦ͠Ͱ͕͢ɺ͋͘·ͰݸਓͷݟղͰ͢ʣ
Ұ۟
ڻ͖ʹڻ͔ͳ͍Ͱྑ͘Ͷ