トップページtech
1002コメント339KB

【node.js】サーバサイドjavascript 3【io.js】©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net2014/12/27(土) 18:40:07.70ID:MwQYLNUR
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
http://nodejs.org/
io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系
http://iojs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

io.js の経緯
http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js
javascriptはrubyと比較してもかなり速い
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&;lang=v8&lang2=yarv
基礎から学ぶNode.js
http://gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
http://gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript 2【Rhino】
http://peace.2ch.net/test/read.cgi/tech/1358937029/
【node.js】サーバサイドjavascript【Rhino】
http://toro.2ch.net/test/read.cgi/tech/1310087535/
0199デフォルトの名無しさん2015/02/07(土) 12:27:12.88ID:nPDceh1h
出世して彼女ができて宝くじがあたります
0200デフォルトの名無しさん2015/02/09(月) 10:59:40.44ID:fZtNVB1v
>>199は簡単にオレオレ詐欺にダマされるタイプ
0201デフォルトの名無しさん2015/02/09(月) 11:03:16.64ID:iJdyGTL3
Microsoft、オープンソースの.NET実行エンジン「CoreCLR」を公開 | スラッシュドット・ジャパン オープンソース
http://opensource.slashdot.jp/story/15/02/08/0721252/
0202デフォルトの名無しさん2015/02/11(水) 21:21:51.49ID:z1YCt8TB
>>198
Node0.12は知らんがV8最前線は少し前からharmonyでは全機能が有効にならなくなった。
有効にするには個別のフラグを指定する必要がある。
0203デフォルトの名無しさん2015/02/11(水) 21:27:51.17ID:eikfP7K0
0.12でもharmonyつけないとfunction *(){}が使えなかった
0204デフォルトの名無しさん2015/02/12(木) 03:47:37.63ID:a2m4i3WK
ttp://www.nodebeginner.org/index-jp.html#finding-a-place-for-our-server-module
今さっきnodejs入れてこのビギナーズブックを見てるんだけど
ブロッキング項目で例がsleepもどきから途中でchild_process.execへ変わってるのは
sleepもどきのままでノンブロッキングは無理又は難しいからって認識で合ってる?
0205デフォルトの名無しさん2015/02/12(木) 05:07:15.11ID:o6kZdkkY
違う
sleepは値(結果)を産み出さないから間違ってても気づかない
だからlsコマンドの実行に変えた
そしてlsの結果じゃなく"empty"って表示されて「あれ?」と思わせるというシナリオ
0206デフォルトの名無しさん2015/02/12(木) 14:42:11.34ID:fUzWkr8T
Joyentが「Node.js Foundation」設立を発表。IBM、Microsoft、PayPal、Fidelityなどが創立メンバーに
http://www.publickey1.jp/blog/15/joyentnodejs_foundationibmmicrosoftpaypalfidelity.html
0207デフォルトの名無しさん2015/02/12(木) 14:42:56.16ID:x5e0tI8J
io.jsに未来なんてねえんだよ
0208デフォルトの名無しさん2015/02/12(木) 14:44:27.12ID:NmXHf2UC
そうかな
本家争いで joyent は焦ってるように見える
0209デフォルトの名無しさん2015/02/12(木) 15:10:12.32ID:ThCWUpsh
2015年の活発さはforkのたまもの。ユーザメリットも多いんだからiojs歓迎だよ。
0210デフォルトの名無しさん2015/02/12(木) 15:58:57.74ID:a2m4i3WK
>>205
レスさんくす
項目の目的が非同期でまず躓く失敗を体験させることなのはわかった

そして申し訳ないけど寝ぼけ眼で書いたせいか質問文がおかしかった
sleepもどきのような重い処理をノンブロッキングにできるのかが知りたかったんだ
ブラウザで例えるならWebWorkerに投げるみたいな
移動中にググって基本的には難しいってのがわかった、いい勉強になった
0211デフォルトの名無しさん2015/02/12(木) 16:08:27.83ID:lzKOaP2E
io.jsもnodojsと同じシングルスレッドならnodojsから乗り換える価値ないよね
0212デフォルトの名無しさん2015/02/12(木) 16:55:01.48ID:ACLeg2X+
joyentにガバナンス手放してファウンデーション作らせただけでもio.jsの勝利
0213デフォルトの名無しさん2015/02/12(木) 22:46:40.79ID:Il0VyiBX
io.jsの成果はio.js 1.0じゃないんだ。

nodejsを活発化させたことが
io.jsの成果なんだ。

forkしたものはどうでもいい。
0214デフォルトの名無しさん2015/02/13(金) 00:10:45.38ID:hCJDzLwl
活発化してるのはio.jsリポジトリのv1.xブランチだけどな
0215デフォルトの名無しさん2015/02/13(金) 16:55:47.34ID:v5btlO/2
V8が最近moduleに手を入れはじめたから、特にioの方はそろそろ無視できなくなって来るな。
0216デフォルトの名無しさん2015/02/14(土) 04:18:17.00ID:uJwXJif2
そして最後に全部nodejsがかっぱらう。
オープンソースですからねw
0217デフォルトの名無しさん2015/02/16(月) 08:33:48.60ID:JcJgKv2l
>>216
そもそも、名前が悪いから検索に引っかからないしね。
おまけにフォークした程度の内容。
0218デフォルトの名無しさん2015/02/16(月) 08:41:03.35ID:F7oc1qZ/
かませ犬でも良いよ成長促進されるなら
0219デフォルトの名無しさん2015/02/16(月) 09:53:36.17ID:DphEjV/x
io.jsの目的はio.jsそのものじゃなくてnodeのしりを叩くことだったりして
0220デフォルトの名無しさん2015/02/16(月) 10:24:15.23ID:2crvF8yD
いまio.jsに乗り換えましたって主張をわざわざブログやツイッターに書き込んでるのは主導権握りたいから
0221デフォルトの名無しさん2015/02/16(月) 10:55:59.93ID:JcJgKv2l
>>220
主導権なんて握れないけれどな。所詮フォーク。
0222デフォルトの名無しさん2015/02/16(月) 11:24:49.99ID:/Le2iIgb
expressのtemplateライブラリって何のためにあるの?
あんなもの使うなら、phpで書いた方がマシ
0223デフォルトの名無しさん2015/02/16(月) 11:30:57.54ID:Zud42+NA
時代はkoaですよ
0224デフォルトの名無しさん2015/02/16(月) 14:21:03.22ID:aOc1RZqa
>>221
☓フォーク
◯スポーク
0225デフォルトの名無しさん2015/02/16(月) 16:28:15.03ID:VsTkNRzh
>>222
Angularかbackboneで表示するから、あまり使わない
0226デフォルトの名無しさん2015/02/16(月) 18:28:01.85ID:NxVOoQZu
この先もずっとioが必要かは分からないが、
今年来年くらいはまさにhttp2やES.next対応やらの需要がピークなわけで、ioには頑張ってもらいたい。
0227デフォルトの名無しさん2015/02/16(月) 19:05:20.84ID:PwN9qruY
joyent/node@v0.12 2月に入ってからの半月で17コミット
iojs/io.js@v1.x 2月に入ってからの半月で100コミット

どうして差がついた。慢心、環境の違い…
0228デフォルトの名無しさん2015/02/16(月) 21:03:23.43ID:/Le2iIgb
本家が安定版だからだろ。io.jsなんて犬も喰わない
0229デフォルトの名無しさん2015/02/16(月) 21:30:02.79ID:4Cxg/4AS
>>223
koaはio.jsではそのまま使えるけど、node.jsで使うにはオプションが必要だからその人には、ねw
0230デフォルトの名無しさん2015/02/16(月) 21:46:32.47ID:nT8bWWvG
koaも過渡期の産物で本来は基本モジュールが全部Promiseを返すようになって、
ES7のawait/asyncが使えるようになれば最高。
0231デフォルトの名無しさん2015/02/19(木) 07:20:14.54ID:owmyBdJ4
Open GovernanceなTechnical Committeeって、Node Foundationはio.jsを丸ごと受け入れるっつか本丸明け渡す体制だな
TrademarkもFoundation Boardに移るようだし、Joyent完敗やん
io.jsの実体とNode.jsの名前が残るベストな結末になりそうでいいことだけどな
0232デフォルトの名無しさん2015/02/21(土) 16:33:40.41ID:nvbkyqD5
https://github.com/tmpvar/jsdom/blob/master/README.md
Note that as of our 4.0.0 release, jsdom no longer works with Node.js, and instead requires io.js.
You are still welcome to install a release inthe 3.x seriesif you are stuck on legacy technology like Node.js.
0233デフォルトの名無しさん2015/02/21(土) 16:55:40.13ID:aIEWJefX
> legacy technology like Node.js
0234デフォルトの名無しさん2015/02/21(土) 18:34:56.63ID:VFEr1UXm
node.jsとio.jsはテクノロジー的には
同じだと思うけどね。フォークしたんだからw
0235デフォルトの名無しさん2015/02/21(土) 19:28:10.58ID:qY4oi0dn
どこまで行ってもベースのテクノロジーは同じだろうが
ひょっとすると表面のAPIがガラッと変わっていくかもしれないし
0236デフォルトの名無しさん2015/02/22(日) 00:36:09.60ID:KOnDqQsn
>>234
それはSafariとChromeは同じだと言っているようなものでは
0237デフォルトの名無しさん2015/02/22(日) 00:49:58.38ID:XwM2xAPU
Io.jsって、node.jsのリーダーが独裁的だったから反発して分裂したらしいな
リーダーって誰だよw
こいつの社会的評価は急転直下なんだろうなw
0238デフォルトの名無しさん2015/02/22(日) 00:58:59.80ID:GaZASibZ
>>237
Timothy J Fontaine
0239デフォルトの名無しさん2015/02/22(日) 04:01:31.72ID:Y5TRxyoj
よいリーダーというのは独裁的であるべきだよ。
それで大成功しているプロジェクトもたくさんある。
問題は開発が停滞したことでしょ。
0240デフォルトの名無しさん2015/02/22(日) 07:47:28.44ID:uX3Bvmht
同意します
0241デフォルトの名無しさん2015/02/22(日) 09:25:14.34ID:c6XeXodQ
iojsで実験的、先進的な機能を実装→nodejsにフィードバックという流れができれば。
0242デフォルトの名無しさん2015/02/22(日) 10:27:15.33ID:2O4bEH+I
>>241
と、期待していたのに全然ダメとわかったから離れだしてるんだろ
0243デフォルトの名無しさん2015/02/22(日) 13:25:28.41ID:AaKxOohj
Fedora rawhideとCentOSみたいな関係でいいよ。
0244デフォルトの名無しさん2015/02/22(日) 16:26:15.71ID:6wlRzF4X
>>239
独裁者が独裁で主要開発者を排除して開発が滞ったんだろ
0245デフォルトの名無しさん2015/02/22(日) 16:39:58.16ID:fXacNSCG
>>244
ソースは?
0246デフォルトの名無しさん2015/02/22(日) 17:09:30.64ID:aGLKDFhg
おいおい、この文脈でそれを言うのは、全く面白くないジョークだぜ
0247デフォルトの名無しさん2015/02/22(日) 17:25:25.34ID:G9MatKu0
リポジトリからpullして名前とバージョン番号だけ変えるようになったら笑える、
いや笑えない
0248デフォルトの名無しさん2015/02/22(日) 21:58:31.41ID:NwE09bSL
nodejsがマルチコアに対応するのはいつになるのかね
0249デフォルトの名無しさん2015/02/22(日) 22:01:34.15ID:gyQTJZTB
だいぶ前に放棄されたからもうしないんじゃね
0250デフォルトの名無しさん2015/02/22(日) 22:36:09.88ID:EzG81a2V
WebWorkerを使って自分でする
0251デフォルトの名無しさん2015/02/23(月) 04:55:07.03ID:m2dP1v8u
何をもってマルチコア対応と言ってるんだ?
Nodeの内部は当然昔からマルチスレッドで動いているんだが。
結局表面のJS部分でスレッドが使いたいという話だろう?
0252デフォルトの名無しさん2015/02/23(月) 08:47:48.40ID:AjFb9vvE
おわこん
0253デフォルトの名無しさん2015/02/24(火) 12:13:29.58ID:lFZ8d0+y
Nodeがオワコンかどうかは知らないが、完成形とは程遠いのは分かる。
そういう意味ではサーバサイドJS環境は始まってすらいない。
0254デフォルトの名無しさん2015/02/24(火) 12:21:24.19ID:uzE+eLOu
実りの時期を待たずに刈り取ろうとしたのかw
0255デフォルトの名無しさん2015/02/24(火) 21:15:50.52ID:iBIsMnSZ
>>245
ben noordhoisが辞めた時に一悶着あったらしい
ソースは検索してみて
0256デフォルトの名無しさん2015/02/24(火) 22:11:01.64ID:1VU0JeeK
>>255
いい加減なこと書くんじゃねーよ糞が
そん時のリーダーは今の人とは別人でio.jsで仲良くやってんだよ
0257デフォルトの名無しさん2015/02/25(水) 09:43:31.95ID:oiOKwPPk
>>254
ま、創始者が作りそしてぶっ壊しちゃったね。
馬鹿な創始者だなって思う。

結局サーバサイドJavaScriptはこうして歴史を閉じるわけだ。
せっかく一つの分野を開拓したのにね。

かといって、io.jsがメジャーになることはない。
0258デフォルトの名無しさん2015/02/25(水) 10:00:13.24ID:nKN7f0Au
間違った進化は淘汰される
0259デフォルトの名無しさん2015/02/25(水) 10:31:04.99ID:2phC3Ctb
どうせ統合されるから
0260デフォルトの名無しさん2015/02/25(水) 12:38:07.65ID:jNJiSOpZ
などと言われて本当に消えてものはない。
0261デフォルトの名無しさん2015/02/25(水) 14:34:24.52ID:Ehdl7vHZ
日本語でおけ
0262デフォルトの名無しさん2015/02/25(水) 16:48:47.89ID:+Rnlx2S3
まあJavaScriptが終わるかどうかは分からないが、
ES6,7,8...の予定を見てると飛躍的に進化するなと感じるし、
SaneScript構想なんかを見ると、今までのJSとは違うなって思う。
0263デフォルトの名無しさん2015/02/25(水) 16:53:58.84ID:nEs08NKh
TimeZoneを識別子で設定できるようにならないから
あとサマータイムの考慮できるようにしてほしい
そういうライブラリでもいいんだけど
0264デフォルトの名無しさん2015/02/25(水) 17:39:52.92ID:+Rnlx2S3
それはDateクラスで何とかすべき問題ではなくて?
0265デフォルトの名無しさん2015/02/25(水) 18:19:49.08ID:DZ2Kp+uW
定番のmoment.js
0266デフォルトの名無しさん2015/02/25(水) 21:40:39.31ID:DZbi2c77
>>257
みたいにio.jsを目の敵にしてる知恵遅れのキチガイは何なん?
もうio.js様大勝利確定でjoyentは三顧の礼でもってio.js様を迎え入れようとしてるのに
0267デフォルトの名無しさん2015/02/25(水) 22:05:00.23ID:Ehdl7vHZ
はぁ?"node"という商標使いたさに頭下げてjoyentに軍門してるのに?
0268デフォルトの名無しさん2015/02/25(水) 22:29:37.76ID:DZbi2c77
商標もnode foundationに移すじゃん
io.js様に出ていかれたままじゃ商標の価値そのものが無くなるからjoyent必死だな
0269デフォルトの名無しさん2015/02/25(水) 23:51:14.72ID:1ACQe7ag
社員以外の開発者に出ていかれて泣く泣く商標もガバナンスも手放してNode Foundationへの合流を望むJoyent
合流するかどうかはオープンに議論する余裕のio.js
どうして差がついたのか…慢心、環境の違い
0270デフォルトの名無しさん2015/02/26(木) 07:46:40.66ID:cUPSHxGd
軍門に降る
な!
0271デフォルトの名無しさん2015/02/26(木) 12:11:00.71ID:U9UNhVzT
「軍門してる」って、io.jsに親を殺された池沼は日本人じゃなかったのかw
0272デフォルトの名無しさん2015/02/26(木) 13:49:08.91ID:ScTUDd1D
nodejsとsocket.ioで掲示板を作ろうと思うんですけど
1000人がページを開きっぱなしにするとwebsocketで接続しっぱなしってことでリソースを食いつぶしちゃいますか?
0273デフォルトの名無しさん2015/02/26(木) 14:06:06.69ID:s5JPbxDv
サーバーの性能による。
0274デフォルトの名無しさん2015/02/26(木) 14:06:13.89ID:32CLcP5C
>>272
タイムアウト時間決めて無通信状態が続けば切っちまえ

えっと、何ていうんだっけそういうの?KeepAlive?
0275デフォルトの名無しさん2015/02/26(木) 14:25:31.10ID:CEv9YCvj
>>272
接続だけならどってことない
接続ごとに持つ情報も掲示板で1000程度なら問題にならん
仮に1接続あたり10KBも持ったとして、それでも1000接続でたったの10MBだ
0276デフォルトの名無しさん2015/02/26(木) 14:57:29.64ID:32CLcP5C
一人が更新しても残り全員にメッセージを送らないといけない
クライアントから新着を一定間隔でポーリングするのか
サーバーから全接続にpushするのか知らんけど

ROMの人だと本当に見てるかどうか判別できないな

ダイアログだして延長するかどうか尋ねるとか?

まあ仲間内だけのサービスなら開きっぱでも問題ないだろうけど
0277デフォルトの名無しさん2015/02/26(木) 15:16:48.44ID:0na4n84n
通常の範囲で使われている限りは何の心配もすることはないよ。
問題はWebSocketはblobも送れるし、容量制限が実質ないこと。
本来容量で弾かないといけないけど、受信しきってからイベントが発生するタイプだと厳しい。
また、文字列前提で、blobが送られた時エラーで落ちるってのはよくハマること。
open2chのチャットも当初そのバグが有った。
0278デフォルトの名無しさん2015/02/26(木) 15:21:05.50ID:ScTUDd1D
そこまで考えてなかったけど勉強になりました
0279デフォルトの名無しさん2015/02/27(金) 17:24:48.62ID:mT46lxBT
nodeからmongodbを操作するmongooseの解説書に
プロセス終了時にコネクションを切断する以下のようなコードが紹介されているのですが

process.on('SIGINT', function() {
mongoose.connection.close(function () {
console.log('Mongoose disconnected through app termination');
process.exit(0);
});
});

プロセスが終わったらコネクションは明示的に切断処理をしなくても切断されるのではないかと
思うのですが、違うのでしょうか?
0280デフォルトの名無しさん2015/02/27(金) 17:42:45.47ID:iNaIMmLv
自動で〜と言う部分は保証されていない限り、どの言語でも終了処理は自分でした方が良い
0281デフォルトの名無しさん2015/02/27(金) 18:19:57.68ID:mT46lxBT
なるほど、そういうものですか
ありがとうございました
0282デフォルトの名無しさん2015/02/27(金) 20:08:17.57ID:/TZ2R5Zj
>>279
PCで言うとシャットダウンしないでいきなり電源切るような使い方で良いなら好きにすれば
0283デフォルトの名無しさん2015/02/27(金) 22:12:30.41ID:j2kMYDr9
普通はそれで全く問題ないが、mongoは散々DB破壊問題を起こしてきたから特に信用出来ない。
0284デフォルトの名無しさん2015/02/27(金) 22:38:17.82ID:bN3T6fIh
>>251
JSが動くのはメインスレッドだけで、他のスレッドは主にブロッキングI/Oするだけだから1プロセスじゃマルチコア使えない
0285デフォルトの名無しさん2015/02/27(金) 22:59:38.23ID:X8PXZoo1
>>283
sqliteといい、ext4といい、出始めは安定しないものだけど
こいつがもんだい起こしてるとは知らなんだ
安定は、まだ先そう?
0286デフォルトの名無しさん2015/02/27(金) 23:06:55.04ID:bN3T6fIh
俺はそもそもMongoを使う気がしない
使うやつの気が知れない
0287デフォルトの名無しさん2015/02/28(土) 01:09:34.76ID:6Lhyreb3
>>284
使えないというのではなく、活かしきれないと書いたほうがいいと思う。
libuvは一応マルチコア使ってくるはず。
0288デフォルトの名無しさん2015/02/28(土) 01:24:12.76ID:wlw7vunX
>>287
だからfsモジュールとかブロッキングI/Oで寝てるだけなんだからCPU使わないんだって
zlibを並行で使い続けるような特殊なアプリでもない限りな
0289デフォルトの名無しさん2015/02/28(土) 10:49:07.17ID:VNSN4Y6t
>>283
node.jsは信用に値するのか?
0290デフォルトの名無しさん2015/02/28(土) 11:04:22.33ID:1nuig21R
OOPLなのに+で文字列結合とか無いわー。
集合型と互換性なくなるじゃん。

"集合型と文字列型が互換性を持っているSmalltalkの例"
| value |

"加算"
value := #( 1 2 ) + 1. "-> #( 2 3 )"
value := 'AB' + ( $a - $A ). "-> ab"

"結合"
value := #( 1 2 ) , #( 3 ). "-> #( 1
2 3 )"
value := 'example', 10 printString. "-> example10"

"備考:書式付き文字列結合"
value := 'example%1' % { 10 }. "-> example10"
0291デフォルトの名無しさん2015/02/28(土) 11:11:31.60ID:0J8+8Slx
>>290
スモールマウス。ちがったトーク。うざいよ?
0292デフォルトの名無しさん2015/02/28(土) 11:21:25.01ID:jV2hL0tG
>>289
ウォルマートみたいな大企業が使っているんでしょ?

マルチコア活かしたいなら子プロセスやJavaScriptのスレッドを作るアドオン、JXCoreがあるだろ

今のJavaScriptはスレッド間でオブジェクトを共有できないから他の言語と比べたらマルチコアを活かす処理は書きづらいかもしれない

JavaScriptじゃ無理そうな時はuv_queue_workを使って特定の処理をするアドオンを書いたら良いんじゃないか
0293デフォルトの名無しさん2015/02/28(土) 11:52:53.89ID:JYQdrmRY
Meteorって、おいしいの?
以前とは比較にならないぐらい、サイトデザインが垢抜けてるんだけど
0294デフォルトの名無しさん2015/02/28(土) 12:38:32.61ID:VNSN4Y6t
>>292
試験的にちょこっと使ってるのかと思ったら、フロントエンドで使ってるんだね。
日本だとうまく動かなかった場合に言いだしっぺの全面的な責任になるので使うのを躊躇する。
うまく動いた場合は上司の手柄になるしな。
0295デフォルトの名無しさん2015/02/28(土) 12:40:46.18ID:VNSN4Y6t
というか、ゼネコン構造の日本のIT業界だと提案しても通らないべ。
日本で使ってるのは自社開発してるところしか使ってないのでは?
0296デフォルトの名無しさん2015/02/28(土) 12:50:19.54ID:MySCamNG
ほんそれ
0297デフォルトの名無しさん2015/02/28(土) 13:22:00.23ID:nHe/WRfo
海外じゃ他にPaypal、LinkedIn、Yahooと大手の事例も多い
日本ではソーシャルゲームばっか
0298デフォルトの名無しさん2015/02/28(土) 13:59:47.82ID:VNSN4Y6t
海外大手はソフト内製、日本はアウトソーシングばかりだから。
でも、海外企業は朝出社したら、「今日からキミは首だから、もう帰って良いよ」って事が普通にある。
■ このスレッドは過去ログ倉庫に格納されています