一つの言語で書いたコードが他でも活かせれば開発効率は向上するでしょう。ロジックの共有化をすることで、プログラミング言語の選択肢が広がり、UIや利用層によって最適な言語が選択できるようになります。 今回紹介するjsiiはJavaScriptからJavaや.NETへ変換できるライブラリです。

jsiiの使い方

生成した例です。

JavaScript側ではexportを使ってロジックを公開します。

export class HelloJsii {
    public sayHello(name: string) {
        return `Hello, ${name}!`
    }
}

例えばJavaではライブラリを読み込んで利用します。Javaのjarファイルとして生成されているので普通に使えます。

HelloJsii hello = new HelloJsii();
hello.sayHello("World"); // => Hello, World!

jsiiは現在はJava、.NET、Sphinxとなっています。コードはTypeScriptまたはJavaScriptで記述します。現在、RubyとPythonも開発中とのことです。バインディングではなく、JavaScriptを共通コードとして、各言語に向けて変換するという考え方はユニークです。

jsiiはTypeScript製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。

aws/jsii: Use javascript modules naturally from every programming language