タグ

node.jsに関するkappaseijinのブックマーク (8)

  • Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話

    Node.js の次のメジャーバージョン 0.12 で yield が使えるようになります。 そのおかげで、JavaScript のコールバック地獄に光が差し込むのです。ああ、さようなら、コールバック地獄。 7 年ごしで実現した yield 2006 年、Firefox 2 のリリースと同時に yield は JavaScript 界に登場しました。随分と前の話ですね。 登場した当時は JavaScript 界隈でけっこう話題になっていました。 JavaScript 1.7 の yield が凄すぎる件について - IT戦記 Latest topics > JavaScript 1.7のyield文ってなんじゃらほ - outsider reflex JavaScript 1.7 の新機能: Days on the Moon 登場したときにはインパクト大きかったものの、結局 Firefox

    Node.js 0.12 では yield が使えるのでコールバック地獄にサヨナラできる話
  • C言語より高速なJavaScriptによるバイナリ操作が話題 | gihyo.jp

    JavaScriptなどのスクリプト言語は動作が遅く、最適なパフォーマンスを得るにはC/C++で実装しなければならないという常識に挑んだ講演が国内外で大きな話題になっています。 題材になったのはベルリンの開発者、Felix Geisendorfer氏によるNode.jsからMySQLに接続するためのバインディングの実装です。Node.jsからMySQLへ接続するためのバインディングはJavaScriptだけで実装されているもの、Cで実装されたライブラリ(libmysql)を使ったもの、MySQLからフォークしたデータベース、MariaDBのライブラリを使ったものなど複数が存在しています。 Felix氏はあくまでJavaScriptのみによる実装で、C言語で実装されたライブラリを使ったバインディングを越えるパフォーマンスの実現に挑戦しました。次々に登場するライブラリの高いパフォーマンスを見る

    C言語より高速なJavaScriptによるバイナリ操作が話題 | gihyo.jp
    kappaseijin
    kappaseijin 2012/12/25
    「evalとnew Functionを組み合わせた動的コード生成を行うことで実行性能が上がる」動的過ぎて最適化されやすい!?
  • AWSがNode.js向けSDKのプレビュー版を公開

    AWSが「AWS SDK for Node.js」のプレビュー版を公開した。Amazon S3、Amazon EC2、Amazon DynamoDBAmazon Simple Workflow Serviceの各サービスに対応する。 Amazon Web Services(AWS)は12月4日、Node.js環境でJavaScriptをサポートした「AWS SDK for Node.js」のプレビュー版を公開した。Amazonでは現代的な開発言語およびプログラミング環境に適した開発ツールとSDKを提供する一環と説明している。 Node.jsはサーバサイドで動作するJavaScript実行環境で、イベント駆動型ノンブロッキングI/Oの採用などを特徴とする。 AWS SDK for Node.jsは、Node Packaged Module(npm)パッケージマネージャを使って「https:

    AWSがNode.js向けSDKのプレビュー版を公開
  • node.jsとは何か(4) - I am bad at math

    さて、前回まで基礎部分をいろいろと説明したので今回からは実装について。現在のソースやその成り立ちを説明するのもいいんだろうけど、今日からはちょっぴりハンズオン形式に趣向を変えてみよう。ってことで node.js を作っていくよ! 実装編その一はJSエンジンであるV8にJavaScriptのソースをわせて実行する、つまりはオレオレJS環境を作るまでを扱うのだ。 V8はもともと他のソフトウェアに組み込まれて使用されることを想定(例えばChromeとかね)されているのでこういう作業が必要になる。 手順は大きくわけて二つ 1. まずはV8のソースを落としてきてV8のビルド 2. V8のソースディレクトリに自作のC++のソースを作ってコンパイル&実行 C++が出てきた時点で引いちゃったかもしれないけど、C++を使えるようになるのが今回の目的ではないのでまずはリラックス。C++っていったってそんなに

    node.jsとは何か(4) - I am bad at math
  • node.jsとは何か(3) - I am bad at math

    今日はnode.jsで採用しているCommonJSの話である。 CommonJSの説明だけだとあっという間に終わってしまうのでJavaScript歴史を混ぜ込んだら期せずして長くなってしまった。 さて、1995年に発表されたJavaScriptは開発当初「Mocha」と呼ばれ、次に「LiveScript」となり(実際Netscape Navigatorの2.0のアルファ版ではではこの名前だった)、最後にようやくJavaScriptになる(Navigatorの2.0B3から)という変遷をたどった。このJavaScriptという名前っていうのはJavaというコンパイル言語を補完するスクリプト言語にしたいという考えがあったからという話もあるんだけど、そのころ開発元のNetscapeはSunとの業務提携を発表しており、ちょうどそのころJavaが世に出てNetscapeブラウザ上でクールなJava

    node.jsとは何か(3) - I am bad at math
  • node.js とは何か (2) - I am bad at math

    昨日に引き続き、いざ!part2なのだ。 前回では node.js と v8 の結びつきまでを書いたので、今日は Non-Blocking I/O の話を。 Non-Blocking I/O という言葉からブロックしない I/O をイメージするのはたやすい。でもこれを実現しようとなるといろいろとまあ面倒くさいんだよね。 それを解決する常套手段で言うとファイルディスクリプタ(ネットワークならソケットだね)を開いてそれをselectシステムコールの監視対象に加えておき、selectを呼び出すことで監視するっていう方法がある。こうすると何が嬉しいのかファイルディスクリプタが2つある場合で考えてみよう。 まずAとBというファイルディスクリプタを監視対象とする。 selectシステムコールを呼び出し、そのどちらかが読み出し準備完了となっていないかを確認する。 もしどっちも準備できていなかったらプロセ

    node.js とは何か (2) - I am bad at math
  • node.js とは何か - I am bad at math

    期せずして久々の更新になってしまった。ブログを書く気がなくなったとかそういうのではなくてただ単に忙しかっただけ。その間、まぁ仕事が予期せぬ方向から炎上してみたり、事故をもらって愛車が全損したり(フロントガラスが全面熱線入りなんていう変なオプションなどを諸々付けていたからお気に入りだったのに)と決して良いことばかりで忙しかったわけではないけどね! で、今回は node.js のお話。異様な盛り上がりを見せているものの、じゃぁそれっていったい何かというと「JavaScriptを用いたNon-blocking I/O環境」という非常にシンプルなものだ。 その根底には「うまくスケールできること」と「動作が速いこと」という理念が見受けられる。 まず「うまくスケールできること(多量のアクセスを捌けること)」を解決するにあたり、まずはスレッドモデルか、イベントループかという問題があった。そこで auth

    node.js とは何か - I am bad at math
  • Node.jsとCommonJSについて - 自分の感受性くらい

    日経ソフトウェア8月号にJavaScriptの特集がありまして、そこでNode.jsが紹介されていました。 それを読んで、僕は以下のようなツイートしました。 日経ソフトウェア8月号のJavaScript特集のNode.jsの記事みたけど、これはちょっとひどいな。非公式のWindowsバイナリを使ってるせいでnpmの使い方おかしいし、「Node.jsのAPIはCommonJSに従った形で実装」とか嘘書いてあるし。 #nodejs_jp 2011-06-26 13:43:59 via web *1だと言わざるをえません。Node.jsはCommonJSの仕様のうち「Module 1.0」と「Unit Testing 1.0」には一応準拠していることになっています(http://wiki.commonjs.org/wiki/CommonJS#Implementations)。が、Node.jsの

  • 1