One IT Thing

IT業界で飯を食う為の学習系雑記

java

JavaコアAPI数の遷移をChart.jsでグラフ化

投稿日:2019年6月23日 更新日:

Javaはデフォルトで多数のAPIクラスを持っていてコーディングを楽にしてくれます。その数は増え続けているんでしょうか。

バージョンが上がるごとにどう変化しているか調べてchart.jsでグラフ化しました。

調査方法

Oracle公式サイトのJavaDocからバージョン毎のすべてのクラス数を計測。

調査結果

Java9でピークを迎えた後は減少傾向にあります。脱モノリシックの動きでモジュール化出来るようになったり、時代遅れになったCORBAやJAX-WSがコアから外れて別提供になった結果が反映されています。

  • Java 1.3 : 1,840
  • Java 1.4 : 2,722
  • Java 5 : 3,280
  • Java 6 : 3,794
  • Java 7 : 4,024
  • Java 8 : 4,240
  • Java 9 : 6,005
  • Java 10 : 6,002
  • Java 11 : 4,410
  • Java 12 : 3,110

グラフ化

npm install chart.jsしてindex.html一枚っぺらです。http-serverコマンドで動確しています。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <script src="node_modules/chart.js/dist/Chart.min.js"></script>
        <script>
            function initChart() {
                var ctx = document.getElementById("chart");

                var data = {
                    labels: [
                        "java1.3",
                        "java1.4",
                        "java5",
                        "java6",
                        "java7",
                        "java8",
                        "java9",
                        "java10",
                        "java11",
                        "java12"
                    ],
                    datasets: [
                        {
                            label: "コアAPIクラス数",
                            data: [
                                1840,
                                2722,
                                3280,
                                3794,
                                4024,
                                4240,
                                6005,
                                6002,
                                4410,
                                3110
                            ],
                            backgroundColor: [
                                "rgba(255, 100, 100, 0.5)",
                                "rgba(255, 255, 100, 0.5)",
                                "rgba(255, 255, 255, 0.5)",
                                "rgba(100, 255, 255, 0.5)",
                                "rgba(100, 100, 255, 0.5)",
                                "rgba(127, 127, 127, 0.5)",
                                "rgba(0, 127, 127, 0.5)",
                                "rgba(127, 0, 127, 0.5)",
                                "rgba(127, 127, 0, 0.5)",
                                "rgba(64, 64, 64, 0.5)"
                            ],
                            borderColor: "rgba(80, 80, 255, 0.5)",
                            borderWidth: "4"
                        }
                    ]
                };

                var chart = new Chart(ctx, {
                    type: "bar",
                    data: data
                });
            }
        </script>

        <title>JavaコアAPI数の繊維</title>
    </head>
    <body onload="initChart()">
        <canvas id="chart"></canvas>
    </body>
</html>

不要なAPIは外部化の傾向

多くの機能は拡張機能として分離され、コアは減少傾向になっています。13になって更に減るのか、また増え始めるのか気になるところです。

Web上では有料無料含め数値をグラフ化するサービスが多数ありますが、chart.jsだけで大概のグラフ化が出来るので便利ですね。

-java
-

執筆者:

関連記事

CentOS7にOpenJDK11をインストール、alternatives後の再ログインでJAVA_HOMEも自動変更

OpenJDKはCentOS-Baseリポジトリのupdatesに登録されているので新規yumリポジトリ追加は不要です。 [root@spock tmp]# yumdb search from_rep …

Spring&JSPの検証環境を速攻で作る

2019年現在、オワコン風潮の強いJSPですが使っているプロジェクトもまだまだあり、枯れた技術を好む官公庁系のプロジェクトでは根強いシェアを誇っています。実装検証をする為に環境を作る機会があったりする …

IVS、サロゲートペアが混じった文字列をJavaのWebアプリでワードカウントする

(結論:java.text.BreakIteratorは「サロゲートペア文字 + IVS」の8バイト文字も1文字としてカウントしてくれる) 先日、IPAmj明朝フォントを使ってIVSを含んだUnico …

Doxygenでspring-frameworkをドキュメント化

以前にspring-frameworkのソースリーディングが出来る環境をOpenGrokで作りました。 One IT ThingOpenGrokをインストールしてソースリーディング環境を作る …

Javascript(暗号化JSライブラリ「Forge」)とp12ファイルで署名値を作成、Javaで検証する

前回、送信データの改ざんを検知する為、簡易的なセキュリティトークンであるPKCS#12形式のファイルを作成しました。  One IT Thing開発用のPKCS#12ファイルをOpenSSL …

 

sin7k24
 

東京在勤、職歴20年越え中年ITエンジニアです。まだ開発現場で頑張っています。

19歳(1996年)から書き始めた個人日記が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。

私と同じく、今後IT業界で生計を立てて行きたいと考えている方や、技術共有したいけどフリーランスで孤独、といった方と一緒に成長、知識共有して行けたら楽しいな、と思っています。