InfoQ ホームページ Programming-Languages に関するすべてのコンテンツ
-
Rust At Six:新しい言語エディションと広がる採用
Rustは、その機能と業界での採用の両方に関して、ここ数年にわたって着実なペースで成長している。現在、バージョン6で、Rustは、Rustエコシステムの安定性を妨げることなく新しい構文を導入する新しいエディションに近づいている。
-
Grain: WebAssemblyファーストプログラミング言語 - WebAssembly Summit 2021
Oscar Spencer氏は先頃、WebAssemblyにコンパイルされる新しい強く型付けされた高級言語であるGrainのプレゼンテーションをした。Grainには、可変変数の使用が可能な、関数型プログラミング機能 (型推論、パターンマッチング、クロージャなど) がある。Grainには、複合データ構造 (Option、Stack、Result) とシステムコール (I/O、プロセス処理など) の標準ライブラリもある。
-
Swift CollectionsはSwiftに新しいデータ構造をもたらす
Swift Collectionsは、Swiftプログラマーが利用できるデータ構造の選択肢を広げることを目的とした新しいオープンソースパッケージである。標準ライブラリで提供されているものに加えて提供される。初期バージョンでは、両端キュー、順序セット、順序辞書を提供する。
-
C++インタプリタClingでPythonとの相互運用とJupyter Notebooksに対応
Clingは、C++を調査やRAD(Rapid Application Development)に適したものにするためにLLVM上に構築された、インタラクティブなC++インタプリタだ。先日公開された一連の記事では、研究ソフトウェアエンジニアのVassil Vassilev氏が、PythonやJupyter Notebooksとの相互互換性とハードウェアアクセラレータのサポートを実現したClingの発展について説明している。
-
Crystal言語がRuby構文リリース1.0でCパフォーマンスを目指す
Crystalは、最近、最初のメジャーバージョンをリリースした。Crystalは、Rubyの簡潔さと親しみやすさをCの効率と融合させることを目的とした、新しいオブジェクト指向のコンパイル済みシステムプログラミング言語である。Crystal 1.0は、Rubyに近い構文を持ち、静的に推測される型、Cバインディング、マクロを備えている。 Crystalは、Ruby/Rails、Elixir/Phoenixのバックグラウンドを持つ開発者を引き付ける可能性がある。
-
Rust 1.51がリリース - const genericsが安定化、Cargoとコンパイル時間が改善
Rust 1.51にはconst genericsの安定版MVP(minimum value proposition、最小限の価値提案)が提供されており、型や有効期限ではなく、整数などの定数値による型のパラメータ化が可能になっている。新しいFeature ResolverによるCargoの改善、macOSでのコンパイル速度の向上なども、新しいRustリリースに含まれている。
-
WSがFunction as a ServiceであるLambdaでNode.js 14のサポートを発表
先頃、AWSはNode.jsバージョン14のFunction as a Service (FaaS) であるLambdaのサポートを発表した。開発者は、Node.jsの新機能を使用してAWS Lambda関数を作成できるようになった。トップレベルの await、強化された診断、ストリーム APIの変更、パフォーマンスを向上させるための改訂されたJavaScriptエンジンなどの新機能がある。
-
Juliaはプロダクションレディか? Bogumił Kamiński氏とのQ&A
JuliaCon 2020に続いて、SGHワルシャワ経済大学のBogumił Kamiński教授は、言語とそのエコシステムの状況を要約し、Juliaがついにプロダクションレディになったと述べた。InfoQは、Kamiński教授と話して変更を加えた。
-
PHP 8がJIT、union型などを新たに提供
PHP 8は、Just In Time(JIT)コンパイラと多数の言語機能を新たに加えた、PHPのメジャーアップデートである。InfoQは今回、PHPおよびPHP 8が今日の言語環境において果たす役割についての理解を深めるべく、SentryのプリンシパルデベロッパであるMark Story氏に話を聞いた。
-
データ競合のない並列言語を目指すSwift
Swiftチームは、Swiftの並列性サポートの改善に向けたロードマップを公開した。最初のフェーズでasync構文とアクタを進め、第2フェーズでデータ競合(data races)とデッドロックを排除する予定である。
-
GoogleのエンジニアがSwiftをWindowsに移植
クロスプラットフォームなプログラミング言語になるというSwiftのビジョンが、Windows 10用のSwiftツールチェーンの導入によって一歩前進した。アーリーアダプタはSwiftを使って、プラットフォームが用意する既存ライブラリをC言語ABI経由で相互運用する、Windows 10プログラムの開発が可能になる。
-
Swift 5.3リリース - 新しい言語機能、開発者エクスペリエンスの向上、パフォーマンス改善
Xcode 12と合わせて先日公開されたSwift 5.3には、マルチパターンcatch句、暗黙のselfの可用性向上など、構文レベルでの重大な新機能がいくつも含まれている。さらにSwift開発チームは、特にSwiftUIを使用した場合のランタイムパフォーマンス向上や、開発者エクスペリエンスの向上にも取り組んでいる。
-
C++20は最終版に、C++23がスターティングブロックに
元々昨年2月にリリースされる予定の、C++20は最終的な技術的承認を受けており、年内に発表される予定である。C++20には、主要な新機能の中にModules、Coroutines、およびConceptsが含まれる。
-
Go 1.16、レジスタベースの呼出規約をサポート
GoチームはGo 1.16で、レジスタベースの呼出規約(calling convention)の実用最小限(minimum viable)実装に取り組んでいる。この変更により、GoogleのGoチームによれば、現行のスタックベース呼出規約を使用するGoコードとの後方互換性を維持しながら、5~10パーセントのスループット改善が可能になる。
-
Swift 6で実現する並列性サポート改善とメモリオーナシップ
Swiftの開発リーダであるTed Kremenek氏が、Swiftのメーリングリストを通じて、Swift 6で採用される予定の機能の見通しと、コミュニティの参画方法について発表した。Swift 6では並列性サポートの向上やメモリオーナシップなど、言語レベルでの大幅な改善が予定されている。リリースのタイムラインは未定だが、その内容からは、2020年内ではないと思われる。