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/
151 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:16:00.13 ID:Q2e6sJJ5.net] >>147 JavaScriptはネイティブ言語同等の扱いになってるね。 ここまでOSに採用される言語は、もう他にないのでは?
152 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:18:36.01 ID:Q2e6sJJ5.net] >>146 あるぞw Chakra (JScript engine) en.wikipedia.org/wiki/Chakra_%28JScript_engine%29 This article is about a JavaScript engine. For other uses, see Chakra (disambiguation). Chakra is a JavaScript engine developed by Microsoft for its Internet Explorer 9 (IE9) web browser. A distinctive feature of the engine is that it JIT compiles scripts on a separate CPU core, parallel to the web browser.[1][2] Though Microsoft has in the past pointed out that other elements, such as rendering and marshalling, are just as important for a browser's overall performance,[3] their improvements to the engine were in response to evolving competing browsers, compared to which IE8 was lagging behind in terms of JavaScript processing speed.[4] SunSpider tests performed on November 18, 2009 showed the PDC version of IE9 executing scripts much faster than IE8, but slower than Firefox 3.6, Chrome 4, and WebKit Nightly.[3] The same test performed on March 15, 2010 showed the first IE9 Platform Preview (using the then-current version of Chakra) to be faster than Firefox (with SpiderMonkey), but slower than Safari (with SquirrelFish Extreme), Chrome (with V8), and Opera (with Carakan). On March 8, 2011, Microsoft published results showing the 32-bit Internet Explorer 9 to be faster than Safari, Firefox (with TraceMonkey), Chrome, and Opera.[5] March 2011 performance tests for ZDNet concluded that Internet Explorer 9 (32-bit), Chrome 10, and Firefox 4 release candidate were "pretty evenly matched."[6]
153 名前:デフォルトの名無しさん [2015/05/03(日) 17:24:25.99 ID:I75TtZUp.net] Javascriptがダメな所は、Chakraとかnode.jsとか独自仕様で開発する所。 たとえばnode.js互換で実装して速度を競うんだったらいい。 それをさっきから指摘してるわけだが。互換性をなくそうとしない。
154 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:25:55.49 ID:hfdn/Wn2.net] ChakraとV8(node)はとても互換性が高いと思うが 独自ってなんのことだ?
155 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:28:29.44 ID:Q2e6sJJ5.net] 150のふり 独自って言ったら独自なんだ! 名前が違うのがその証拠!
156 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:30:02.77 ID:Q2e6sJJ5.net] 皆わかってるけど、I75TtZUpって 言語と動作環境とライブラリを 全部ごっちゃにしてるんだよねw だからWSHがでてきたりJavaScriptと node.jsを比較したりするw まあ、馬鹿だよ。こいつは。
157 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:30:59.81 ID:Q2e6sJJ5.net] > Javascriptがダメな所は、Chakraとかnode.jsとか独自仕様で開発する所。 Rubyに例えると Rubyがダメな所は、Railsとか独自仕様で開発する所。 まあこんな感じだろう。
158 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:35:43.74 ID:hfdn/Wn2.net] node.jsのエンジンがブラウザのChromeと同じエンジンだってのも知らないんだろうな
159 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:36:25.20 ID:kwbWbObW.net] JavaScriptはCのように手続き型っぽく書けたり、Javaからメソッド取ってたりと 落ち着きがあるんだよな。 それに比べてPythonやRubyはやんちゃだから落ち着いたOSの標準スクリプトになるのは難しい。 但し落ち着いたを古臭いと言い換えても成り立つ。
160 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:36:50.96 ID:hfdn/Wn2.net] ことによると、Chromeも知らないんじゃないか 2006年あたりから時が止まってるようだし
161 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:40:08.40 ID:qMGCv9q/.net] Chakraはただのエンジンだろ? node.jsとは全く土台が違うし つーかMicrosoftもVisual Studio CodeじゃChromiumとNode.jsで実装されてるし 一枚岩じゃないな
162 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:41:40.31 ID:hfdn/Wn2.net] >>158 それらは全部ES5の仕様の互換性を当然のように守っているから エンジンがどれだろうと問題ないのだろう
163 名前:デフォルトの名無しさん [2015/05/03(日) 17:43:36.16 ID:I75TtZUp.net] Node.jsと他のJavascriptエンジンで決定的な差はノンブロッキングを徹底してるかどうか。 たぶん、Chakraがノンブロッキングを徹底することはないとおもうが。ここが一致しないと動作が違ってくる。
164 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:44:18.99 ID:hfdn/Wn2.net] >>160 クッソワロタw
165 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:44:34.52 ID:Q2e6sJJ5.net] >> 158 > つーかMicrosoftもVisual Studio CodeじゃChromiumとNode.jsで実装されてるし そこが今のマイクロソフトの怖いところなんだよな・・ ナデラCEOになってから、倫理的にも技術的にもビジネス的にも 正しいことをし始めた。やってることはマイクロソフトが儲かるという ビジネス的に正しいことなんだが、それでいてオープンソース陣営とか かつてMSとは敵対関係にあったような人たちが喜ぶことをしている。 だから面と向かって批判できない。正しいやり方で マイクロソフトを大きく拡大しようとしている。 あと5年ぐらいたてば、かつて無いレベルであちこちを侵食しているよ。
166 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:45:03.82 ID:+1/GzoNu.net] ttp://techcrunch.com/2015/04/29/microsoft-shocks-the-world-with-visual-studio-code-a-free-code-editor-for-os-x-linux-and-windows/#.prq6v4:bz08
167 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:45:39.47 ID:Q2e6sJJ5.net] >>160 > Node.jsと他のJavascriptエンジン え? Node.jsはJavaScriptエンジンじゃありませんが?
168 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:48:05.59 ID:hfdn/Wn2.net] Visual Studio Codeってそういえばまだ一週間経ってない出来事だったっけ 時代の変化が早すぎてもう古い情報のように聞こえてしまうw
169 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:48:08.67 ID:Q2e6sJJ5.net] 今のMSの勢いだと、Node.jsの実行エンジンとしてChakraを 使えるようになるってこともありそうな気がするね。 >> ID:I75TtZUp 俺が言ってる意味分かんないでしょ?w
170 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:49:47.44 ID:qMGCv9q/.net] JavaScriptで実装されたエディッタでインテリセンスがサクサク動く時代だし もうネイティブがどうとか無意味っすわ
171 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:50:30.30 ID:hfdn/Wn2.net] ノンブロッキングを徹底するかどうか (`・ω・´)キリッ
172 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:52:07.63 ID:Q2e6sJJ5.net] Chakraはノンブロッキングを徹底してるよね。 ブロッキングしている所ってどこよ? 言ってみなw
173 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:53:34.95 ID:Q2e6sJJ5.net] JavaScriptがNode.jsで採用されたのは、 JavaScriptの実装(v8、SpiderMonkey、JScript、Chakra等)が ノンブロッキングを徹底していたからなんだよね。
174 名前:デフォルトの名無しさん mailto:sage [2015/05/03(日) 17:57:25.44 ID:VNMbSaqh.net] ちなみに、Node.jsでブロッキング関数は fs.writeSync みたいに、後ろにsyncが付いているよ。 もちろん、JavaScriptエンジンはノンブロッキングが徹底されているけどね! 具体的にはChakraとかね! 等と言ってると、無知なID:I75TtZUpは ますます頭が混乱してそうで楽しいw
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のアーキテクチャのメリットが完全にスポイルされるわけだから 結局バッチ処理などのまとまった処理にしか使えない