InfoQ ホームページ Language Design に関するすべてのコンテンツ
-
JDK7 のフィーチャが遅れる
JDK7を再考する、というタイトルの投稿でMark Reinhold氏は、リリースを遅くするのではなく、早めるために、以前JDK7に計画されていた内のあるものは、JDK8まで延ばす、という提案した。コミュニティは、この提案をどう考えているか? 更に読むと、それがわかる。
-
進歩を見せる .NET のオプションパラメータ
オプションパラメータは最初から .NET に含まれていたが,C# でサポートされないこともあり,COM ライブラリ関連以外での使用はタブーである,という解釈が一般的だった。C# 4 でオプションパラメータがサポートされるようになるので,今後はレガシーなコード以外でも多く見られるようになりそうだ。また C# 以外にも,動的言語との相互運用性や変更不能(immutable)なデータ構造体,さらに ASP.NET MVC のさまざまな部分でも使われるようになるだろう。
-
Microsoftのソフトウェアトランザクショナルメモリに関する実験が終了
Dana Groff氏は、Microsoftが行っていた.NET Framework向けソフトウェアトランザクショナルメモリの実験の終了をアナウンスした。STM.NETとして知られているこの研究プロジェクトは、並列処理問題を取り扱う時に、明示的なロックの代替手段として、2008年から始まった。
-
Mono が C# 言語の拡張機能を試験的に導入
最新の Microsoft C# 4 拡張機能のサポートが一段落したためだろうか,Mono チームは最近,独自の言語拡張に手を出している。彼らが現在試しているのは,文字列補完と複数戻り値のサポート,という2つの機能だ。
-
Clojure 1.1,効率のためにトランジェントとチャンクシーケンスを追加
Clojure 1.1 RC1 が公開された。永続的データ構造に可変性の制御機能を与える "トランジェント(Tranjent)",遅延シーケンスを効率化する "チャンクシーケンス(Chunked Sequence)" の導入によって,関数プログラミングのコンストラクタに関するオーバーヘッドが改善されている。InfoQ では,これら改良点がどのように動作するかを調査した。
-
JDK 7 Milestone 5、並行処理とパフォーマンスに関してアップデートされたが、Feature Completeには至らず
最近、SunのJava SEチームはJDK 7 Milestone 5をリリースした。これはJava 7のFeature Completeリリースになることが期待されていたが、それには至らなかった。InfoQでは、このリリースで何が追加されたのか、主要な機能のうち何がまだ欠けているのかについて調べた。
-
Mark Reinhold氏、Javaのクロージャについて語る
SunがクロージャをJavaに追加するというDevoxxにおける突然の公表に続いて、Mark Reinhold氏は決定に至る経緯をブログで公開した。
-
JDK 7が、突然"単純な"クロージャをサポート、しかしリリースは、2010年の終わりに。
Mark Reinhold氏は、Devoxxコンファレンス開催中、JDK7がクロージャをサポートすることを公表した。この非常に議論されたフィーチャをサポートするために、JDK7のリリースは、2010年の9月ごろまで延びる。
-
Duby と Surinx - Charles Nutter 氏へのインタビューより
Charles Nutter 氏が開発した2つの JVM 言語 - Duby と,その動的言語版である Surinx - について,氏自身が解説する
-
VB 10にコレクションと配列の初期化子
.NET 4.0 そして Visual Studio 10と一緒にリリースされる予定のVisual Basic 10に、コレクションと配列の初期化子のサポートが加わる。これらは、C#がすでに持っているものに似ているが、拡張メソッドや改善された型推論のサポートのような小さな機能改善もある。
-
JVMにおけるPythonの状況
近頃のJythonの進歩のおかげもありPythonはこの1年ほどのうちにJVMに対する大きな推進力を得てきた。InfoQはJythonプロジェクトのリードであるFrank Wierzbicki氏にJythonおよびJVM上のPythonの状況について話を聞いた。
-
言語の制約に頼るべきか?開発者の責任に頼るべきか?
Bruce Eckel氏、Michael Feathers氏、Niclas Nilsson氏、Keith Braithwaite氏などが次の問いに答える。プログラミング言語は、完全な柔軟性をもって開発者が好きなようにいじり回せて、開発者が自分でやったことには責任をもつと信じるべきなのか?それとも悪いコードやメンテナンス性や可読性をさげてしまうような失敗を避けるために、設計時に言語の中に明確な制約を設けるべきなのか?
-
LESS と Sass で CSS をより簡潔にする
LESS と Sass は 変数,ミックスインなど実績のある機能を CSS に持ち込むことで,その冗長性を改善する Ruby ツールである。2つのツールがどのように動作し,何を提供してくれるのかを見てみよう。
-
.NETリアクティブフレームワーク(Rx)がLINQ to Eventsを可能にする
Erik Meijer氏とWes Dyer氏はLINQ to Eventsを使用可能にする、.NETリアクティブフレームワーク(Rx)を作成した。リアクティブフレームワークはLINQ to Objectsの(数学的な意味の)双対である。Erik氏と氏Brian Beckman氏はIObservableが継続モナドであることを実証した。
-
Scalaのアクターのための性能を犠牲にしないで競合安全性を確保する型システム
Philipp Haller氏とMartin Odersky氏が紹介するのはScalaのアクターが安全にメッセージを送受信するための型システムだ。EPFL Scalaコンパイラの拡張として定式化されたこの“オブジェクト能力型”システムはオブジェクトの能力に対する検証と外部向けの一意性に基づいている。この仕組みは、性能を犠牲にすることなく競合に対する安全性を確保し、メッセージ送受信の既存の方法にある無視できない限界を取り除く。