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
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
9
13k
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.3k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
890
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
60
AWS上に構築する メンテ容易なElasticsearch System / Maintainable Elasticsearch system on AWS
moznion
2
3.9k
PROXY Protocol aware Proxy Server on Node.js
moznion
2
2.4k
Perl meets AWS Lambda
moznion
0
4.7k
ソフトウェア開発における 「設計」と「パフォーマンス」の相互作用 / Interaction Between Design and Performance on Software Development
moznion
12
6.9k
Javaカードの世界 / The world of Java Card
moznion
9
13k
Other Decks in Technology
See All in Technology
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
1
1.1k
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
200
Amazon CloudWatch Network Monitor のススメ
yuki_ink
0
160
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
460
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
280
スクラム成熟度セルフチェックツールを作って得た学びとその活用法
coincheck_recruit
1
110
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
0
1.8k
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
510
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
370
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
0
180
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
290
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
370
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
What's new in Ruby 2.0
geeforr
343
31k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Faster Mobile Websites
deanohume
305
30k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Typedesign – Prime Four
hannesfritz
40
2.4k
RailsConf 2023
tenderlove
29
900
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
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?