IOGのエンジニアリングチームは記事『JavaScript backend merged into GHC』で、JavaScriptバックエンドがGHCに統合されたことを発表しました。これにより、カルダノ:HaskellがWebブラウザで実行できるようになりました。
発表によれば、新しいJavaScriptバックエンドがGHCにマージされ、GHCの次のリリースでは、追加のツールを必要とせずに、Webブラウザで動作するコードを発行できるようになります。これは、フロントエンドとバックエンドの両方のWebアプリケーションで、カルダノのネイティブのスマートコントラクトプログラミング言語であるHaskellを使用できるようになることを意味します。
Haskell言語は、JavaScriptの欠点のいくつかに対処し、開発者が性能の良い、正しい、保守可能なコードを書くことを可能にしています。
カルダノの創設者であるチャールズホスキンソン氏はこの発表を紹介し、HaskellからJavascriptへの移行は、業界にとってどのような意味を持つだろうか?とツィートしています。
以下はCryptoNewsFlash.comに掲載された記事「Cardano: Haskell can now run in your browser – Will it drive ADA price to $5?」を翻訳したものです。
カルダノ:Haskellがブラウザで実行可能に – ADAの価格を5ドルまで押し上げるか? by CryptoNewsFlash
12月14日(水)の最新の発表で、カルダノのチーフであるチャールズ・ホスキンソン氏は、ネイティブのスマートコントラクトプログラミング言語であるHaskellをブラウザで実行できるようになったと発表しました。
Haskellは純粋に関数的なプログラミング言語で、幅広いアプリケーションを扱うことができます。表現力豊かな構文と、非常に豊富なビルトインアーキテクチャを備えている。カルダノの創設者であるチャールズ・ホスキンソン氏は、Haskellの能力についてかなり楽観的な見方をしています。
カルダノのスマートコントラクトと、金融スマートコントラクト用のドメイン特化型言語であるMarloweは、Haskellプログラミング言語上で動作する。さらに、カルダノのオンチェーンおよびオフチェーンコードは、いずれもHaskellで書かれています。
カルダノのホスキンソン氏がHaskellを選んだ理由の1つは、PlutusとMarloweのスマートコントラクトを精密で形式的に証明された言語で構築できることです。これにより、高いレベルの保証をすぐに提供することができます。Haskell言語がブラウザで実行できるようになったことで、開発者の仕事も楽になることでしょう。
カルダノのエンジニアリングチームは、最近、新しいJavaScriptバックエンドをGHCにマージしたことを指摘していいます。したがって、GHCの次のリリースでは、余分なツールを必要とせずに、ブラウザで実行できるコードを生成できるようになるはずです。これにより、Haskellはバックエンドとフロントエンドの両方のアプリケーションに対応できるようになります。
なぜJavaScriptで、なぜHaskellなのか?
カルダノのエンジニアリングチームは、バックエンドにJavaScriptを採用した理由を説明しています。最大の理由は、JavaScriptがクライアントサイド・プログラミングの97.3パーセントを占めていることです。さらに、ポータビリティも備えているため、カルダノチームは言語とプラットフォームへの大規模な投資に大きく注力することができる。
カルダノのエンジニアリングチームは、JavaScriptのバックエンドが異なる強みを提供すると考えている。これは、異なるユースケースと要件に対応するためにGHCで両方のコード生成パスをサポートすることが、最終的にHaskellコミュニティにとって有益になると考えています。
しかし、Cardanoチームによると、JavaScript言語には、初期の設計決定と下流への影響においていくつかの欠点があるそうです。その上、JavaScriptでは、非同期プログラミングや並行プログラミング、エコシステムのセキュリティ問題など、根本的な問題もある。Cardanoのエンジニアリングチームはこう書いています。
Haskellはこれを簡単にします。少し技術的に言うと、Strong Static Hindley-Milnerベースの型付けを組み合わせることで、パフォーマンスが高く、正しく、保守性の高いコードを書くことができるのです。
Haskellを使う利点は、コードの共有です。WebアプリのフロントエンドをHaskellで書いてJavaScriptにコンパイルし、バックエンドをHaskellで書いてマシンコードにコンパイルすることができます。特に、(デ)シリアライズコード(例えば、JSONからの/への)は共有され、フロントエンドとバックエンドの間で同期がとれなくなることはありません。
したがって、GHCと同期したJavaScriptバックエンドを持つことは、Haskellエコシステムの全体的な価値を高め、より良いユーザー体験を提供し、コストを削減できると考えています。