Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
どうしてこうなった? Node.jsとio.jsの分裂と統合の行方。これからどう進化していくのか?
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yosuke Furukawa
PRO
August 22, 2015
Programming
36k
47
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
どうしてこうなった? Node.jsとio.jsの分裂と統合の行方。これからどう進化していくのか?
Yosuke Furukawa
PRO
August 22, 2015
More Decks by Yosuke Furukawa
See All by Yosuke Furukawa
Webの地図
yosuke_furukawa
PRO
6
5.2k
XHTMLが残したもの
yosuke_furukawa
PRO
2
940
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
450
デザインシステムが必須の時代に
yosuke_furukawa
PRO
2
320
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
10
5.4k
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
1
4.9k
tc39 x jsconf.jp Panel Discussion 2024
yosuke_furukawa
PRO
0
380
Removing Corepack
yosuke_furukawa
PRO
9
2k
JavaScript Runtime とはなにか
yosuke_furukawa
PRO
15
3.2k
Other Decks in Programming
See All in Programming
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
800
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.2k
Agents on Rails - Rails at Scale 2026
irinanazarova
0
570
sbt 2.0: takeoff
eed3si9n
0
160
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
APNsからLive Activityを開始する話
yumnumm
0
170
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Site-Speed That Sticks
csswizardry
13
1.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
For a Future-Friendly Web
brad_frost
184
10k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Marketing to machines
jonoalderson
1
5.9k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Transcript
Node.js Past, Present, Future YAPC::ASIA 2015
@yosuke_furukawa Node.jsϢʔβʔάϧʔϓද
@jovi0608 Node/io.js ٕज़ҕһձ
index • Past • Node.js Γཱͪ • Joyent ͱ Node.js
• BDFL Ϟσϧ • Present • Node.js։ൃఀ • io.jsͷ಄ • TCϞσϧ • Future • The Future of Node • LTS • Nodeͷࠓޙ
The History of Node
2001 2008 2009 2010 2011 2012 2015ʙ
Past Node.js
Node.jsΓཱͪ
2001 2008 2009 2010 2011 2012 2015ʙ /PEFKTJTCPSO
2009 ʙ 2012 Node.jsͷഁյͱͷ࣌
3ZBO%BIM 5IF'BUIFSPG/PEF
Ryan Dahl talks about Node.js in JSConf.eu 2009
None
Node.js in brief • Server-Side JavaScript • Evented, Non-Blocking I/O
Similar to EventMachine • Built on Google’s V8
Node.js in brief • Server-Side JavaScript • Evented, Non-Blocking I/O
Similar to EventMachine • Built on Google’s V8 ͳΜͰ/PEFKT͜͏͍͏ߏ ΛબΜͩͷ͔
2001 2008 2009 2010 2011 2012 2015ʙ $,1SPCMFN
$,1SPCMFNJT w ͪΐʔͨ͘͞ΜͷΫϥΠΞϯτ , ͕Ұʹଓ ͨ͠Βαʔόʔࢮ͵ΑͶ͍ͬͯ͏ w ࣌ͷϑϩϯτ"QBDIF͕ओྲྀ w "QBDIFϓϩηεεϨουϞσϧ
w ΫϥΠΞϯτ͕ଓ͢ΔʹϓϩηεPSεϨου͕ ্͕ΔͱϝϞϦ͍·͘ΒΕͯɺɺɺ ޙ͔Δͳɻɻɻ
2001 2008 2009 2010 2011 2012 2015ʙ 8FC d
ຊͰ ʮ8FCͷઌʹ͋Δ$,ʯ ͱ͔هࣄ͕͔͔ΕΔ
8FC࣌4/4࣌
Ϣʔβʔ͕αΠτʹࡏ͢Δ ͕࣌ؒ૿͑Δ࣌ ϝοηʔδ͕དྷ·ͨ͠ ͍͍Ͷ͞Ε·ͨ͠
࣌ͷ3ZBO%BIM
ϓϩάϨεόʔ
None
$POOFDUJPO͕ଟ͘ͳͬͯैདྷͷΞʔΩς ΫνϟͰ·͔ͳ͖͑Εͳ͘ͳ͖ͬͯͨ
&WFOU-PPQ ࣌ؒͷ͔͔Δ'JMF/FUXPSL*0ॲཧ Λඇಉظʹͯ͠ɺෳͷଓΛҰͭ ͷεϨουͰ͏Ϟσϧ
3ZBO%BIM͕࠷ॳʹ࡞ͬͨ &WFOU-PPQϞσϧͷͻͳܗ $ݴޠͰ6OJYPOMZTVQQPSU
MJCFCCΛ࡞ͬͨܦݧΛݩʹ3ZBO%BIMޙʹ/PEFKT ͰɺMJCFWMJCFJPΛ࠾༻ɺޙʹ8JOEPXTରԠΛ ࢦͯ͠ɺMJCVWΛ։ൃɺϚϧνϓϥοτϑΥʔϜͰ ߴͳඇಉظ*0͕࣮ݱ͞ΕΔ
/PEFQSPKFDU ࢝ಈ 3ZBOͱ5JN
͜͏͍͏ײ͡Ͱಈ͔͍ͨ͠ͱ͢Δ ͷϝʔϧͷΓऔΓ͕͍ͬͯΔɻ
࠷ॳOFUW͍ͬͯ͏໊લͩͬͨ Β͍͠
OFUW͔ΒOPEF͍ͬͯ͏໊લʹ มΘΔɻ
͔ͯ͘͠/PEFKTੜ
Joyent ͱ Node
2001 2008 2009 2010 2011 2012 2015ʙ /PEFVOEFSUIF +PZFOU`TSPPG
/PEFKTͷ1BB4ίϯ αϧମ੍Λ࡞Δ 'VMMUJNFDPNNJUͷମ ੍͕ඞཁɻ
+PZFOUͷैۀһͱͯ͠ϑϧλΠϜίϛοτମ੍͕Ͱ͖Δɻ
BDFL ༏͍͠ऴͷಠࡋऀϞσϧ
#%'- جຊతʹҰਓͷϦʔμʔ͕ݖརΛ࣋ͬͯ ػೳࡦఆJTTVFཧΛ͢ΔϞσϧ 1FSMͷ-BSSZ8BMMɺ3VCZͷ.BU[
ഁյͱ • API͕͔ͳΓਂࠁʹมΘΔ • ύονϨϕϧͷόʔδϣϯΞοϓͰಈ͔ͳ͘ͳΔ • Ϟδϡʔϧ໊҆ఆ͠ͳ͍(‘sys’ Ϟδϡʔϧ ‘util’ ϞδϡʔϧͳͲ)
• ৽ػೳՃ༧ࠂ isolates • v0.7ͰεϨου͑ΔΑ͏ʹ͢ΔΑʔ • ͬͺΓΊʔʂ
_:(´ཀ`ʯ ∠):_ ৼΓճ͞ΕΔ/PEFKT %FWFMPQFST
2001 2008 2009 2010 2011 2012 2015ʙ 3ZBOTUFQTBXBZ GSPN#%'-
3ZBO%BIM*TBBDT4DIMVFUFS ʹϦʔμʔ͕มߋ
3ZBO%BIM*TBBDT4DIMVFUFS ʹϦʔμʔ͕มߋ ͏ݚڀϑΣʔζ ഁյͱϑΣʔ ε ऴ͑ͨ͠ɺ͜Ε͔Β҆ఆͱ ৴པΛٻΊͯϦʔμʔΛม͑Δ 4USFBNपΓͱ͔ΤϥʔϋϯυϦϯάपΓͰ Γ͍ͨࣄ͕·ͩ·ͩ͋ΔΜͰϦʔμʔΓ·͢ɻ
2001 2008 2009 2010 2011 2012 2014 *TBBDTTUFQTBXBZ GSPN#%'-
*TBBDT4DIMVFUFS5+'POUBJOF ʹϦʔμʔ͕มߋ ࡾ
OQNձࣾʹ͢Δ͠ɺ/PEFͷ ϦʔμʔͰ͖ͳ͍Θɺɺɺ *TBBDT4DIMVFUFS5+'POUBJOF ʹϦʔμʔ͕มߋ ࡾ WΛग़͢ʂʂ
None
ઌൃ தܧ͗ ͑
Present Node.js
2001 2008 2009 2010 2011 2012 2015ʙ /PEFKTීٴظ
2012 ʙ 2014 Node.js ීٴظ
socket.io ͷීٴʹΑΔ ϦΞϧλΠϜΞϓϦͷ૿Ճ
FrontEnd tools (Grunt Gulp Yeoman)
Desktop Application
AWS Lambda
Tessel(IoT)
ຊʹ৭ʑΘΕΔΑ ͏ʹͳͬͨ ʢओʹΠϕϯτۦಈͰಈ࡞͢Δͷʣ
ͨͩ͠ɺ͜ͷลΓ͔Β ։ൃऀؒͷߔ͕ੜ·Ε ࢝ΊΔɻ
҆ఆΛٻΊΔ։ൃऀ vs cutting edge ΛٻΊ Δ։ൃऀ
EnterpriseͰͷ׆༻
Node.js ίΞʹٻΊΔ ͷ͕૿͖͑ͯͨɻ 4UBCJMJUZ &4 &BTZ&SSPS)BOEMF 4QFFE JTPNPSQIJD
2014͔ΒίΞͷ ։ൃ͕ఀ͢Δɻ
ϦϦʔεεέδϡʔϧͷෆಁ໌ issue/featureཧ͕Ͱ͖ͯͳ͍
͜ͷ··ͰͩΊͩ…
3Q 2014 /PEF'PSXBSE 1SPKFDU͕ൃ 4Q 2014 1Q 2015 2Q 2015
3Q 2015 2012
/PEFKTΛਪ͠ਐΊΔ͘ɺ /PEF'PSXBSEͱ͍͏ஂମ͕Ͱ͖Δɻ #%'- Node.js Node Forward
తఀ͔Βͷ٫
None
3Q 2014 /PEFKTͷGPSLͰ͋Δ JPKT͕ϦϦʔε͞ΕΔ 4Q 2014 1Q 2015 2Q 2015
3Q 2015 2012
/PEF'PSXBSE͕/PEFKTΛGPSLͯ͠JPKTΛϦϦʔε #%'- Node.js io.js
io.js v1.0 release 2015 1݄13 ※ݸਓతʹio.jsͷཚͱ໊͚͍ͮͨ
Node.jsͱͷҧ͍Կ͔
BDFLϞσϧ͔Βͷ٫
JPKTʹϦʔμʔډͳ͍ɻ #%'- Node.js io.js
ϦʔμʔෆࡏͰͲ͏ͬͯػ ೳissueΛཧ͢Δͷ͔
io.js rules 5FDIOJDBM $PNNJUUFF 8PSLJOH (SPVQ 4FNBOUJD 7FSTJPOJOH
Technical Committee
Technical Committee Ϧʔμʔډͳ͍͕ɺίΞϝϯόʔͰ ߏ͞Εٕͨज़ҕһձ͋Δɻ(16໊)
Technical Committee ͜ͷҕһձͷதͰػೳissueΛϋϯυϦϯά ͍ͯ͘͠ɻݴͬͯΈΕࠃձΈ͍ͨͳͷɻ
Collaborator TSCͷϝϯόʔͱҰॹʹ࣮ࡍʹίʔυΛฤू मਖ਼ɺػೳ֦ு͍ͯ͘͠ਓୡ(40໊΄Ͳ)
Working Group
Working Group io.jsʹ20ݸۙ͘Working Group͕͋Δɻ Evangelism, Website, benchmark, build, etc. website
build Evangelism
Working Group ͜ͷWorking Group͕֤ʑͷతʹ߹Θͤͯ ࣮ࡍͷ࡞ۀΛ׆ಈ͍ͯ͘͠ɻݴΘֳɻ website build Evangelism NF
Semantic Versioning
Semantic Versioning major.minor.patch
Semantic Versioning major.minor.patch NBKPSόʔδϣϯ͕มΘΔ "1*ͷޓ่͕ΕΔɻ NJOPSόʔδϣϯ͕มΘΔ ػೳ͕Ճ͞ΕΔɻ QBUDIόʔδϣϯ͕มΘΔ
όά͕मਖ਼͞ΕΔɻ
Semantic Versioning major.minor.patch NBKPSόʔδϣϯ͕มΘΔ "1*ͷޓ่͕ΕΔɻ NJOPSόʔδϣϯ͕มΘΔ ػೳ͕Ճ͞ΕΔɻ QBUDIόʔδϣϯ͕มΘΔ
όά͕मਖ਼͞ΕΔɻ ͜ͷSemantic Versioning ʹԊͬͯόʔδϣϯ ཧ͞ΕΔɻ
Semantic Versioning major.minor.patch NBKPSόʔδϣϯ͕มΘΔ "1*ͷޓ่͕ΕΔɻ APIޓ͕յΕΔͱmajor όʔδϣϯ͕ มΘΔͨΊɺޓΛյ͍ͯ͠ͳ͍͔࠷৽ͷҙΛ ͬͯνΣοΫ͞ΕΔɻݴΘݑ๏ͷΑ͏ͳͷɻ
io.js rules 5FDIOJDBM $PNNJUUFF 8PSLJOH (SPVQ 4FNBOUJD 7FSTJPOJOH ࠃձ ๏JTTVFGFBUVSF
ΛϋϯυϦϯά͢Δ ֳɺ࣮ࡍͷ࡞ۀΛ࣮ࢪ ࠃձʹ๏ҊΛఏग़͢Δ ݑ๏ ˞ͨ·ʹ֦େղऍ͋Δॴ ࣅͯΔɻ
io.js rules 5FDIOJDBM $PNNJUUFF 8PSLJOH (SPVQ 4FNBOUJD 7FSTJPOJOH ࠃձ ๏JTTVFGFBUVSF
ΛϋϯυϦϯά͢Δ ֳɺ࣮ࡍͷ࡞ۀΛ࣮ࢪ ࠃձʹ๏ҊΛఏग़͢Δ ݑ๏ ˞ͨ·ʹ֦େղऍ͋Δॴ ࣅͯΔɻ ʊਓਓਓਓਓਓਓਓਓਓʊ ʼɹ·͞ʹΨόϝϯτɹʻ ʉY^Y^Y^Y^Y^Y^Y^Y^Yʉ
ΦʔϓϯΨόφϯεϞσϧ
None
ຖिϛʔςΟϯά͕։࠵͞Εɺݱࡏio.jsͰԿ ͕ٞ͞ΕͯΔͷ͔ΦʔϓϯʹͳΔΈɻ
ٞࣄΛgithubͰཧͯ͠ެ։͢ Δ͜ͱͰnon-nativeʹ͍͞͠
io.jsnode.jsͷforkɺͦͯ͠ΦʔϓϯΨόφϯεϞ σϧΛ࠾༻͢Δ͜ͱͰಁ໌ੑͷ֬อͱίϯτϦ ϏϡʔτͷෑډΛԼ͛ΔޮՌɺBDFLͷΘΓΛૂͬ ͍ͯΔɻ
1/13ʹv1.0ϦϦʔε͞Ε͔ͯΒطʹ7ϲ݄Ͱ ࠓv3.1.0͕ϦϦʔε͞ΕͯΔɻ ϦϦʔεස্͕͕Γྑ͍ʹɻ Node.js io.js
৽͍͠ίϛολʔੜ·Ε͓ͯΓɺ ྑ͍ࡉ๔॥͕Ͱ͖͖͍ͯͯΔɻ
Future Node.js
The Future of Node = io.js
Node Foundation 5FDIOJDBM $PNNJUUFF 8PSLJOH (SPVQ 4FNBOUJD 7FSTJPOJOH /PEF 'PVOEBUJPO
֤छ8(5$ͷࡒݯΛ ֬อ͢Δॴ $*ͷϗεςΟϯάͩͬͨΓɺ$PMMBCPSBUPSͷ ߤඅͩͬͨΓͱ͍͏ίϛολʔࢧԉɻ
Node Foundation 5FDIOJDBM $PNNJUUFF 8PSLJOH (SPVQ 4FNBOUJD 7FSTJPOJOH /PEF 'PVOEBUJPO
'VMMUJNFDPNNJUUFSͷඞཁ͕͋Ε͔͜͜Β څྉ͕ग़ΔܗʹͳΔɻ
Long Term Support
Long Term Support )BDLFS͚ Ұൠ͚
Long Term Support &OUFSQSJTF͚ &OUFSQSJTF͚
Node.js v4.0 features &4DPNQBUVQ 4JNQMF4USFBN 4USPOH4DSJQU JNQSPWFQFSG JNQSPWFEFCVHHBCJMJUZ
Node.js v4.0 will be released in September (or October)
·ͱΊ
·ͱΊ • Ͳ͏ͯ͜͠͏ͳͬͨʁ • NodeίΞͷཁٻͷଟ͞ • BDFLϞσϧͷมԽ • ࠓޙͲ͏ͳΔʁ •
Technical CommitteeʹΑΔཧ • Working GroupͰͷؔΘΓ • LTSͱnext/master ʹΑΔ҆ఆੑ
Free Talk
None
time master brunch v0.10 v0.12 v4.x next brunch io.js v1.x
io.js v3.x