1 名前:デフォルトの名無しさん mailto:sage [2015/04/29(水) 20:58:27.13 ID:ynuTQJZG.net] 前スレ 【Lisp】スクリプト バトルロワイヤル48【pl,rb,php,js】 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1425051187/
175 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:01:45.76 ID:+1/GzoNu.net] wordpress, rails, spring mvcを過去のものにしたいだけ 破壊しなければ、仕事がなくなる
176 名前:デフォルトの名無しさん [2015/05/03(日) 18:03:25.73 ID:I75TtZUp.net] JavaScriptの言語仕様は、ECMAScriptとして策定されています。ECMAScriptには、スレッドやI/Oに関しては記述されていません。 しかし、サーバサイドJavaScriptを作成するうえで、I/O機能は必須であるため、各サーバサイドJavaScriptの実装(RingoJSの前身であるHelmaや、Aptana Jaxerなど)が独自に拡張していました。 各自が独自に実装していると、API互換性などで問題が出てくるため、「CommonJS」が策定されました。 前回記事では、「Node.jsは、このCommonJSにのっとって開発されています」と記載しましたが、現実的には、CommonJSのごく一部を実装しているだけです。 Node.jsの特徴である「シングルスレッドでのノンブロッキングI/O」は汎用的な機能ではないためか、CommonJSには定義されていません。 今後、Node.jsがCommonJSに沿って、実装されていくかは微妙な所ですが、JavaScriptでアプリケーションを作成する際のガイドラインとして、CommonJSは有用です。 www.atmarkit.co.jp/ait/articles/1103/23/news101_2.html
177 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:04:52.26 ID:hfdn/Wn2.net] 2011年か、、、 commonjsってものも昔はあったねえ・・・(遠い目
178 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:06:31.11 ID:VNMbSaqh.net] >>173 > JavaScriptの言語仕様は、ECMAScriptとして策定されています。ECMAScriptには、スレッドやI/Oに関しては記述されていません。 ほう! じゃあJavaScriptはノンブロッキングに絶対になるってことだな。 Chakraがノンブロッキングが徹底されているのはそういうことか!
179 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:07:56.72 ID:VNMbSaqh.net] CommonJSってJavaScriptの仕様じゃないんですねー。
180 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:10:13.55 ID:oEmNvyKo.net] >>84 確かに日本のゲーム業界には世界的クリエイターやエンジニアが沢山いるなぁ CSゲーム業界も世界で3プレイヤーだけで内2プレイヤーは日本企業だもんなぁ それに比べWEBは皆無で情けない状態w
181 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:10:26.74 ID:+1/GzoNu.net] 何れ、chromeはjvmの位置へと昇格する.そのときこそ、dartの復活のとき
182 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:11:48.55 ID:hfdn/Wn2.net] まあサーバーサイドJavaScriptは、ほぼNode一択(細かい事を言えばio.jsもあるが)だから 言語仕様以外のapiに関しても互換性の問題はっやっぱり、ほぼないといえるなあ
183 名前:デフォルトの名無しさん [2015/05/03(日) 18:18:53.37 ID:I75TtZUp.net] 自分が勘違いしてるかと試してみたが。 すべてのJavascriptがノンブロッキング動作するわけないだろ。 たとえばJScript 5.8はファイル読み込みで停止する。標準的な関数ではノンブロッキングできないはず。 var fs = new ActiveXObject( "Scripting.FileSystemObject" ); var file = fs.OpenTextFile("sample.dat"); var str = file.ReadAll(); WScript.Echo(str); WScript.Sleep(2000); WScript.Echo(str);
184 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:19:54.00 ID:VNMbSaqh.net] >>180 ActiveXObject は Javascript ではない。 JavaScriptでそれは使えない。
185 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:21:09.79 ID:hfdn/Wn2.net] おお、具体的な例をはじめてちゃんと出したな ジュラ紀の地層から出てきた化石のようなソースコードだが
186 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:21:27.84 ID:VNMbSaqh.net] 自分が勘違いしてるかと試してみたが。 すべてのJavascriptがノンブロッキング動作するわけないだろ。 たとえばV8はファイル読み込みで停止する。標準的な関数ではノンブロッキングできないはず。 var fs = require('fs'); var text = fs.readFileSync('test.txt', 'utf-8'); console.log(text);
187 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:22:13.75 ID:VNMbSaqh.net] >>180 なにをいってるんだー! Node.jsはブロッキングしてるじゃないかー!
188 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:25:45.36 ID:VNMbSaqh.net] それにしても、何が実行環境で 何が言語なのか、本当にわかってないんだぁw
189 名前:デフォルトの名無しさん [2015/05/03(日) 18:25:53.19 ID:I75TtZUp.net] >>181 それはNode.jsのファイル読み込みでも同じこと。
190 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:27:50.14 ID:VNMbSaqh.net] >>186 自分にいえや。 お前が出してきたコードは Node.jsのファイル読み込みでも同じこと お前、Node.jsはノンブロッキングが徹底されてるって 言ったの忘れたのか?
191 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:31:58.94 ID:hfdn/Wn2.net] >>178 結局、DartはJavaScriptに敗れ去ったね あれだけ新しい時代に過去の教訓のもとに作られた言語が JavaScriptに敗れ去ったという事実 JavaScriptの言語仕様が非常に優れていたことの証明だろう
192 名前:デフォルトの名無しさん [2015/05/03(日) 18:36:43.03 ID:I75TtZUp.net] Node.jsはノンブロッキング。sleepすら初期標準装備ではまともにできない。 Node.jsの人はちゃんとsleepしてください - Qiita qiita.com/tanakahisateru/items/9b937989c0ef5345ff9e Node.jsとは何か、開発者ライアン・ダール氏が語る〜ノンブロッキングとはどういうことか? − Publickey www.publickey1.jp/blog/11/nodejs.html
193 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:37:12.35 ID:/2mvjJQZ.net] >>188 それは違うよ。 優れていたから生き残るわけじゃない。 力を注ぐ人間が多いほうが生き残る。 どんなに優れていても、一つの会社に 依存しているようなものはすぐに消える。Delphiとかね。 JavaScriptの強みは、実装が多く存在するということ。 つまりそれだけ多くの人が関係しているということ。 同時代に複数の実装が出回っていて標準化されていて 互換性もある。こんな言語他にあったか? 多くの会社が、より優れたものを作ろうと競争しているんだ それだけ投資されているものが簡単に消えるわけがない。
194 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:38:00.90 ID:/2mvjJQZ.net] >>189 > Node.jsはノンブロッキング。sleepすら初期標準装備ではまともにできない。 >>183 でブロッキングする例を上げて 論破してるよ。
195 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:38:16.86 ID:xkutDKZm.net] Dartは敗れたのではなく戦略的撤退及びJSへの吸収合併 Nodeはサブプロセス立ち上げと、そこでの同期処理は普通。
196 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:39:13.98 ID:/2mvjJQZ.net] > Dartは敗れたのではなく戦略的撤退及びJSへの吸収合併 それを敗れたという
197 名前:デフォルトの名無しさん [2015/05/03(日) 18:43:39.32 ID:I75TtZUp.net] >>191 いつからブロッキング関数が入ったかは知らないが。 たぶん、利用者からの不満で信念を曲げてあとから組み込んだんだろう。 たとえば初期状態で単純なsleepができるのか?
198 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:45:41.99 ID:/2mvjJQZ.net] > いつからブロッキング関数が入ったかは知らないが。 最初から。 無知に無知を重ねてどうするw
199 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:46:48.22 ID:hfdn/Wn2.net] >>190 色んな意味で違うな 実装が比較的少ないJava、PHP、Perl、Python、Ruby、ObjectiveCなどは 普通に人気がある 実装の多かったC++はJavaに敗れた(それでも消えたわけではないが) 実装の多かったC++はJavaに敗れたが(それでも消えたわけではない) それにしてもDelphiがすぐ消えたとかマジで言ってるのか (C#やTypeScriptと名前を変えて生き残ってるのは別としてw)
200 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:48:50.43 ID:/2mvjJQZ.net] > それにしてもDelphiがすぐ消えたとかマジで言ってるのか 消えたよ。すぐとは言ってないよ。 でも消えたよ。
201 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:50:14.83 ID:hfdn/Wn2.net] >>197 すぐにと言ってるようにみえるのだが 俺の気のせいなのか
202 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:51:36.31 ID:hfdn/Wn2.net] ちなみにDelphiの最新の安定リリースは22日前だそうだが
203 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:51:40.44 ID:/2mvjJQZ.net] >>198 Delphiがすぐとは言っていない。
204 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:53:17.71 ID:hfdn/Wn2.net] 「一つの会社に依存しているものはすぐ消える Delphiとか」 みたいに言っておいてすぐ消えてないのかよw 結局、ひとつの会社に依存していてもすぐ消えてないだろw
205 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:54:54.93 ID:/2mvjJQZ.net] >>199 消えたというのは表舞台からという意味だ。 使われなくなったということ。 そりゃどこかに使ってる会社あるだろ。 まあ具体的な数値で知りたいのなら、 人気言語投票などで1%未満は消えたでいいんじゃね?w
206 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:55:36.43 ID:hfdn/Wn2.net] DartはJavaScriptに敗れ去ったがTypeScriptは敗れ去らなかった これはTypeScriptがJavaScriptの拡張として成り立っており、 JavaScript機能を全て含んでいるからだ それだけJavaScriptが優れているんだろうね
207 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 18:57:06.92 ID:/2mvjJQZ.net] >>201 > 結局、ひとつの会社に依存していてもすぐ消えてないだろw いやー、でも速かったよ。 ほんの数年で全く使われなくなった。
208 名前:デフォルトの名無しさん [2015/05/03(日) 18:59:13.36 ID:I75TtZUp.net] >>195 初期のほうではブロッキング関数が見つからない。 いつから登場するかは探してみる。 Index of /docs/ https://nodejs.org/docs/
209 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 19:02:18.97 ID:hfdn/Wn2.net] >>204 まあ小学校時代の数年は長く感じるけど、大人になってからの数年は あっという間だというし、人の感覚はそれぞれだね それにしても数年ってのはないだろ 少なくとも5年以上は人気だった気がする
210 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 19:13:30.76 ID:hfdn/Wn2.net] ああ、なるほどTurboPascalはDelphiじゃないという扱いなのね それだと確かに長くはないかも それでも5年以上人気だったと思うが
211 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 19:25:12.71 ID:xkutDKZm.net] >>205 パッチファイル的な使われ方もするんだからブロッキングAPIがあってとうぜん
212 名前:デフォルトの名無しさん [2015/05/03(日) 19:26:27.52 ID:I75TtZUp.net] nodejsのこれらのバージョンにはreadFileSync関数なし。初出はたぶんv0.1.30。 v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6 v0.1.0 v0.1.1 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15 v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.2 v0.1.20 v0.1.21v0.1.22 v0.1.23 v0.1.24 v0.1.25 v0.1.26 v0.1.27 v0.1.28 v0.1.29 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7 v0.1.8 v0.1.9 Index of /docs/ https://nodejs.org/docs/
213 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 19:31:11.34 ID:hfdn/Wn2.net] だから何なんだ v0.1.30? 今はv0.12.2だよ
214 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 19:34:45.13 ID:/2mvjJQZ.net] >>209 つまり、v0.1.30でnodeは ノンブロッキング徹底されているんだって言う お前の希望はついえたってこと。 v0.1.30、リリース日2010.02.22 それは0.0.1から1年も絶たない出来事であった
215 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 19:39:51.70 ID:/2mvjJQZ.net] だが安心して欲しい。それはnodeの話であって JavaScriptエンジンの話ではない。 JavaScriptエンジンはどれもノンブロッキングが 徹底されているのだ。 もちろん(nodeの)V8エンジンもChakra(JScritpt)もね!
216 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 20:27:40.06 ID:RUldsALn.net] まだやってるのか... アホか
217 名前:デフォルトの名無しさん [2015/05/03(日) 20:28:39.20 ID:I75TtZUp.net] nodejsは全体として、言語として、ノンブロッキング言語であることには違いがない。 ノンブロッキング言語に特例としてブロッキング関数が入ってるだけ。 sleepを入れたとしてもそこでプログラムが停止しない。 停止するJavascript環境も存在する。 動作が違うことを互換性がないと言っている。
218 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 20:39:35.46 ID:/2mvjJQZ.net] > nodejsは全体として、言語として 言語じゃねーよw 何いきなり間違ってるんだ。 そこから訂正してやり直せ
219 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 20:45:12.18 ID:TY1Q/wFn.net] そりゃ、まあnode.jsで WScript.Sleep(1000); ってコピペしても動かないだろうよ。 Sleepという根幹機能ですらJavascriptは互換性がない言語だと 俺も認めざるをえないな!w
220 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 20:45:28.34 ID:/2mvjJQZ.net] あまりいじめると泣くかな?w でも
221 名前:自分が悪いんだよ。 あまりにも無知だからね。 [] [ここ壊れてます]
222 名前:デフォルトの名無しさん [2015/05/03(日) 20:59:27.21 ID:I75TtZUp.net] Node.jsはオモチャ - from scratch 世界は非同期である。だから、プログラミングも非同期であるべきである。 実際にはムーアの法則には限界があり、これまで以上のリソース拡大は嘘になる可能性がある、これ以上のパワーを得るためには同期による待ち時間を減らすべきである。 Erlang, scala, golang, nodejs は全てが純正の非同期システムであり、それらを試せば、違いが分かるだろう。 Nodejsは非同期プログラミングを学ぶ上で、世界で最も優れた言語である。javascriptを打ち負かせる言語は他にいない。 Nodejsの基盤は素晴らしい(libuv, V8)、バッテリー同梱(batteries included)を除いて、ユーザーはとても短い時間でこの素晴らしさを提供する事ができる。 Nodejsは非同期のクライアント、サーバーのプロトタイプを構築する上でベストなツールである。 常にNodejsはこれまでのAPIを壊してくる。Node v0.4、0.6、0.8にかけて悲劇を見てきた。 この事を覚えていて欲しい、nodejsを仕事で試すのは辞めたほうが良い。 娯楽かプロトタイプ以上のものを作り、現実の問題解決を望む場合、ErlangやScala、Golangのような現実的な言語を使うべきである。 from scratch的感想 Node.jsは素晴らしいといいつつも、APIの互換性が保たれていない事に異を唱え、それをなんとかCrockfordやRyahに伝えたいのかな、と思わせる感じ。 ニコニコ超会議でも @KOBA78 さんが一番Nodeに向くのは今はLTネタである、と言い切っていたので、通じるものがあるのかな、と思いました。 また、同期的、非同期的の話は前回のNode学園で出た 同期的関数は同期的でなければならない。非同期的関数は非同期でなければならない。 という話を思い出しました。いずれにせよ、Node.jsは今回の記事にも書いてある通り、非同期プログラミングを学ぶにはこれ以上ないツールです。 yosuke-furukawa.hatenablog.com/entry/2012/07/07/001547
223 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 21:00:38.31 ID:/2mvjJQZ.net] >>218 まずは、訂正しろって言っただろ 何逃げてんだよ。 卑怯者か?
224 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 21:08:50.34 ID:hfdn/Wn2.net] >>218 お、2012年か 1年進んだな!w
225 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 21:10:42.69 ID:/2mvjJQZ.net] ここでネタバレをすると ID:I75TtZUpは2005年から 記憶喪失だったんだ。
226 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 21:28:52.72 ID:r6wgrf+g.net] 2015年の話しようよ。 あとプログラミングとかが昭和で止まってる人間は申し訳ないが消えてくれ。
227 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 21:38:09.91 ID:/2mvjJQZ.net] 2015年の今ではNode.jsという言語が 生まれたのである。ドヤァ!
228 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 22:04:37.60 ID:O5TW7WMk.net] スレの流れがアホらしすぎ こどもの喧嘩か!
229 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 22:06:02.43 ID:/2mvjJQZ.net] 子供なんだろ?
230 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 00:20:47.52 ID:QPogxQWE.net] apache2.4とnode.jsって、何方がサーバーとして優れてるの? apache serverとphpの方が進化し続けることができそうなんだけど
231 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 03:16:13.97 ID:3D0tbtvP.net] とりあえず、JS厨は有害だということが分かったね
232 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 06:20:36.08 ID:3D0tbtvP.net] >>190 別にケチつけたいとか何でもなく Lisp とかやたら実装あるし、長生きだなとか思った
233 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 06:23:20.12 ID:3D0tbtvP.net] おお、227とID同じだ。初めて見た
234 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 07:03:16.84 ID:J0bB/MBQ.net] >>227 "こども" っていうのはお前のことな
235 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 07:31:38.85 ID:IlsJpzht.net] JSが使われるいろんな場面でノンブロッキングを徹底する必要はあるけど、 それ=非同期関数を使いまくったり、コールバックで書かないといけないというわけじゃない。 Worker立てて別プロセスで同期処理しても目的は達成されるわけだし、ジェネレータ使えば非同期処理を同期的に書ける。
236 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 07:38:45.62 ID:1poVLIgC.net] それにNode.js環境であればreadFileSyncなどのように 非同期関数も存在する。
237 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 17:21:24.39 ID:Xz6tXobb.net] 非同期関数じゃなくて同期関数でしょ で、それをIOと関係ないところで使えば問題ないってことでしょ
238 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 18:12:17.94 ID:+glKkzJw.net] 脱ブラウザ化を前提にした新しいインターネット体験が既に始まった現代においてjsとか何の冗談ですか? 老害はおかえり下さい
239 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 18:48:25.24 ID:Xz6tXobb.net] WebはWebでServiceWorkerのPush通知みたいにちゃんと時代に合わせて進歩してきてると思うよ。 まあJSの良い所は柔軟性と、機能が少ないからこその拡張性だろうね。
240 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 19:53:27.82 ID:wYDx+Rh8.net] >>233 readFileSyncというI/Oの同期関数を I/Oと関係ないところで使うって どういう意味?
241 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:01:22.49 ID:prYoIKs4.net] 一般的に同期関数をメインスレッド→ Nodeだと基本リクエストを受け付けるサーバ、そういう意味でのIO WebだとDOM操作、そういう意味でのIO で使うのは厳禁ということでしょうよ。
242 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:35:24.91 ID:wYDx+Rh8.net] Nodeってスレッド一つしか無いんだけど?
243 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:37:53.08 ID:40ee8aRr.net] Nodeの同期関数はバッチ処理やちょっとしたユーティリティの類も作れるようにという意図だね もちろんオンラインで使えば確実に固まる
244 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 20:54:14.33 ID:prYoIKs4.net] >>238 子プロセスを立ちあげられる。 それと「Node」はシングルスレッドではない。 スループット向上の為バックのio処理は数スレッドで動いてる。
245 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:07:03.45 ID:WoMWhSqx.net] 記者の眼 - Node.jsの仕組みはWebアプリ開発者も知っておくべき:ITpro itpro.nikkeibp.co.jp/article/Watcher/20121003/427288/ Node.jsは、シングルスレッドでしか動作しない。 大量のアクセスに対しては、とにかくリクエストを受け付けてしまう。 だが、シングルスレッドなので一つひとつのリクエストを高速に処理していかないと、処理すべきリクエストは増える一方となる。 シングルスレッドでも高速に処理するため、Node.jsは「イベントループ方式」と「非同期I/O処理」を実装している。
246 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:20:49.32 ID:QPogxQWE.net] ttp://jxcore.com/home/
247 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:23:58.58 ID:QPogxQWE.net] ttp://en.wikipedia.org/wiki/Web_worker
248 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 21:25:38.95 ID:QPogxQWE.net] ttps://nodejs.org/api/cluster.html
249 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:21:39.41 ID:prYoIKs4.net] >>241 シングルスレッドなのはV8エンジンのメインスレッドであって、 Nodeの心臓部であるlibuvは非同期処理を効率的にこなすためにマルチスレッドで動いてる。 またChild Processモジュールを使ってメイン
250 名前:からサブのNodeのプロセスを立ち上げたり、 一般的なサーバ用途であればそのロードバランサをClusterモジュールに任せることも出来る。 [] [ここ壊れてます]
251 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:33:43.75 ID:40ee8aRr.net] >>245 V8エンジンがシングルスレッドである以上、一つのコールバックが同期IOをやれば当然全部固まるだろ それを問題にしてるんであって、内部がどうなってようが関係ないよね また、子プロセスを立ち上げるとNode.jsのアーキテクチャのメリットが完全にスポイルされるわけだから 結局バッチ処理などのまとまった処理にしか使えない
252 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:33:49.78 ID:QPogxQWE.net] ttp://nikhilm.github.io/uvbook/threads.html
253 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:43:56.08 ID:prYoIKs4.net] >>246 だから最初からバッチ処理などのまとまった処理には使えるよってことを皆言ってるんだよ。 >>236 からの流れ完全無視ですか? それと子プロセスを立ち上げるのはNodeのメリットを削がない。 セッションごとに立ち上げるわけではなく、あくまでマルチコアを有効に使おうというものであるから。
254 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:45:51.72 ID:FuYVSRSb.net] Node.jsって万能なんだな
255 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 22:49:08.26 ID:prYoIKs4.net] 上で最初は非同期関数しかなかったという話が出てるけど、 一番最初は作られた目的からしてもサーバサイド限定だったけど、 やっぱそういう用途にも使えた方がいいよねということもあって同期のファイルアクセスAPIが用意されたのだと思う。 ちなみに同期のネットアクセスAPIは用意されてない。野良モジュールであるけど。
256 名前:デフォルトの名無しさん mailto:sage [2015/05/04(月) 23:54:57.01 ID:wYDx+Rh8.net] >>248 いやいや話の流れがわかってない。 Node.jsはノンブロッキングに特化しており、 JScriptはそうではないという話をしていたんだ。 別プロセスで動かせば、ノンブロッキングだというのなら JScriptでも同じことになる。 矛盾してるんだよ。 まあそもそもこいつは、Node.jsを言語と言っているし 言語と実行環境の区別がついていないやつだから 最初っから矛盾してるんだけどな。
257 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 00:36:20.53 ID:Y7D43j5s.net] >>251 Node.jsはノンブロッキングに特化してるということは今さら言うまでもなく誰もが認めている だけど同期関数が無いだとか、別プロセス立ち上げるのはNodeのありように反してるとか、 間違ったことを言い張るから皆から突っ込まれてるんでしょ それに単純にノンブロッキングで何かJSで重たい処理をする必要があるときは、 WebならWorker、Nodeならchildprocessみたいにメインの外でやる以外無い そのような用途のためにもchildprocessが用意されてる あともう一度言うけどノンブロッキングである必要があるのは 沢山のイベントをリアルタイムに履かないといけないからで、 バッチ処理的に使うのであれば関係がないこと
258 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 00:47:58.83 ID:8OQq3apA.net] >>252 > Node.jsはノンブロッキングに特化してるということは今さら言うまでもなく誰もが認めている > だけど同期関数が無いだとか、別プロセス立ち上げるのはNodeのありように反してるとか、 > 間違ったことを言い張るから皆から突っ込まれてるんでしょ 俺に言うなよ。 俺がreadFileSyncの例を持ち出して、同期関数があることを 教えてやったんだよ。 別プロセス立ち上げるなとも言ってない。 JavaScriptの話と実行環境の話をごっちゃにしている奴がいたから からかって遊んでいただけだ。
259 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 01:13:53.37 ID:0S25WcbA.net] こうやって言い負かされて形勢不利になると ふざけたんだよ〜って逃げるヤツってどのスレにもいるんだなw
260 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 01:25:58.72 ID:8OQq3apA.net] 言い負かしたレスってどれだい?
261 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 01:37:58.48 ID:TIrf+R0e.net] ★ 炭水化物(小麦、米)=砂糖 ★ ・「いつものパン」があなたを殺す: 脳を一生、老化させない食事 (デイビッド パールマター 2015/1/16) ・ダダモ博士のNEW血液型健康ダイエット (集英社文庫) O型とB型は小麦、とうもろこし、蕎麦を食べると体調が悪くなり太ります ・統合失調症、うつ病、パニック障
262 名前:害は糖を抜くと3日で治った。 ・チョコレートは超危険食品 強い依存性、糖尿病の恐れ…妊婦や子供は摂取要注意 http://aoi.bbspink.com/test/read.cgi/club/1416413686/235 ・すべての不調は首が原因だった! ・長引く痛みの原因は、血管が9割 (奥野祐次ワニブックスPLUS新書2015/2/7) ・あなたの不調、実は「脳脊髄液減少症」かも!? ・その不調は遅延型フードアレルギーです! ↓ http://wc2014.2ch.net/test/read.cgi/shapeup/1425713834/73 [] [ここ壊れてます]
263 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 08:22:20.17 ID:bbS1ITn2.net] で、結局同期非同期について何が言いたかったのだろうか。
264 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 09:15:17.82 ID:iBC7PNnN.net] >>257 御託を並べただけでしたね♪ こういう奴いるよね。御託並べて悦に浸っちゃうお馬鹿さん。
265 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 10:11:35.57 ID:uw/h34kl.net] 2つの言語環境で文法や関数が完全一致していても、完全同期と完全非同期(例外的非同期と例外的同期)では同一コードでも出力が違う。
266 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 11:06:39.15 ID:t+uHmPE6.net] 具体的に、何が違うかを書いたら? 一方の出力は、これで、 もう一方は、こうって言う風に 具体的に。
267 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 11:41:44.59 ID:+V6CgyJV.net] >>259 日本語でプログラミング学ぼうとすると効率悪そうだよな。
268 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 12:46:40.50 ID:Y1anEcJj.net] ID:prYoIKs4の説明がわかりやすいから常駐してほしい
269 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 21:33:39.70 ID:P8IV0u4y.net] いや何を主張したいのかが理解できないわ 「NodeJSは基本的に非同期IOに特化しているが、バッチ処理などの単発の処理のために同期IOが使える」 と言いたいだけなんだったらなんでchildprocessを持ち出すのか この文脈で子プロセスと同期IOを使った非同期処理を引き合いに出し、さらにNodeJSはマルチプロセスでも効率的な処理が行えるというようなことを言えば セッションから子プロセスを起動するようなNodeJS的に明らかに間違った使い方をしようとしてるのかと 誤解されるのは当然だと思うよ
270 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 22:23:18.89 ID:Y1anEcJj.net] はぁ?itproみたいなイベントドリブンだの非同期処理だの、 誰でも知ってるレベルのことだから。 誰がみても、ID:prYoIKs4の解説の方が処理系の実装まで、もっと突っ込んでるだろ
271 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 22:54:07.22 ID:P8IV0u4y.net] 解説以前に、何が言いたいのか意味不明だと言っているんだけど?
272 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 22:55:50.52 ID:P8IV0u4y.net] っていうか>>264 はID:prYoIKs4が結局何を言いたかったのか理解できたのか? 理解できたなら教えてくれ
273 名前:デフォルトの名無しさん mailto:sage [2015/05/05(火) 23:57:51.46 ID:Y1anEcJj.net] >>266 死ねよカス。オマエは煽りたいだけだろw >>240 から>>245 の流れで、node.jsのIOとcluster,child processの概要を把握したよ。
274 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 00:03:10.42 ID:M8LrA/ZF.net] node.jsのIOとcluster,child processなら 知ってて当然の話だろう?
275 名前:デフォルトの名無しさん mailto:sage [2015/05/06(水) 00:10:11.52 ID:mbn+dbFM.net] ID:prYoIKs4は「シングルスレッド」という言葉尻に反応してるだけだね Nodeがシングルスレッドだというとき、スクリプトスレッドがシングルスレッドであることを意味するのは当然の暗黙の了解だし Node自体の実装がマルチスレッドだなんて当たり前すぎていちいち特筆するようなことじゃないわな