今年のはじめぐらいから、ChatGPTの手を借りながらAozoraEpub3をnode.jsに移植を試みていた。コードの量が多いのと、人が書いたJavaのコードを読み解くのが得意ではないという理由があってあまり進んでいなかった。ChatGPTの精度と読み込み可能量が増えたので、一括で読み込んで変換させることができるようになった。ただ、個別にテストを走らせるとそのままでは動かない部分もあるので都度修正している。
Javaで動くのになぜJavaScriptにするかというと、Javaに起因するインスールの失敗のコメントがよく見つかる。Java8のサポート期間が延長されたので、それ以降のバージョンに移行する人がいない。けれどJavaの開発主体は17や21が多い、17や21はOpenJDKなのでJDKやJREを自分でインストールする必要がある。ソフトウェア制作者がインストーラーを作ってJREを同梱させればいいのだけど、インストーラーで作成されたexeとjarとで動作が変わるのでうまく動かない。
なのであればブラウザで動作するJavaScriptやElectronに移植したほうがいいかな。
ライセンスなんだが、GPLライセンスなので扱い方が苦労している。JSにするならMITライセンスのほうが扱いやすいとは思っている。コードは言語を変えたらライセンスは自由になりそうだけど実際はどうなんだろうか。パーツ部分の移植は終わったが結合テストでエラーが出て修正が多いためいつ完成するのかがわかない。
ブラウザでEPUB生成までやろうとするとMITライセンスのほうが扱いやすいかな。 ライブラリ等の書換から、互換性を維持しようとするとどこまでの範囲が、GPLライセンスになるのかが気になる。というのもnpm initするときにライセンスを書く必要がある。