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
突如見知らぬ言語に出会ってしまった俺達は
Search
moznion
July 03, 2016
Technology
6
8.4k
突如見知らぬ言語に出会ってしまった俺達は
YAPC Hachioji 2016の資料です
moznion
July 03, 2016
Tweet
Share
More Decks by moznion
See All by moznion
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
4.7k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
200
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
10
16k
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.6k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
1k
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
79
AWS上に構築する メンテ容易なElasticsearch System / Maintainable Elasticsearch system on AWS
moznion
2
3.9k
PROXY Protocol aware Proxy Server on Node.js
moznion
2
2.5k
Perl meets AWS Lambda
moznion
0
4.7k
Other Decks in Technology
See All in Technology
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
200
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.7k
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
140
Culture Deck
optfit
0
460
生成 AI プロダクトを育てる技術 〜データ品質向上による継続的な価値創出の実践〜
icoxfog417
PRO
5
1.8k
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
220
Classmethod AI Talks(CATs) #17 司会進行スライド(2025.02.19) / classmethod-ai-talks-aka-cats_moderator-slides_vol17_2025-02-19
shinyaa31
0
160
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
27
13k
利用終了したドメイン名の最強終活〜観測環境を育てて、分析・供養している件〜 / The Ultimate End-of-Life Preparation for Discontinued Domain Names
nttcom
2
300
速くて安いWebサイトを作る
nishiharatsubasa
14
15k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Done Done
chrislema
182
16k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Producing Creativity
orderedlist
PRO
344
39k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Gamification - CAS2011
davidbonilla
80
5.1k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Transcript
ಥݟΒ͵ݴޠʹ ग़ձͬͯ͠·ͬͨԶୡ @moznion
͜Μʹͪ
@moznion
͜͜Ͱ࣭
ࠓೖ͔ͬͯΒ৽͍͠ݴޠ ͬͯΔͧʙʙʙʙͬͯਓ
ࠓೖ͔ͬͯΒ(झຯͰ) ৽͍͠ݴޠ ͬͯΔͧʙʙʙʙͬͯਓ
ԹײΘ͔Γ·ͨ͠
ಥݟΒ͵ݴޠʹ ग़ձͬͯ͠·ͬͨԶୡ @moznion
@moznion
ࠓճ͢͜ͱ ·ͨͦͷλʔήοτ
ϓϩάϥϛϯά ݴޠͷֶͼํʹ͍ͭͯ ݸਓతʹࢥ͏͜ͱ ·͍ͨͬͯΔ͜ͱͷհ
ϓϩάϥϛϯά ॳֶऀͷਓ
͋Δ͍ποίϛΛ ೖΕ͍ͨਓ
dan the question OK!
ࠓճ͞ͳ͍͜ͱ
໊: ҟৗͳྗ
ຊ
ͷલʹ……
ͷલʹ…… ࠓ͙͢ΫϦοΫ
ͳͥ৽͍͠ݴޠΛ Δͷ͔ʁ
None
ຖগͳ͘ͱҰͭͷݴޠΛֶश͢Δ: ݴޠ͕ҟͳΔͱɼಉ͡ Ͱҧͬͨղܾํ๏͕࠾༻͞Ε·͢ɽͭ·Γɼ͍͔ͭ͘ͷ ҟͳͬͨΞϓϩʔνΛֶश͢Δ͜ͱʹΑΓɼ෯͍ࢥߟ͕Ͱ͖ ΔΑ͏ʹͳΔΘ͚Ͱ͢ɽ͜ΕʹΑͬͯɼ͵͔ΔΈʹ·ͬͯ͠ ·͏ࣄଶΛආ͚Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΓ·͢ɽ
ͳΔ΄Ͳ
Ͳ͍ͬ͜ཧ༝ͳͲແ͘ Δ߹/Β͞ΕΔ ߹͋Δ
৭ʑ͋Γ·͢ ৭ʑͬͯΈ·͠ΐ͏
ͱͳʹ͔……
ݟ·͢
Erlang: rabbitmq-server/src/rabbit_router.erl
Clojure: ring/ring-core/src/ring/middleware/resource.clj
Perl: Plack/lib/Plack/Request.pm
C: h2o/src/main.c
Ͳ͏Ͱ͔͢ (৭ʑͳײ͕͋Γ·͢)
ݟ֮͑ͷ͋Δͷ ͋·Γා͘ͳ͍
ڪා = ແ
Δͱ͍͏͜ͱ ڪාΛࠀ͢Δ͜ͱ
ڪාΛࠀͯ͠ࢀΓ ·͠ΐ͏
ڪාΛࠀ͍ͯ͘͠ͱ ͲΜͲΜݴޠΛͬͯ ͍͚Δ
ݟΒ͵ݴޠΛֶͿ࣌Ͳ͏͢ Δ͔
߹Λߟ͑·͠ΐ͏
ۚ͋Δ ࣌ؒ͋Δ ۚ͋Δ ࣌ؒͳ͍ ۚͳ͍ ࣌ؒ͋Δ ۚͳ͍ ࣌ؒͳ͍ ۚ ࣌ؒ
ۚ͋Δ ࣌ؒ͋Δ
ຊΛಡΉͷָ ࣗવͱମܥֶ͚ͮͯͿ ͜ͱ͕Ͱ͖Δ
ͨͩಡΉ͚ͩͰແӹ खΛಈ͔͢ͷ͕؊ਛ
खΛಈ͔͞ͳ͍ܥͷ ຊ୯ͳΔಡΈͳͷ Ͱ͋Μ·͑ͳ͍
ͳΜ͔ίϐϖͯ͠ ಈ͔ͤΔిࢠ൛ศར
ͨͩ͠ͳΔ͘৽͠ ͍ຊΛ͍·͠ΐ͏
ۚͳ͍ ࣌ؒ͋Δ
࠷ۙྑ͍࣌ʂ
ͪΌΜͱͨ͠ݴޠͩͱ νϡʔτϦΞϧ͕ॆ࣮ ͯ͠Δ
e.g. A Tour of Go https://tour.golang.org/ The Rust Programming Language
https://doc.rust-lang.org/book/ README.html
Πϯλʔωοτ্ʹ αʔυύʔςΟͳ ใ͕๛ʹ͋Δ
͜͜Ͱ ikura ͞Μͷ ϗʔϜϖʔδͷਤ
None
୯७ʹίϐϖͯ͠ࡁ· ͤΔͷΊ·͠ΐ͏
ෳͷใΛরΒ͠ ߹Θͤ·͠ΐ͏
ՄೳͳݶΓ৽͍͠ ใιʔεʹ ͨΓ·͠ΐ͏
܁Γฦ͠ʹͳΓ·͕͢ खΛಈ͔͠·͠ΐ͏
ಈըίϯςϯπͳͲ ྑͦ͞͏
e.g. coursera https://www.coursera.org/ υοτΠϯετʔϧ http://dotinstall.com/
) > ΞυόΠε͕1ݸ͋ͬͯɼڭࡐ͕ಈըͳ ͷͰɼ෮श͠ʹ͍͘ɽ͜Ε෮शͰ͖ͳ͍͠ ͲΜͲΜΕ͍ͯ͘ͷͰͬͯؾ͍ͯɼ 3ि͘Β͍͔Βɼಈըݟͳ͕ΒϝϞͱͬ ͓ͯ͘Α͏ʹͨ͠Βཱͭײ͡ʹͳͬͨɽ hitode909ͷه/Courseraͷػցֶशͷίʔεͨ͠ http://blog.sushi.money/entry/2016/04/09/101854
ۚ͋Δ ࣌ؒͳ͍
None
ۚͰͲ͏ʹͳΒΜ ͖͋ΒΊΖʂʂʂʂʂ
ֶͿࣄ͕తͰͳ͍ ߹
ਓޏͬͨ΄͏͕ྑ͍ Ͱ͢Α
ͱ͍͏Θ͚Ͱ ࣗવͱۚͳ͍ϧʔτ Ҡߦ͠·͢
ۚͳ͍ ࣌ؒͳ͍
ͳΓ;Γߏ͍ͬͯΒΕͳ͍ ਓʹ㘤͖·͠ΐ͏
ਓૣ͍
͜͏͍͏࣌ʹ ίϛϡχςΟʹ ଐͯ͠Δͱྑ͍Ͱ͢ΑͶ
ೖͬͯͳ͍߹ ίϛϡχςΟʹ ೖΓ·͠ΐ͏
͍ͣΕͷ߹Ͱ ݴ͑Δ͜ͱ
ͦͷݴޠಛ༗ͷػೳ ੈք؍Λ֮͑Δ͜ͱʹ ྗ͢Δ
ྫ͑ go ͱ͔ clojure ͳΒ ฒྻϓϩάϥϜͷٕ๏ Scala ͱ͔ Haskell ͱ͔ͳΒڧྗͳܕγε
ςϜΛجௐͱͨ͠വϓϩάϥϜͷٕ๏ Java C# ͳΒΦϒδΣΫτࢦͷٕ๏ ͳͲͳͲ
৭ʑͳੈք؍Λͬ ͓ͯ͘ͱࣅͨػೳʹ ग़ձͬͨ࣌ʹͬͨ ͔ͿΕΔ
ڪා͠ͳ͘ͳΔ
REPLͰษڧ͢Δͷ ΛΊΔ
ϓϩμΫγϣϯͰ REPLΘΜ (ͪΖΜ։ൃதͷಈ࡞֬ೝ ͱ͔ͰΊͬͪΌ͏͚Ͳ)
ͳΜ͔ແཧ
γϯλοΫεϋΠϥΠτ ͕ແ͍
࠶ݱͤ͞ϏϦςΟ ͷࠩ
ίʔυͷશΛ ͔ͭΈʹ͍͘ งғؾ͕Θ͔Βͳ͍
IDE͍·͠ΐ͏
·͋·ౖ͋Βͳ͍Ͱ
ੲVimҰຊͰྑ͍ͱ ࢥͬͯͨ ͓ΕΕΔΜͩͱ ࢥͬͯͨ
ੲ˓̋ (͜͜ʹ͖ͳΤ σΟλͷ໊લΛೖΕ·͠ΐ ͏)ҰຊͰྑ͍ͱࢥͬͯͨ ͓ΕΕΔΜͩͱࢥͬͯͨ
ےਸഈ (Կಉ͡ίʔυΛ ॻ͘ͱ֮͑Δͧ) ͷ࣌
Կॻ͘ඞཁ͋Δ ίʔυΛॻ͘ඞཁ ແ͍ʂʂʂʂʂ IDEʹॻ͔ͤΖʂʂ
IDE͕ਖ਼͍͠ίʔυ ʹಋ͍ͯ͘ΕΔͷ͕ ॏཁ
ؒҧ͑ͨίʔυΛԿว Կวॻ͘ͷѱ ਖ਼͍͠ίʔυΛॻ͍ͨ ΄͏͕ྗʹͳΔ
ຊ࣭Λֶͼ͍͢
ͱ͍͑ ·͋VimͰྑ͍ͱ ࢥ͍·͢
IDEͳ͍ݴޠͰେৎ (Padre͞Μ͓ݩؾͰ͔͢)
ਖ਼͍͠ίʔυΛॻ͘ࣄ Λॿ͚ͯ͘ΔπʔϧΛ ͏
੩తղੳ (Perl::Lint͞Μ͓ݩؾͰ͔͢)
ਖ਼͍͠ίʔυελΠ ϧʹಋ͍ͯ͘ΕΔ gofmt, check style, code sniffer and etc
όάͷগͳ͍ίʔυ ʹಋ͍ͯ͘ΕΔ golint, findbugs and etc
͜ΕΒ྆ऀ݉Ͷ͍ͯΔ ߹͋Δ perl-critic, rubocop, js-[hl]int and etc
͍ͬͯ͘͏ͪʹਖ਼͍͠ (ਖ਼ ͦ͏) ͳίʔυ͕Θ͔ͬͯ͘ Δ, ॻ͚ΔΑ͏ʹͳͬͯ͘Δ
ΤσΟλʹΈࠐΜͰɼϦ ΞϧλΠϜతʹૉૣ͍ϑΟʔ υόοΫΛಘΔͱͳ͓Α͍
ਖ਼͍͠ίʔυΛॻ͘ࣄΛ ॿ͚ͯ͘ΔπʔϧΛ࡞Δ ͘͠ॲཧܥΛ࡞Δ
e.g. Perl࡞Λܾҙ ʮਂ͘ཧղ͍ͨ͠ͳΒ࡞Δʯͱ͍͏ Ϟο τʔͷͱɺֶͿͳΒ࡞ֶͬͯͼ͍ͨʂ Ͳ͏ͤͳΒɺεΫϦϓτݴޠք࠷ͷPerlΛ ࡞Γ͍ͨ Perlͱग़ձ͍ɺPerlΛ࡞Δ/@goccy http://www.slideshare.net/goccy/perlperl
ͦ͏͍͏͜ͱΛΔͱཧղ ͕ਂ·Δͱ͍͏߹͕ ͋Γ·͢ (Perl::Lint ͞Μ͓ݩؾͰ͔͢)
৽͍͠ݴޠΛΔͱ͖ ʹඞͣॻ͘ͷΛ ܾΊΔ
ಉ͡ͷΛҧ͏ݴޠͰͨ͘ ͞Μॻ͍ͯΈΔ
ಉ͡ͷΛॻ͘͜ͱͰݴޠ ͷࠩҟ͕ݟ͘͢ͳΔ ಘखෆಘखΛ͔ͭΊΔΑ͏ ʹͳΔ
ΰʔϧ໌֬ʹఆ·Δ ޭମݧʹܨ͕Δ
yes ίϚϯυΫϩʔϯͱ͔ ख࢝Ίʹ؆୯ͰΓ͢ ͍
ͭ·Βͳ͍ʁ
Web Application Framework ͱ͔ॻ͘ͱ໘ന͍
template engine ໘ന͍Ͱ ͢Ͷ
ίϛϡχέʔγϣϯ ͠·͠ΐ͏
̍ਓͰΔͱ٧·Δ
͍
·ͱΊ
ͱʹ͔͘ॻ͖·͠ΐ͏
Q?