タグ

言語比較に関するkiyo_hikoのブックマーク (3)

  • WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD

    Webアプリにリアルタイムの双方向通信が必要な場合、WebSocketを選ぶのは自然なことだと思います。では、どのツールでWebSocketサーバを構築すべきでしょうか。パフォーマンスは重要ですが、開発のプロセスも見過ごしてはなりません。パフォーマンスを基準にするだけでなく、開発のしやすさも考慮に入れるべきでしょう。今回の大合戦では、Clojure、C++、Elixir、Go、NodeJS、Rubyのそれぞれの言語によって慣用的な手法で実装されたシンプルなWebSocketサーバを比較したいと思います。 テスト内容 サーバに実装するのは、 echo と broadcast の2つのメッセージのみを扱う非常に単純なプロトコルです。echoは送信クライアントに返され、ブロードキャストは全ての接続クライアントに送信されます。そしてブロードキャストが完了すると、結果メッセージが送信者に返されます。

    WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD
  • Clojure

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    Clojure
    kiyo_hiko
    kiyo_hiko 2010/08/03
    scalaの1/2.5ぐらい
  • 値型と参照型

    値渡しと参照渡し これまで、何度かオブジェクトは参照型であると説明しました 参照とはメモリの有効なアドレスを表す数値であり、それ自体に意味はありません プログラムは参照を元にメモリの指定アドレスにアクセスしてインスタンスを操作します これと対象の int などの変数は直接データそのものを保有する「値型」と呼びます 参照型と値型には、その性質から非常に興味深い動作をします 値型は、他の変数やメソッドにデータを転送する時は内容をコピーします メソッドはパラメータを受け取りますが、それはコピーされた値です つまり、メソッド内で受け取った値を変更しても呼び出し元に影響はないのです class Test { static void Main() { int x = 0; getValue(x); System.Console.WriteLine(x); } static void getValue(

    kiyo_hiko
    kiyo_hiko 2010/08/03
    C#はrefとoutで明示できるんすね。Javaは出力パラメーターを嫌う方針?しかしJavaでインスタンスを渡したときは保護されないような。
  • 1