【ブラウザトップ4が力を合わせる】「JavaScript」以外の言語をコンパイルするためのユニバーサルローレベルバイトコード「WebAssembly」---Chromeに試験実装されたので試してみた

【ブラウザトップ4が力を合わせる】「JavaScript」以外の言語をコンパイルするためのユニバーサルローレベルバイトコード「WebAssembly」---Chromeに試験実装されたので試してみた

OSS×クラウド最新TOPICS 2016年3月22日 21:00

【ブラウザトップ4が力を合わせる】「JavaScript」以外の言語をコンパイルするためのユニバーサルローレベルバイトコード「WebAssembly」---Chromeに試験実装されたので試してみた

「WebAssembly」が、開発者向けブラウザ「Google Chrome Canary」のバージョン51.0.2677.0以降で試験的に実装された。開発中の「WebAssembly」の実力をレポートしている。

【「WebAssembly」とは】
・ウェブ向けのバイナリフォーマット
・ウェブの標準言語となっている「JavaScript」以外の言語をコンパイルするためのユニバーサルなローレベルバイトコード
・マシンパワーの劣る端末でも効率よく実行できるように
・2015年6月に、Mozilla、Google、Microsoft、Appleなどのウェブブラウザの主要プレイヤーが標準フォーマットとして開発に合意
・オープンソース開発
・プロジェクトを推進する「WebAssembly Community Group」が結成
・まずは「C/C++」をコンパイルして「JavaScript」エンジン内で動作できるようにすることを手始めに
・対象を他の言語にも広げていくことを計画

【レポート内容】
1.「Chrome Canary」のセットアップ
2.「WebAssembly」の有効化設定
3.WebAssemblyデモの実行

【結果】
・「WebAssembly」の実行速度は、「asm.js」に比べてかなり速いことを確認

【対応ブラウザ】
・「Chrome」は先行試験中。
・「Firefox」と「Edge」は対応を発表。
・「Safari」はまだ。


(出所:http://gigazine.net/news/20160316-chrome-start-webassembly/)

OSSNEWSに広告を掲載しませんか?

最新TOPICS

【OSS】Google、脆弱性発見/安定性向上用ソフトウェア「OSS-Fuzz」発表---開発クオリティ向上、オープンソースソフトウェアの品質を高める(12月06日 11:03)

Googleは、12月1日(米国時間)、 脆弱性発見/安定性向上用ソフトウェア「OSS-Fuzz」を発表した。 【OSS-Fuzzとは】 ・オープンソース(Apache License Version 2.0) ・複数のツールを組み合わせたソフトウェア ・開発時のクオリティ向上に寄与するツール ・オープンソースソフトウェアの品質を高めるためのツールとして活用できる (出所:h...

関連オープンソース

Pleasanter(プリザンター)

  • プロジェクト管理

プリザンターは国内大手企業のプロジェクトマネージャーが、現場のマネジメントの快適化に向けて開発したノンプログラミングWebデータベースです。

jQuery(ジェイクエリー)

  • 言語

jQuery(ジェイクエリー)。軽量JavaScriptライブラリです。少ないコード量でWebページに動きをつけることができ、リッチな表現を組み込めます。

Apache Jmeter(アパッチジェイメーター)

  • 自動テスト

Apache Jmeter(アパッチジェイメーター)。サーバ負荷テスト(パフォーマンス計測)アプリケーションです。サーバに対して大量の各種リクエストを投げかけ、負荷をかけてパフォーマンスを計測します。

Bootstrap(ブートストラップ)

  • フレームワーク

Bootstrap(ブートストラップ)。フロントエンドWebアプリケーション用CSSフレームワークです。幅広く利用されており、「レスポンシブデザイン」「グリッドシステム」などの特徴があります。

Infrataster(インフラテイスター)

  • 自動テスト

Infrataster(インフラテイスター)。テスト自動化ツールです。構築したサーバに対して外部からサービス利用者に近い視点から振る舞いのテストを行えます。

Dart(ダート)

  • 言語

Dart(ダート)。Googleが開発したWebアプリケーション開発向けプログラミング言語です。クラスベースのオブジェクト指向言語で、大規模アプリケーション/サービス開発に対応できます。

Selenium(セレニウム)

  • 自動テスト

Selenium(セレニウム)。Webアプリケーションのテスト自動化を実現するブラウザ駆動型テストツール群です。マルチプラットフォーム/マルチブラウザでWebUIテストを実施できます。

OCaml(オーキャムル)

  • 言語

OCaml(オーキャムル)。オブジェクト指向を取り入れた関数型プログラミング言語です。言語理論研究の成果が取り入れられており、高信頼で簡潔なコードを記述できます。プログラミング言語「ML」から派生しています。

Google Web Toolkit(グーグルウェブツールキット)

  • フレームワーク

Google Web Toolkit(グーグルウェブツールキット)。Web用Ajaxアプリケーション開発フレームワークです。Googleが開発しており、Javaコードを「JavaScript+HTML/XML」に出力し、複雑なWebベースアプリケーションを容易に構築できます。

Erlang(アーラン)

  • 言語

Erlang(アーラン)。並行処理指向/分散処理指向の関数型プログラミング言語です。「多目的」「耐障害性」「無停止稼働(ホットスワップ)」などの特徴があります。

Elixir(エリクサー)

  • 言語

Elixir(エリクサー)。関数型並列処理環境「Erlang仮想マシン」上で動作するプログラミング言語です。「マルチパラダイム」「関数型」「並列プログラミング」「スケーラビリティ」「耐障害性」「Ruby風」などの特徴があります。

TypeScript(タイプスクリプト)

  • 言語

TypeScript(タイプスクリプト)。JavaScriptを拡張したプログラミング言語です。Microsoftによって開発された言語で、「静的型付け」「クラスベースオブジェクト指向」などの特徴があります。

PowerShell(パワーシェル)

  • その他

PowerShell(パワーシェル)。Microsoft社が開発したシェル/スクリプト言語です。拡張可能で高機能な運用管理サポート機能を提供します。

Bash(バッシュ)

  • その他

Bash(バッシュ)。GNUプロジェクトによるプロダクトで、多くのUNIX/Linux系OSで標準的に使われるシェルです。

Rust(ラスト)

  • 言語

Rust(ラスト)。プログラミング言語です。関数型/手続き型/オブジェクト指向型などのマルチパラダイム言語です。主にMozillaにより開発されています。

ResearchKit(リサーチキット)

  • フレームワーク

ResearchKit(リサーチキット)。Appleが提供するオープンソース医療研究アプリ向けフレームワークです。iOSデバイスを利用して医療ビッグデータを収集し、医学研究のサポートを目的としています。

React(リアクト)

  • フレームワーク

React(リアクト)。Facebook製のJavaScriptライブラリです。Webアプリケーションのユーザインタフェースを効率的に構築することを目的としており、View部分を実装します。

NetBeans(ネットビーンズ)

  • その他

NetBeans(ネットビーンズ)。オープンソースの統合開発環境(IDE)です。Oracleを中心としたコミュニティにより開発されているため、Java最新版にいち早く対応できる利点があります。

Apache Cordova(アパッチコルドバ)

  • フレームワーク

Apache Cordova(アパッチコルドバ)。オープンソースのハイブリッドアプリ開発フレームワークです。1つのコードから複数環境に対応できるアプリケーションを開発できます。

Android Studio(アンドロイドスタジオ)

  • その他

Android Studio(アンドロイドスタジオ)。Googleが提供するAndroidネイティブアプリケーション開発用公式統合開発環境(IDE)です。

GitLab(ギットラボ)

  • プロジェクト管理

GitLab(ギットラボ)。ソフトウェア開発支援環境です。「GitHub」のようなサービスを社内などのクローズド環境に独自で構築できるGitリポジトリマネージャーです。Gitベースのソースコード管理機能、マージリクエスト、レビュー機能なども備えています。

Qt(キュート)

  • フレームワーク

Qt(キュート)。クロスプラットフォームアプリケーション開発フレームワークです。

Eclipse(エクリプス)

  • その他

Eclipse(エクリプス)。オープンソースのクロスプラットフォーム高機能統合開発環境(IDE)です。プラグイン機構により多くの言語をサポートします。

NW.js(エヌダブリュージェイエス)

  • フレームワーク

NW.js(エヌダブリュージェイエス)とは、HTML/CSS/JavaScriptで書かれたWebアプリケーションを、デスクトップ(Windows/Mac/Linux) 向けにパッケージングし、ネイティブアプリケーションとして実行するためのクロスプラットフォーム実行環境です。(「node-webkit」から「NW.js」に改名されました。)

Xamarin(ザマリン)

  • フレームワーク

Xamarin(ザマリン)とは、クロスプラットフォームアプリ開発環境です。C#でAndroid/iOS/Macアプリを開発できます。

Atom(アトム)

  • その他

Atom(アトム)。オープンソースのプログラマー向けコードエディタです。GitHubが主体になって開発しています。強力な機能拡張性が特徴です。

Visual Studio Code(ビジュアルスタジオコード)

  • その他

Visual Studio Code(ビジュアルスタジオコード)。オープンソースの高機能コードエディタです。Electron製で、Microsoftが提供しています。クロスプラットフォーム(Windows,Linux,OS X)で動作します。

framework-spider(フレームワークスパイダー)

  • フレームワーク

framework-spider(フレームワークスパイダー)。オープンソースのPHPWebアプリケーションフレームワークです。PHP4/PHP5で動作します。シンプル軽量なライトウェイトコンテナです。

Play Framework(プレイフレームワーク)

  • フレームワーク

Play Framework(プレイフレームワーク)とは、オープンソースWebアプリケーションフレームワークです。肥大化したエンタープライズJavaを代替する洗練されたフレームワークで、「Ruby on Rails」ライクな生産性をもたらします。Java/Scalaで記述できるRESTfulなMVCフレームワークです。

Scala(スカラ)

  • 言語

Scala(スカラ)。オブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムプログラミング言語です。Java仮想マシン(JVM)上で動作し、Javaの後継を担う言語として注目されています。

C#(シーシャープ)

  • 言語

C#(シーシャープ)とは、Microsoftが開発した「.NET Framework」向けマルチパラダイムプログラミング言語です。「.NET Framework」の中核的言語として位置づけられています。

F#(エフシャープ)

  • 言語

F#(エフシャープ)とは、Microsoftが開発した「.NET Framework」向けマルチパラダイム関数型プログラミング言語です。「OCaml」言語をベースにしています。

Electron(エレクトロン)

  • フレームワーク

Electron(エレクトロン)。クロスプラットフォーム開発/実行フレームワークです。Web技術(HTML5、Node.js、JavaScript)を使用してデスクトップアプリケーションを開発できます。

Jenkins(ジェンキンス)

  • 自動テスト

Jenkins(ジェンキンス)。オープンソース継続的インテグレーション支援ツールです。ソフトウェア開発プロジェクトなどにおける「ビルド」「デプロイ」「テスト」などの作業自動化/効率化を支援します。

Go(ゴー)

  • 言語

Go(ゴー)。Googleが提供するオープンソースのコンパイル型プログラミング言語です。シンプルな言語仕様、強い型強制、並行処理、クロスコンパイルなどの特徴があります。

Python(パイソン)

  • 言語

Python(パイソン)。パワフルなオープンソースプログラミング言語です。インタプリタ、動的型付け、純粋オブジェクト指向、インデント強制ルールなどの特徴を持つスクリプト言語です。

AngularJS(アンギュラージェイエス)

  • フレームワーク

AngularJS(アンギュラージェイエス)。Googleとコミュニティにより開発されているオープンソースJavaScriptアプリケーションフレームワークです。ブラウザ上で動作するWebアプリケーション開発にMVCアーキテクチャを取り入れることを目的としています。

Swift(スウィフト)

  • 言語

Swift(スウィフト)。Apple「OS X」「iOS」用ネイティブアプリケーション(Mac用アプリ、iPhone/iPad用アプリ)を開発するためのプログラミング言語です。Ruby/PHPなどの最新の設計思想を盛り込んでいて、スクリプト言語のように簡単にアプリを開発することができます。

UIkit(ユーアイキット)

  • フレームワーク

UIkitは軽量かつ構造的なフロントエンドフレームワーク。 ウェブインタフェース開発の高速化と、強力なウェブインタフェースを提供します。

Redmine(レッドマイン)

  • プロジェクト管理

Redmine(レッドマイン)とは、オープンソース「プロジェクト管理」ソフトウェアです。Webベースで、プロジェクトのタスク管理/進捗管理/情報共有が行えます。バージョン管理システム(GitやSubversionなど)との連携ができるため、ソフトウェア開発/Webサイト制作などのITプロジェクトで特に威力を発揮します。

Cocos2d-x(ココス・ツー・ディー・エックス)

  • フレームワーク

Cocos2d-x(ココス・ツー・ディー・エックス)は、オープンソースのゲームエンジンです。1ソースで複数OSのゲームを簡単に開発することができます。

Apache Subversion(アパッチサブバージョン)

  • バージョン管理

Apache Subversion(アパッチサブバージョン)。プログラムのソースコードなどを管理するバージョン管理システムの一つ

Git(ギット)

  • バージョン管理

Git(ギット)。プログラムソースコードやサイトコンテンツなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。

CVS(シーブイエス)

  • バージョン管理

CVS(シーブイエス)(Concurrent Version System)。テキストファイルの変更履歴を管理する、オープンソースのバージョン管理システムです。

Apache Axis2(アパッチ アクシス ツー)

  • フレームワーク

Apache Axis2(アパッチ アクシス ツー)。Apache Axisの後継ソフトウェアで、大幅に機能強化されたWebサービスのフレームワーク。

MyBatis(マイバティス)

  • フレームワーク

MyBatis(マイバティス)。iBATIS(アイバティス)の後継プロジェクトで、マッピングファイルにSQL文を直接記述し「オブジェクトとSQL実行結果との間」でマッピングを行うという特徴を持つ、Javaおよび.NET Frameworkを対象とするORマッピングライブラリです。

Hibernate(ハイバネート)

  • フレームワーク

Hibernate(ハイバネート)。JavaプログラミングのためのO/Rマッピング(オブジェクト関係マッピング)ライブラリです。

Apache Struts(アパッチストラッツ)

  • フレームワーク

Apache Struts(アパッチストラッツ)。Java言語を用いてWebアプリケーションを開発するためのフレームワーク

Spring Framework(スプリングフレームワーク)

  • フレームワーク

Spring Framework(スプリングフレームワーク)。Javaプラットフォームを対象とするオープンソースアプリケーションフレームワークです。軽量かつ開発がしやすく、DIとAOPを中核とした豊富な機能を搭載し、主要なJavaフレームワークとなっています。

Seasar2(シーサーツー)

  • フレームワーク

Seasar2(シーサーツー)。「DI(Dependecy Injection:依存性の注入)」と「AOP(Aspect-Oriented Programming:アスペクト指向プログラミング)」と呼ばれる設計思想に基づく国産オープンソースJavaフレームワークです。

Ruby on Rails(ルビーオンレイルズ)

  • フレームワーク

Ruby on Rails(ルビーオンレイルズ)。オープンソースのMVCアーキテクチャに基づいたWebアプリケーション開発フレームワークです。

Ruby(ルビー)

  • 言語

Ruby(ルビー)。シンプル、読みやすさ、高機能が人気で、世界に認められた日本製オープンソースオブジェクト指向スクリプト言語です。「Enjoy Programming!」が設計思想になっていて、主にWebアプリケーション開発に使われています。

PHP(ピーエイチピー)

  • 言語

PHP(ピーエイチピー)。サーバサイドで動作するウェブアプリケーション開発に適した、スクリプトタイプのオープンソースプログラミング言語です。

Perl(パール)

  • 言語

Perl(パール)。テキスト処理を得意とするオープンソースプログラミング言語です。実用性、多様性、簡潔な記述、柔軟性、拡張性の高さが特徴で、CGIなどのサーバサイドプログラムも得意としています。

  • オープソース書籍(サイド)

OSS×Cloud ACCESS RANKING

  • OSSNEWSに広告を掲載しませんか?

facebook

twitter

facebook

twitter