【IT】Node.js 10がリリース、N-APIが安定化しV8非依存に
■ このスレッドは過去ログ倉庫に格納されています
Node.jsの最新バージョンとなるNode.js 10がリリースされました。
Node.jsは12カ月ごとに偶数バージョンの長期サポート対象リリース(LTS:Long Term Support)が登場することになっており、今回リリースされたNode.js 10も半年後の10月から2年半、長期サポート対象のバージョンとなります。
と同時にこの4月末で、2年半前に登場したNode.js 4.xの長期サポートが終了(EOL:End-of-Life)しました。
2015年9月に最初のリリースが登場し、10月から長期サポートに入ったNode.js 4.x(コード名Argon)は、Node.jsの開発者たちが分裂してNode.jsとio.jsの2つに分かれた後に再び両者が統合し、統一組織であるNode Foundationを結成して初めてリリースされたLTSです。
Node.js、初のLong Term Support対象となる「Node.js 4.2」コード名“Argon”がリリース。リリースから2年半はメンテナンス − Publickey
あれから2年半が過ぎ、Node.jsははじめて長期サポートのサイクルを1つ回したことになります。
Node.jsはAWS Lambdaのようなサーバレスコンピューティングの基盤としても使われ、アプリケーションのインフラとして重要なソフトウェアと見なされるようになりました。そのNode.jsが無事に長期サポートサイクルを1つ回したことで、このソフトウェアに対する信頼もまた高まったと言えるのではないでしょうか。
Node.js APIが正式版となり、JavaScriptエンジンが入れ替え可能に
Node.js 10の最大の特徴は、これまで実験的実装だったNode.js API(N-API)が正式サポートとなったことです。Node.jsはJavaScriptエンジンとしてV8を採用し、V8に依存した実装になっていました。これをAPIを策定することで切り離し、JavaScriptエンジンをプラガブルにしたのがN-APIです。
これによってV8がメジャーバージョンアップしたとしてもNode.js側で再コンパイルなどをすることなく組み込むことができるようになっただけでなく、V8以外のJavaScriptエンジン、例えばマイクロソフトが開発しているChakraCoreなども利用できるようになります。
実際に実験的なリリースとしてNode.jsのJavaScriptエンジンにChackraCoreを組み込んだNode-ChackraCoreリリースが公開されています。
ChackraCoreリリースでは、実行時の情報を記録し、アプリケーションがクラッシュなどのエラーを起こしたときに記録を基に何が起きたかを再現しつつVisual Studioの拡張機能を用いてデバッグできるTime-Travel Debuggingなどが可能になっています。
https://www.publickey1.jp/blog/18/nodejs_10n-apiv82ltsnodejs_4xeol.html >>1
5ちゃんの奴らにそんな高度な話がわかるわけないだろ アプリ化して実行速度がそこそこあれば普通に顧客相手にでも広がっていくのかね
ウェブ屋さんも仕事減ってるからJS程度ならいつでも書けるだろうし、時代の流れにも
合ってるだろうけど スマホアプリもウェブキットでクロスプラットフォーム化してるけど、逆にネイティブ書けずに
実力つかない人間が増えるってのは業界の流れとしては良くないんだけど >>4-5
きょうびのJS舐めてるっしょ
自分はJSのエコシステムの進化というか変化が速すぎるのであまり深入りしないようにしてる >>6 別にだな、プラグインは他人が書いてくれるしUSBドライバなんかもあるから
自分で深煎りしなくても良いだろ
BTなんかも叩けるし、勉強しなくても使う分には何も困らないわ >>6
自分も安定するまで待ちかなー
JSにこだわる必要もないし いつの間にかJavascriptでも、デスクトップアプリすら作れるようになってるし
ソースコード見ても何か違う言語を見てる感覚だったわ
引退を決意した瞬間だった 実際DjangoやPlayよりも使いやすいんだよなぁ
Chakraは使いたくもないからどうでもいいけど
WebSocketがらみのところはnode一択のような気がする こういうのがあるんだね。
2NNで見てきたけど勉強になったよ。 複雑なアプリケーションを作らないならNode.jsいいよね >>13
TypeScriptからJavaScript吐くようにすると分かりやすくなる >>2
別に高度な話じゃないが?
ああお前さんにとっては、って事かなるほど。 Django React bootstrapでそこそこのものが出来るんじゃね?
Django良いと思うけどなあ。 pythonの勉強にもなるし。 >>22
みんなおまえと一緒じゃないんだよ
プログラマーって人付き合いないから皆自分と同じに思えるんだろうけど >>13
Windowsじゃ20年前からJScriptのHTAでデスクトップアプリ作れてるんだがwww >>24
ホントになにも高度な話はなんてしてないんだけどな >>2
たかがJavaScriptごときに何を言っているのやら
コーダーの仕事なんぞ最底辺がやることだぞ V8のかわりにChackra入れるとか何の冗談だw node.jsが分かればサーバサイドアプリもクライアントアプリも作り放題
新しい型のbytearrayがどんどん実装されててバイナリデータの扱いもお茶の子さいさい
v8ランタイムやNon-Blocking IOが優秀すぎて、
C++と性能が変わらないくらい近づいてきた
確かブラウザ上でJavascriptでWondows95動かしてるデモサイトがどっかにあったな nodeは楽しいよ。
fishと併用して使えるモジュールもあるしちゃらっと書いて試せるreplもある。
リファレンスは充実してるしサーバも簡単に作れる。スクレイピングも楽勝
jsはnodeからやったなぁ。 >>24
専門的な内容のスレなんだから、ど素人というか門外漢には入門的な内容ですらわかるわけねーだろ
IT以外だって大概そうだろうが おもったよりllvm周りが進化しない。
プラットホーム互換を頑張り過ぎずオブジェクトハンドリングやAPIラッパー、言語間グルーインタフェイスはざっくりインタプリタにしちまえばいいのに
のろのろしてるからJSなんかがのさばる。 >>33
ジャップはバカの癖にプライドだけは雲より高いからな
「わからないから教えて」の一言が言えねーのさ それより
javascriptのマルチスレッド対応はいつ? node.jsで作った簡易的なサーバーの安定度がヤバイ
スタンバイから復帰したりしても
1度も落ちたことがない >>36
シングルスレッドは欠点ではなく長所
マルチスレッドになったら逆に性能落ちるよ
シングルスレッドである事でマルチスレッドの同期にかかるコストを極小化し、
Cpu utilをフル活用てきている 公式にデカデカとしんぐるすっどれにした理由書いてなかったか?C10Kもんだいがなんたらかんたらって長々と説明してたような…
あっ!モンキーには文字が読めないんだったwww Webサーバアプリだけがプログラミングじゃないからなー >>5
こういう奴って自分が覚えたものが時代遅れになるのが怖いだけなんだよな。 >>42
しかしJavaScriptの仕事なんて低単価の底辺仕事ばかりなのも事実
得意げに書き込んでる奴も月手取り30にも届かない >>41
いや、マルチスレッドにしたいならそれは全然可能やで
それをやりたかったらchild processをフォークすればいい
シングルプロセスマルチスレッドは仕様上できないが、
子プロセス生成によるマルチプロセスマルチスレッドなら仕様上可能
ただし、俺がプログラミングしてた頃のNode.js 6.xではプロセス間通信に課題があり、大量データをプロセス間で同期させるのが難しかった
難しい、と言うのは性能面ね
数十MB程度のデータを送信するのに数百ミリ秒もかかってしまう世界
ここが最適化されたら、もうNode.js以外でコーディングするモチベーション無くなるかもな 「ChackraCore」じゃなくて、「ChakraCore」だってばよ >>44
それはちょっとずれてると思ったけどそういう奴は少数ながらいるのかもな
見たことないけど
大抵は過去やったことと今やってることが積み上がるだけで
差なんて大した問題じゃない この歌のサビはイケる
ガッツだぜ、愛は勝つ、それが大事
そして2018年は
『人生はリベンジマッチ』
↑
名曲、ユーチューヴ検索
★カバー、コピー大歓迎。 女性が歌ってもイイ JavaScriptエンジンをプラガブルにしたって聞こえはいいけど
V8を切り離したってとこはあんまり歓迎したくないんだけど。
ブラウザ互換問題の悪夢再びってのが目に見える。 >>43
気分で使い分けてもええやで。
ぶーとりあくと queue処理したくてnode.js使ってみたけど、、
非同期プログラミングってのは癖が強いな。 >>5
いやいや、Node.JSってサーバー用途が主だから。 >>48
ネイティブアプリ作った経験があっても、javqscriptのフレームワークに積み上げなんてないぞ。
あれはほとんどwebの領域だから。 >>45
手取り30だと全然底辺じゃないな
Javaの底辺仕事は手取りだと15未満とか普通だから node.jsの非同期を気をつければ平気だろう。
非同期ベースではあるが、同期バージョンや同期関数もあるし。
純粋関数型よりかはふつうの言語。 javascriptみたいなクソ言語でサーバーを動かそうって発想が間違ってる。
クライアントサイドで仕方なく使うものだろ。 >>53
マルチプラットフォームテキストエディタのVSCodeやatomのベースになっているelectronではnode.jsが使われているね 軽い気持ちでチェックした
jslintの解析が最後まで進まず
大量の警告で涙を流した夜 nodejsの開発元って確かサムスンに行ったんやっけ。開発者は別だがネトウヨが知ったら歯ぎしりしそう 組み込み以外はjavascriptが選択肢として上がる世の中でしょ >>54
自分の周りのサーバサイドの連中はwebもついでにやっちまうからな
そういうもんだと思ってた >>58
俺もクソ言語だと思ってるからTypeScriptでラップしてる クライアント側でつかうならサーバー側でも言語統一してもいいとおもうが。
ただし現状、Javascriptでも互換性が低いけどな。 >>56
やばすぎる・・・
専任でやってる奴はどうなってしまうのか
先の食い扶持がまるでない まさかプリコンパイルしない言語が
王座を取るとは思いもしなかった。
そのうち、全部ブラウザでお仕事することになるかもね。 >>63
おまえの周りにサーバサイドの連中なんていねーだろバーカ。
アパッチとnglnxとgwsの区別もつかねーやろ >>67
WebAssemblyの登場でブラウザ==JavaScriptでもなくなるかもよ >>69
そういうレベルの低い話で何を得意げになっているのか・・・
ちょろめと狐の違いも分からんのかと聞いているのと変わらんな >>69
薄給の底辺仕事やってるだけあって自慢の中身も雑魚臭いな >>72
逆に突っ込むけど「サーバサイド」とhttpdみたいなwebサーバの区別はついてる?
全然違うんだけどフレームワークによってはちょろっと触るからな >>73
比喩というものを理解すれば皮肉で回答していると理解できるはず
理解できないと?義務教育からどうぞ >>75
いや具体的な話を振ってあげてるんだけどなんで比喩が出てくるの?意味わかんねーんだけど。
オラジャップ。こういう時は「わからないから教えてください」だろ?
日本語の使い方も忘れたんか?あ? まだMS-DOSだった時代、アセンブラでニーモニックのクロック計算までして
80286で3重スクロールのルーチンを作った。386時代までは学内で最速だった。
ところが486DXあたりで状況が激変する。
対して技術もなかったやつがC言語だけで作ったルーチンに速度で微妙に負けた。
何故だ?逆アセンブルしても無駄なコードが多くて到底こんなのに負けるはずがない。
理由はCPUの予測分岐機能が有効に働くようにコンパイラがコードを最適化していたからだった。
技術の進歩で俺が培ってきた職人技は古くさくなくなっていた。
人間が手作業でやる時代は終わった・・・愕然とした。
中学時代の友人がアニメに携わりたいといってセルを撮影する仕事に付いた。
数年後、アニメの現場はデジタル化してPCの操作などわからなかった彼は仕事を失った。
更に数年後、俺はOpenGLやいろいろな3DCGを学んだ、物理演算も触ってみた。
しかしそのまた数年後、unityやアンリアルの登場で俺が長年学んだことなんか
たいした知識もなく簡単に作れるようになっていた。
これからもこういうことはいくらでも起こるのだろう。
前置きが長くなったが、職人技など新たなツールの登場で簡単にひっくり返るのだ。
JavaScriptなんて底辺とバカにしてる奴が散見されるがJS周りの環境の変化を
知らなさすぎるとしか思えない。 >>76
皮肉も通じんバカが偉そうに吠えてやがるな >>77
や、益々仕事が底辺化するでしょ
製品をリリースする側だけに技術の蓄積があって
使う側は段々と技術不要になるってことだから >>77
手描きのアニメ職人が人知れず消えていってたんだな。パヤオが死んだら昔のアニメはなくなっちゃうのかな。
>>78
土に埋まれバーカ 非同期コールバック地獄はホントうんざりする
マルチスレッドと変わらないウザさ >>77
道具(文化)に依存しちゃうのは本当のエンジニアではないと言いますかね(;^_^A・・・
如何なる道具が発明されようと上手に使いこなすことが出来るのがエンジニアといいましょうか。
弘法筆を選ばすということでしょう。 まあ、道具や文化と一緒に自分まで陳腐化してどうすんだって話ですよね(;^_^A・・・
やはり我々は常にやりたいこと、やらねばならないことをテーマとして突き付けられておりまして、
そのテーマを実現するために道具を選定したり文化を作ったりするわけです。
そうした物事の順序を考えれば道具や文化に執着したり依存したりすることは非常に馬鹿げたことだと私には思えます。
私には歴史も、伝統も、文化も必要ではございません(;^_^A・・・
それらが進歩するために大切な事柄だとはどうしても思えないからです。
by かもめ党(鼎 梯仁) 素朴な質問やけど、このnodeのファウンデーションの人らはどうやって金稼いでんの?
何がモチベーションで頑張ってんの?
nodeがメジャーになったらファウンデーションのメンバーはリッチになれんの?
アパッチといい、リナックスといい、フリーの提供者のそこが昔からの疑問。 >>88
グーグルのもとのV8JavaScriptエンジンや、アルファ碁でつかってそうな人工知能ソフトウェアを無償公開するのと同じようなことだろ。
もともと社内で使っていてそのソフトウェア自体の販売で儲けられなくとも副次的な効果、儲けにつながるんだろ。 >>86
いや、全然使いますよ(;^_^A・・・
ApacheとNginxの用途の違いって単に初期設定の違いだったりします。
Apacheもそれ用にチューニングすればNginxと性能変わらないんですけどチューニングする手間があるじゃないですか?
それが面倒臭いとかApacheをチューニングするノウハウがないとかでNginx使ってるとこがほとんどです。
なるべくトレンドのものを取り入れないとエンジニアの採用に響くというのもあります。
ITのエンジニアって常に陳腐化の脅威に晒されているので意欲的な人はそこに敏感ですからね。
さっき話した道具や文化と共に陳腐化するのは避けたいって話です。 あとWWWサービスのエンジニアリングって業務系のIT土方ほど単価安くないですが、すごく高いということもないので穴場というか結構空白地帯なんですね(;^_^A・・・
昨年、流行りの仮想通貨産業で天下のMITメディアラボがエニグマというプロジェクトでICOを行ったのですが、もうウェブサイトの出来栄えが冗談みたいに酷くて、MITの人がやってるとは思えない代物なんですね。
すぐに落ちるはカウンター程度の機能がバグってるはサーバごとハッキングされるわで。
なんか手伝いましょうか(;^_^A?と真面目に思いましたよ。
(その後、仮想通貨エニグマはMITメディアラボという金看板もあって暴騰しましたのでまあ良いんですけど) ちなみにエニグマがハッキングされた原因はSSHのROOTパスワードが突破されたということでしたが、
そもそもなぜパスワード認証とかしてんだ?MITだろ?とか笑わせてくれましたね(;^_^A・・・
そんな間抜けな理由をちゃんと説明するところの誠実さがMITなのかなとも思いましたけど。
つまり、高度な学術的知識を習得している人たちが簡単な道具も使いこなせるのかというと、
彼らに言わせれば知らないものは知らないって感じなんですよ。
なんか、安心してしまいましたね。私は(;^_^A・・・ >>2
さすがにNodeとREACTぐらいわかるだろ 業界20年居るおっさんだが、
ほんとにサーバサイドとかクライアントサイドの実装言語の垣根がなくなりつつあるな〜と。
ネイティブっぽいアプリも何割かがスクリプト言語で実装されるのは珍しくなくなった。 >>88
普通に企業に雇われてる。
> 何がモチベーションで頑張ってんの?
世界中で使われるソフトを開発するのってクールじゃね?
> nodeがメジャーになったらファウンデーションのメンバーはリッチになれんの?
リッチの定義にもよるが
毎日好きなことして生活するのってリッチじゃん
> アパッチといい、リナックスといい、フリーの提供者のそこが昔からの疑問。
Linuxレベルになると、企業が自分がやりたいことを導入する場にもなっている >>77
なるほど
今はデータサイエンティストとか
AIエンジニアとかがそうなりつつある感じ バージョン依存が激しそうで手を出せない。
そろそろ良いの? >>98
>>97レベルのエアプログラマw
簡単にバージョン指定も切り替えも出来るぞ >>6
これが今の最新のライブラリですと宣伝してたものが
一年後にこんな時代遅れのゴミ使ってる人いませんよねと
言われる感じなのはつらい javascriptの進化の早さについては言語習得センスに加えて英語力が非常に重要になってくる
javascriptの解説本買っても習得に何ヶ月もかけてたらその間に廃止されるAPIが出てくるかもしれない
だから情報はWebで仕入れるしかない
だが日本語のサイトはほぼすべて英語サイトのドキュメントを和訳してちょっとだけ著者の感想を加えた程度のものだ
結局英語のjavascriptのサイトを読んで最新のトレンドを追い続けるしかない
これを苦痛と感じるか楽しいと感じるかで向いてる向いてないがわかると思う 英語にアレルギーがあるようなやつは大成できない
そゆこと 今日は画面を指でなぞる最新技術「フリック」というのを習得した
この調子で勉強して大成する >>81
PromiseでもSubscribableでもasync/awaitでもお好きなものでどうぞ Web鯖とかあんまし関わらなくなったから、頭がApache Tomcat全盛期で止まってるわ
とりあえずAjaxとかいうのをダウンロードしてくる >>1
これが日本語か? IT野郎は、これを理解できるのか? >>110
理解出来なくても理解した振りをして講釈たれる偉そうなゴミがジャップさ。
ムカつくだろ?見つけたら揶揄っていいんだぜ。
LTSってのは
例えばうぶんつ(linuxをwindowsっぽく扱えるようにしたやつの1つ)とかだとバグレポートを収集していっちゃん安定してるだろうバージョンを時期を決めて出す。
それまでユーザーは偶に動かなかったりエラー出したりする非安定版を使うんや。
でnodejsってのはjavascriptでサーバサイドを扱えるようにしたフレームワークで最近あちこちで流行ってるんや。
ちょっと前までそのコア部分をグーグルが作ったv8ってjavascriptのエンジンに頼ってたけど他も使えるようにしたるでって話や。ブラウザ毎にjavascriptエンジンはあるんやで。
火狐はシーザーモンキー。ieは知らん >>110
理解できるよ。別に難しいことを書いてない。 chatとかで相手がレスしたら自動でコメントが来ましたって連絡がくるアプリあるやろ。
あれがnodejsが流行るまではかなりムリな形で実現してたんやけど仕様がそれを解決する形に沿ったNodejsというのが出来てwebsocketみたいな無駄のない通信の決まりが作られる様になったんや。
おーぷんとか誰かがレスしたらピコンて音するやろ。あれをnodeが今までより実現しやすくしたんやな。 >>110
Node.jsを「豚骨ラーメン」、JavaScriptを「製麺」に置き換えて読むと楽勝で理解出来るよ >>114
ウザってーな。
おまえ俺より頭いいんだろ?代わりに割り込み処理周りの変遷語れよ。偉そうにしてる分当然出来るんだよな?それとも遠くからケチ付けてるだけか?
もしそうなら無能な猿はその不快な口を閉じてろ >>110
説明しようとおもったが。今回の最大のポイントはプラガブルなんだろ。
そこで似た言葉のプラグインハイブリッドを調べたところ、どう関係するかすぐわからなかったが。
車のほうがもともとの意味で言ってて、こっちはITの意味で言ってるようだ。
プラグインとは - IT用語辞典
プラグインとは、差し込む、差込口などの意味を持つ英単語。
ITの分野では、ソフトウェアに機能を追加する小さなプログラムのことを指す場合が多い。
多くのソフトウェアには外部のプログラムを追加することで機能を拡張できるような機構を備えており、追加するソフトウェアのことをプラグインという。
すでにある機能の追加や置き換えによって動作の一部を改変・補強するという意味を帯びていることもある。
「アドオン」、「拡張機能」などとほぼ同義だが、ソフトウェアによってはこれらの語がそれぞれ別の意味を表す場合もある。
http://e-words.jp/w/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3.html ニップのあいてー技術者?ってほんと偉そうにすることを仕事だと勘違いしてる驚愕のアホが多くて困る。
偉そうにすればするほど自分は仕事をしてるんだって錯覚するのか意味不明な倫理と謎科学?を振りかざしてプロジェクトを破綻に追い込む。
なんであんな性格の生き物がジャップのIT屋には居るのか謎。もしかしたら偉そうにすることで自分のなけなしのプライドを守ってるのかもしれない 118 名刺は切らしておりまして 2018/05/07(月) 23:49:37.53 ID:eIAsONGf
ニップのあいてー技術者?ってほんと偉そうにすることを仕事だと勘違いしてる驚愕のアホが多くて困る。
偉そうにすればするほど自分は仕事をしてるんだって錯覚するのか意味不明な倫理と謎科学?を振りかざしてプロジェクトを破綻に追い込む。
なんであんな性格の生き物がジャップのIT屋には居るのか謎。もしかしたら偉そうにすることで自分のなけなしのプライドを守ってるのかもしれない 111 名刺は切らしておりまして 2018/05/07(月) 18:32:41.17 ID:eIAsONGf
>>110
理解出来なくても理解した振りをして講釈たれる偉そうなゴミがジャップさ。
ムカつくだろ?見つけたら揶揄っていいんだぜ。
LTSってのは
例えばうぶんつ(linuxをwindowsっぽく扱えるようにしたやつの1つ)とかだとバグレポートを収集していっちゃん安定してるだろうバージョンを時期を決めて出す。
それまでユーザーは偶に動かなかったりエラー出したりする非安定版を使うんや。
でnodejsってのはjavascriptでサーバサイドを扱えるようにしたフレームワークで最近あちこちで流行ってるんや。
ちょっと前までそのコア部分をグーグルが作ったv8ってjavascriptのエンジンに頼ってたけど他も使えるようにしたるでって話や。ブラウザ毎にjavascriptエンジンはあるんやで。
火狐はシーザーモンキー。ieは知らん >>121
関係ないけどES6で追加されたyieldあるから別にawait/asyncなんて使わなくてもいいよね。って思うんだけどどう思う?
あれ?ちょっと待ってyieldを使うのと比べて何が変わったんらだっけ? >>122
Promiseを返(してくる|す)ならasync/awaitの方がすっきりする
まぁbabel嚙ますとgenerator/yieldに変換するから当然ではあるが >>77
あんたみたいな職人がいたから少しずつ便利技術が進歩してきたんよ
ツールだけ知ってるのと内部処理もしってるでは全然ちゃう感じだけども...
頑張ってほしいな! ■ このスレッドは過去ログ倉庫に格納されています