JetBrains の IDE の GUI ってなんでできてるんだろう
◆ Swing みたい
IntelliJ や PHPStorm や WebStorm など JetBrains の IDE って見た目も綺麗ですよね
Java 製らしいですが Java の微妙な感じがしません
昔見た Java 製のツールは見た目が悪い意味で独特で好きになれない感じで私が Java 嫌いな一つの理由でした
ですが JetBrains の IDE を見て Java の GUI もけっこういいんだねと見直したほどです
そこでどういう技術で GUI 作ってるのか調べてみました
私が知ってるだけあって どれも有名なもので今でもこれらがスタンダードみたいです
どれが一番新しいかも知らないくらいでしたが 上に書いた順で古いのから新しいのになってます
AWT が一番最初からあるもので それぞれの OS のコンポーネントを使用するようです
速いけど見た目が揃わないとか
HTML でフォームパーツがブラウザによってバラバラなあんな感じでしょう
どの OS でも同じように動くことを重要視してる Java だけあってコレに対処するためにでてきたのが Swing です
全く新しいものじゃなくて AWT をベースにしたラッパみたいです
.NET の WinForms が全く新しいのじゃなくそれまでの Win32 の API をラップしてるのと同じ感じかな
Swing ではどの OS でも同じ見た目になるようです
ただ見た目が悪いと評判のようです
私がみたのもこれだったのかな
Swing は中では AWT なので AWT に依存しないように全く新しく作ったのが JavaFX のようです
JavaFX 1 のころは 独自のスクリプト JavaFX Script を使っていたようですが JavaFX 2 ではそれが廃止されて Java の API で操作するようになったようです
それ以外にも FXML (XML+CSS) でデザインを作ることが出来るようです
なんか WPF (XAML) みたい
JavaFX は 1 が 2008 年末で 2 が 2011 年秋にリリースなので WPF や XAML はもっと前からあります
こう見てると Java は .NET の後追いしてるだけ感が強いですね
でも CSS が使えるなら XAML よりいいかもです
XAML のスタイルが書きづらくてすごく CSS にしたいくらいですから
XML+CSS ってデザイン重視ぽい感じな構成な分 Swing と違って綺麗に作れるそうです
ウェブに Windows アプリに Java って主要なところが全部 XML ベースにスタイル設定する作りってなんかすごいですね
出てくるページも結構古いのが多いですし
マイナーどころの中では SWT が一番有名みたいです
Eclipse で使われてる Framework のようです
個人的には Java 嫌いな理由の一つになるほどに Eclipse 嫌いです
昔ほんのちょっと使って見た目がダメだし 重いしで Java 自体を嫌いになるのには十分でした
Java って書く量が多すぎて IDE なしじゃ辛いものなのにその IDE がこれですから
しかも無料じゃほぼ Eclipse 一強みたいでしたし
NetBeans はマスコットキャラのネコビーンズ好きでしたがなぜか結局使わなかった気がします
その対抗っぽい C# が VisualStudio っていう重いけどそれ以外はかなり優れてる IDE 付きならそっちを選びますよ
そんな Eclipse 用なので微妙だろうと勝手に思ってます
https://github.com/JetBrains/intellij-community
見ればわかるかな と軽く見てみたのですが 実際に Java のフレームワークを使ったわけではないので大規模なプロジェクトだとどこを見て判断すれば良いかもわかりません
同じ疑問持ってる人いるでしょ
と StackOverflow を覗いてみました
https://stackoverflow.com/questions/12309569/what-gui-libraries-are-the-jetbrains-using
Swing??
汚いと言われる Swing なの?
InterlliJ とかすごいきれいなのに
続きを読むと 「エディタやタブなどの全部のカスタムコンポーネントは自作でサードパーティのライブラリはなし」だそうです
Swing は見た目がダメっていうのをよく見かけましたが デフォルトがダメなだけで自作すれば綺麗になるんですね
軽い気持ちで調べたら思いの外 Java に詳しくなってしまった……
Java 製らしいですが Java の微妙な感じがしません
昔見た Java 製のツールは見た目が悪い意味で独特で好きになれない感じで私が Java 嫌いな一つの理由でした
ですが JetBrains の IDE を見て Java の GUI もけっこういいんだねと見直したほどです
そこでどういう技術で GUI 作ってるのか調べてみました
Java の GUI framework
Java ユーザでない私が聞いたことあるのは AWT / Swing / JavaFX の 3 つ私が知ってるだけあって どれも有名なもので今でもこれらがスタンダードみたいです
どれが一番新しいかも知らないくらいでしたが 上に書いた順で古いのから新しいのになってます
AWT が一番最初からあるもので それぞれの OS のコンポーネントを使用するようです
速いけど見た目が揃わないとか
HTML でフォームパーツがブラウザによってバラバラなあんな感じでしょう
どの OS でも同じように動くことを重要視してる Java だけあってコレに対処するためにでてきたのが Swing です
全く新しいものじゃなくて AWT をベースにしたラッパみたいです
.NET の WinForms が全く新しいのじゃなくそれまでの Win32 の API をラップしてるのと同じ感じかな
Swing ではどの OS でも同じ見た目になるようです
ただ見た目が悪いと評判のようです
私がみたのもこれだったのかな
Swing は中では AWT なので AWT に依存しないように全く新しく作ったのが JavaFX のようです
JavaFX 1 のころは 独自のスクリプト JavaFX Script を使っていたようですが JavaFX 2 ではそれが廃止されて Java の API で操作するようになったようです
それ以外にも FXML (XML+CSS) でデザインを作ることが出来るようです
なんか WPF (XAML) みたい
JavaFX は 1 が 2008 年末で 2 が 2011 年秋にリリースなので WPF や XAML はもっと前からあります
こう見てると Java は .NET の後追いしてるだけ感が強いですね
でも CSS が使えるなら XAML よりいいかもです
XAML のスタイルが書きづらくてすごく CSS にしたいくらいですから
XML+CSS ってデザイン重視ぽい感じな構成な分 Swing と違って綺麗に作れるそうです
ウェブに Windows アプリに Java って主要なところが全部 XML ベースにスタイル設定する作りってなんかすごいですね
マイナーどころ
探そうとすれば SwingX や SWT や JGoodies とかいうのもありましたがマイナーどころみたいです出てくるページも結構古いのが多いですし
マイナーどころの中では SWT が一番有名みたいです
Eclipse で使われてる Framework のようです
個人的には Java 嫌いな理由の一つになるほどに Eclipse 嫌いです
昔ほんのちょっと使って見た目がダメだし 重いしで Java 自体を嫌いになるのには十分でした
Java って書く量が多すぎて IDE なしじゃ辛いものなのにその IDE がこれですから
しかも無料じゃほぼ Eclipse 一強みたいでしたし
NetBeans はマスコットキャラのネコビーンズ好きでしたがなぜか結局使わなかった気がします
その対抗っぽい C# が VisualStudio っていう重いけどそれ以外はかなり優れてる IDE 付きならそっちを選びますよ
そんな Eclipse 用なので微妙だろうと勝手に思ってます
JetBrains の IDE は?
本題の何が使われてるか ですが一応 InterlliJ はオープンソースだったりしますhttps://github.com/JetBrains/intellij-community
見ればわかるかな と軽く見てみたのですが 実際に Java のフレームワークを使ったわけではないので大規模なプロジェクトだとどこを見て判断すれば良いかもわかりません
同じ疑問持ってる人いるでしょ
と StackOverflow を覗いてみました
https://stackoverflow.com/questions/12309569/what-gui-libraries-are-the-jetbrains-using
IntelliJ IDEA is a pure Java SWING application, all the custom components like editor tabs are created manually, no third-party libraries are used for this.
Swing??
汚いと言われる Swing なの?
InterlliJ とかすごいきれいなのに
続きを読むと 「エディタやタブなどの全部のカスタムコンポーネントは自作でサードパーティのライブラリはなし」だそうです
Swing は見た目がダメっていうのをよく見かけましたが デフォルトがダメなだけで自作すれば綺麗になるんですね
軽い気持ちで調べたら思いの外 Java に詳しくなってしまった……