InfoQ ホームページ Functional Programming に関するすべてのコンテンツ
-
Akkaが1.0になった。JavaとScalaにアクターモデルをもたらす
プロジェクト リードのJonas Bonér氏は、Akkaが1.0のマイルストーンに達したとアナウンスした。InfoQは、氏にプロジェクトの詳細を聞いた。
-
Lift と JRuby の統合 - Ruby と Scala 間を橋渡し
Scala で人気の Web フレームワークである Lift に JRuby API が追加される。私たちは開発者の David Pollak 氏に,Rubyist が Lift を使うべき理由,Ruby と Scala の統合に関する問題点などについて話を聞いた。
-
TIOBEの2010年最優秀言語はPython
TIOBEは2010年最もシェアを伸ばしたプログラミング言語に賞を与えている。Objective-Cは2010年をリードしてきたが、この数か月伸び悩んだ。Pythonは2010年1月以降、1.81%までシェアを伸ばした。これはSAPのプログラミング言語ABAPのシェア全体のほぼ4倍に相当する。
-
Scalatra: Sinatraに似たScalaのウェブフレームワーク
ScalatraはScalaはウェブフレームワークであり、Rubyのフレームワークで��るSinatraの原則を踏襲している。このフレームワークは元はStepという名で知られていたフレームワークであり、LinkedIn Signalで使われているRESTfulなサービス基盤の背後にあるフレームワークでもある。
-
JavaOne プレビュー:Javaの関数プログラミングについて、GridGainのCEOであるNikita Ivanov氏とインタビュー
今月、San FranciscoのJavaOneで、GridGainのCEOであるNikita Ivanov氏が関数プログラミングについて講演する。リリース3.0で、APIを再設計して、その製品にもっと関数型の感じを加えた。InfoQは、Ivanov氏に関数型プログラミングの経験について、より詳しく聞いた。
-
Cloudantが CouchDB用のJavaベースのView Serverをリリース
CouchDBの開発会社であるCloudant がCouchDB用のJava View Serverをごく最近、リリースした。その意味は、Map-Reduce のジョブ書くのに、Erlang とJavascript やPythonのようなインタープリタ言語だけではなく、JVMベースの言語でも使える、ということである。
-
オブジェクト指向プログラミングは間違いだったか?
QCon London 2010のインタビューで、Erlangの最初の開発者であるJoe Armstrong博士とSmalltalk、OOP、パターンに長い間関係しているRalph Johnson博士に、オブジェクト指向に関して、私たちは長年「間違った道」を下ってきたかという質問をした。2人は「間違った道」であったことを認めたが、これはオブジェクトの考え方の実現方法に欠点があったためであり、この考え方自体の欠点ではないと述べた。
-
Akka - アクターによりスケーラビリティ、フォールトトレランス、並行性、リモーティングをシンプルに実現する
本日、Akkaチームは、Java仮想マシン用のアクターフレームワークAkkaのversion 0.7をリリースした。Akkaでは、メッセージベースのアクター、ソフトウェアトランザクションメモリ、適切なフォールト処理戦略によるソリューションにより、これからの並行性の課題を解決しようとしている。Akkaの背景にある意図、現状と採用状況、今後の計画について、Jonas Bonér氏に話を聞いた。
-
OpenCredoがSpring Integration向けのAMQPサポートを発表
OpenCredo LtdはESBライクなメッセージングフレームワークであるSpring IntegrationとAdvanced Message Queuing Protocol (AMQP)ベースのメッセージングサーバとを連携するアダプタを発表した。これによってJMSをサポートしていないメッセージ指向ミドルウエアのベンダとSpring Integrationフレームワークのユーザがつながるようになる。RabbitMQのようなメッセージキューはとてもスケーラブルだがJMSをサポートしていない。
-
Scala 2.8 ベータ1リリース
長く待たれていたScalaの新バージョン2.8のベータ版がとうとうリリースされた。それは、再設計されたコレクションライブラリ、名前付き引数とデフォルト引数、そしてずっと改善されたEclipse IDEなど多くの新機能を含んでいる。
-
Clojure 1.1,効率のためにトランジェントとチャンクシーケンスを追加
Clojure 1.1 RC1 が公開された。永続的データ構造に可変性の制御機能を与える "トランジェント(Tranjent)",遅延シーケンスを効率化する "チャンクシーケンス(Chunked Sequence)" の導入によって,関数プログラミングのコンストラクタに関するオーバーヘッドが改善されている。InfoQ では,これら改良点がどのように動作するかを調査した。
-
Clojure総まとめ:Craneによる配布、Incanterによる算術計算、Leiningen 1.0によるビルド
Clojureインスタンスwの配布と遠隔操作のためのツールであるFlightCasterのオープンソースCraneは、現在EC2に特化されている。IncanterはClojureを使って簡単にR風の統計計算ができるClojureライブラリとツールである。また、ビルドと依存関係管理ツールであるLeiningen 1.0がリリースされた。
-
Protocol Buffers/Thriftに対する動的な代替手段としてのBERT
バイナリシリアライゼーションにはGoogleのProtocol BuffersやFacebookのThriftといった選択肢があるが、GitHubチームはお気に召さなかったようだ。彼らはErlangのExternal Term Formatに基づいたBERT/BERT-RPCを作った。今やBERT/BERT-RPCがGitHub内部の通信を動かしている。
-
HaskellとHubrisを使ってRubyに力を与える
RubyやRailsアプリケーションにCを組み込むのは、パフォーマンスのボトルネックを解消するひとつの方法だ。Mark Wotton氏は最近、HubrisというRubyからHaskellコードの呼び出しを可能にするブリッジを書いた。
-
Scalaのアクターのための性能を犠牲にしないで競合安全性を確保する型システム
Philipp Haller氏とMartin Odersky氏が紹介するのはScalaのアクターが安全にメッセージを送受信するための型システムだ。EPFL Scalaコンパイラの拡張として定式化されたこの“オブジェクト能力型”システムはオブジェクトの能力に対する検証と外部向けの一意性に基づいている。この仕組みは、性能を犠牲にすることなく競合に対する安全性を確保し、メッセージ送受信の既存の方法にある無視できない限界を取り除く。