JavaがElectronを参考にするべき2つのこと
最近、Javaを使い始めて、JavaFXの使い勝手の良さを感じつつも、ネット上の情報や書籍の少なさにちょっと驚きました。一昔前はこんなことなかったんですが。
ひとえにJavaの不人気さを表しているのですが、一方で人気言語ランキングで常に上位に位置するのは何でなんでしょうかね。まあ、Androidアプリ用途がほとんどでJavaFX自体は見向きもされていないんでしょうけど。
要はデスクトップアプリ言語としてのJava(FX)は、あまり人気がないんだと思うのですが、正直致し方ないところはあります。
まず、起動は遅いし(昔に比べて格段に速くなったけど)、使ってもらう相手にJavaをインストールしてもらわないといけないし、実行ファイルが(Windowsだと)exeファイルじゃないし。
ただ、起動が遅いという点だけ言えば、同じく遅いElectronはここ最近人気を博していて、いろいろなElectron製アプリが登場しています。
この差は何なんでしょうか。クロスプラットホーム技術という点では同じなのに。起動はむしろElectronの方が遅いし。
僕はその原因が次の2点に集約されると思っています。
[ad#top-1]
相手にランタイムをインストールさせる必要がない
Electoronは配布時にユーザーに専用のランタイムをインストールさせることはありません。Javaは相手にJavaがインストールされていないと動きません。
この差は非常に大きいです。
Electronは相手にランタイムをインストールさせない代わりに、関連ライブラリを実行ファイルと一緒に一切合切渡してしまうという戦略をとっています。以下のように、dllファイルがいっぱい付いてきます。
配布サイズが大きくなってしまうという欠点はありますが、相手に余計な手間を取らせない点で非常に楽です。
Javaもこういう方法が取れればいいんですけどね。Javaをインストールしろって言われた時点で、じゃあやめた、ってなった人結構多いと思いますよ。うちの会社のパソコンなんか、勝手にインストールしちゃダメなので今でもJava入っていません。(大手の企業は結構このパターン多いです)
実行ファイルがexe
Electronは実行ファイルがOSが認識できるファイル形式になります。Windowsの場合はexeファイルです。
Javaはjar。頑なにjar。
実行ファイルがOSが認識できる形式って結構重要なんですよ。例えば、OSにアプリとして登録できないですね。
jarファイルだと、以下のように「このファイルを開く方法を選んでください」のリストに入れることができません。Atomはちゃんとありますね。exeファイルだから可能なのです。
もちろん、Linuxの場合は実行ファイル専用の拡張子はなくパーミッション設定すればいいだけなのですが(Macはどうなの?)、デスクトップOSのシェアはWindows独り勝ちなので、ここはやはりWindowsではexeファイルを作ってほしいものです。
Electronはここがうまいんだよな~。
まとめ
JavaがElectronを見習うべきことは2つ
- 配布時に関連ライブラリを同梱できる仕組みを作るべき(ユーザーにJavaをインストールさせなくても実行できるようにする)
- 実行ファイルを生成できるようにする(単なるランチャーでもいいので)
この2つがあればJavaはもっと広まると思うんですよね。言語そのものはかなり優位性あるんだし。
※追記※
1は僕が知らないだけでもうすでにあったりして??(過去にも僕が知らないだけでブログ書いて炎上したパターンあったし、ちょっと自信なくなった)
2はJSmoothのような外部アプリがあるのですが、Java標準装備してほしいところです。※ところで、最近久々にJSmoothをダウンロードしてインストールしようと思ったらできなかった。なぜだ??
[ad#ad-1]
スポンサーリンク