これが世界で最も人気のあるプログラミング言語です。そしてそれは... えーと、YAML ですか?!?

Table of Contents

これが世界で最も人気のあるプログラミング言語です。そしてそれは... えーと、YAML ですか?!?

DevOpsビジネスDatree.ioによると、世界で最も人気のあるプログラミング言語は、JavaでもJavaScriptでもPythonでもありません。YAMLは、「YAML Ain't Markup Language(YAMLはマークアップ言語ではない)」の再帰的な頭字語です。

これは「プログラミング言語」の定義を少し広げた表現です。JSONのスーパーセットであり、タブ文字への耐性がほとんどないYAMLは、データシリアル化言語と呼ぶ方が適切ですが、必ずしも万人に好まれる言語ではありません。YAMLは、コンテナ、パッケージ、その他の最新技術の設定ファイルでよく使用されます。

HTML はプログラミング言語とも呼ばれており、異論もあるものの、概念実証用の HTML 専用計算機が存在するため、Datree の妄想には前例がある。

ループから外れて

しかし、Datree の CTO 兼共同設立者である Shimon Tolts 氏でさえ、 The Registerとの電話インタビューで、「もちろん、ループなどを記述できる実際のプログラミング言語ではありません」と認めています。

しかしトルツ氏は、コード開発とデプロイメントの自動化という大きな転換期が到来していると主張している。その多くはYAMLファイル内の設定データによって推進されている。「あらゆるものがYAML化されつつあります」と彼は述べた。「Gitは開発と本番環境をつなぐ新たなゲートウェイです。あらゆるものがコミッターから本番環境へと移行しています。そして、これらのツールはすべてYAMLを使って設定されているのです。」

Datreeは、数百万のオープンソースGitHubプロジェクトを分析し、6,000万ものYAMLファイルが散在していることを発見し、この発見に至りました。同社によると、顧客のプライベートリポジトリ1万件のうち、アクティブなリポジトリすべてに少なくとも1つのYAMLファイルが含まれていたとのことです。

同社の独特な世界観を理解するには、DockerやKubernetesといったDevOpsツールにYAMLが数多く使われていることを認識すると役立ちます。Datreeの調査によると、GitHubのDockerfilesリポジトリ190万件のうち、約50万件にdocker-compose.ymlDockerサービス設定用のファイルが含まれていました。

さらに、YAMLはC++、Go、Java、JavaScript、Rust、Pythonで書かれたプロジェクトでよく使用されています。同社によると、最も急速に成長しているYAMLファイルはcircleci/config.yml、CircleCIのCI/CDソフトウェアに情報を提供するYAMLファイルです。

Datree はこれを、自動展開の採用が拡大している兆候だとみています。

Q. 今日のトップ言語は何ですか? A. Python…いや、待ってください、Java…いや、C

続きを読む

しかし、他のデータ処理者たちは、YAML中心の世界を見ていません。コーディングコミュニティサイトStack Overflowのデータサイエンティスト、Julia Silge氏は、 The Registerへのメールで次のように述べています。「YAMLは設定ファイルでよく使われており、DevOps文化において非常に重要な『Infrastructure as Code』の実践が影響力を増すにつれて、YAMLのような言語はより広く普及するでしょう。とはいえ、Stack Overflowのデータを見ると、YAMLは成長しているものの、他のデータシリアル化形式、ましてや他の言語ほど重要ではないことがわかります。」

Silge 氏は、リポジトリ内のファイル数ではなく特定のトピックに関する質問で測定された Stack Overflow のデータを示し、YAML、JSON、XML という用語の比較を示しました。

「JSON と XML の人気はどちらも比例して低下している一方で、YAML は成長している。しかし、YAML はソフトウェア開発全体ではまだ支配的な存在ではない」と彼女は述べた。

そして、Python と Go を YAML と比較すると、YAML の急成長はさらに期待外れに見えます。

「このツールはStack Overflowで質問されたものを表示しますが、トラフィックにもほぼ同じパターンが見られます」とシルゲ氏は述べた。「YAMLは人気が高まっており、DevOpsの分野では重要ですが、PythonやGo(DevOpsで使用されるスクリプト言語)やJSONやXML(その他のデータシリアル化形式)のように、支配的な技術であるという証拠は見当たりません。」®

Discover More