日本発のプログラミング言語Rubyは、Web開発でよく使われています。しかし、Python言語に押されてオワコン説まで浮上しています。そのようなRubyの現状について海外の人はどのように思っているのでしょうか。
上の画像はRuby公式から引用
現在、Rubyは主に何に使われているのか?
翻訳元:https://www.reddit.com/r/ruby/comments/yhe3t4/whats_ruby_used_for_most_nowadays/
Ruby on Rails(訳注:Rubyによって作られたWebアプリ開発用フレームワーク)によって、RubyがWebプログラミングの世界を引き継ぐだろうと考えていた時期がありました。プログラミング言語としてもPythonなどの類似言語と比較して、Rubyはいつも楽しく使用できます(私に限れば、Rubyの知識は多くはないのですが)。Pythonは悪くありませんが、Pythonを使用しているとあまり笑顔になれません(Pythonを使う意味があるのならともかく)。
どういうわけか、最近Rubyについてあまり聞かなくなりました。Pythonはどこにでもあるようで、学校のカリキュラムにも最初のプログラミング言語として記載されています。
何があったのでしょうか?Rubyは現在主に何に使用されていますか?PythonがAI(人工知能)/ML(機械学習)で普及し、人々がほとんどのライブラリをPython用に書き始めたのは単なる偶然でしょうか?
追記
皆さん、熱心な返信をありがとうございました。Rubyの現状がおおよそわかりました。多くの人が今でもRubyを愛していることを知って心強く思います(もちろん、ここはRubyのフォーラムですが、それでも返信の傾向が良い指標となります。私が思うにですが)。Rubyは、消滅するにはあまりにも優れた言語です。私は動的型付け言語で本当に大規模なソフトウェアを書こうとは思いませんが、短いスクリプトや中程度の規模のプロジェクトの場合、Rubyでコードを書いていると、コンピューターに話しかけているような気分になります。
コメントの翻訳
RubyとRuby on Railsは、10~15年前に誇大広告の時期がありましたが、その後、誇大広告を必要とせずに多くの場所で使用できるほど主流になりました。GitHub、Shopify、Stripe、その他豊富な資金を持つスタートアップ企業がたくさんあります。また、単にAPIや小規模なWebアプリを必要としている聞いたこともないような中小企業もたくさんあります。 Rubyは、読みやすく、楽しく作業できるコードを書くための素晴らしい言語です。Ruby on Railsは依然として、1人または小規模なチームが多くの作業を実行できるフレームワークです。ほとんど退屈な作業ですが、うまくいきます。 Web関連のJavaScriptとTypeScriptこそ誇大広告です。それらは年に2回エコシステムを再発明し、1~2年後には放棄されてしまう新しいものを採用することを楽しんでいます(素晴らしいことだ)。 RubyとRuby on Railsは、あなたが必要なときに使用する強力なツールとしてPHP、Java、その他の言語と並ぶものです。あなたは偶然そのエコシステムに投資(知識、人材など)してきたようなものです。
私が最後に働いていた会社では、Ruby開発者を見つけるのが難しすぎるという理由だけで、新しいアプリにRubyが選ばれませんでした(JavaScriptやPythonと比較された)。
そして、Rubyのその希少性おかげで、Rubyの経験のない私は学校を卒業してすぐに企業に採用され、私が実務研修を受けている間もその企業は高い給料を払ってくれました。 Ruby開発者は減少傾向にあるかもしれませんが、世の中にはRuby on Railsのコードベースがたくさんあり、私は今後も高額な給料をもらって残りのキャリアを喜んで維持していきたいと思います。
なぜ他の言語の経験を持つ開発者を雇わないのかわかりません。Rubyを習得するのはそれほど難しいわけではありません...
これに対する答えは簡単です。ある製品が確立されたコードベースに基づいている場合、そのコードベースの言語/フレームワークに固執し、後戻りできなくなります。もう1つの選択肢はコードベースの完全な書き換えですが、これは非常にコストがかかります。
最大の用途の2つは、おそらくWebアプリ(Ruby on Rails)と構成管理(Chef、Puppet)です。 Pythonは恐ろしい言語ではありませんが、VHS対ベータマックスの戦争を覚えている年齢の人なら誰でも歴史が繰り返されるのを見ることになります。Rubyは、Pythonよりもはるかにエレガントで読みやすいものです。
あまりにエレガントすぎると、代償を払うことになるのかもしれません。私はRubyが大好きですが、エレガントでありながら「ハードコア」であるという点で、Pythonの方がはるかに優れたバランスを持っていると感じています。Go言語を想像してみてください。
(それなりに)経験豊富なC#開発者である私にとって、Ruby on Railsを使用し始めた短い期間(2年間)においてRubyは全く好きになれませんでした。 ダック・タイピング(訳注:オブジェクトの型が不明確な状態でプログラミングする手法。PythonやRubyのような動的言語で使われる手法だが、C#のような静的言語を使っている人は嫌うこともある)とデバッグ環境の問題が私の最大の不満だったと思います... Rubyはレース向きの馬という感じ…。
Rubyは決して主流ではありませんでしたが、Ruby on Railsは主流でした。そして残念なことに、Ruby on Railsはもうそれほど人気がありません... 主な理由は、誰もがRubyのスケーリングの問題(訳注:スケーリングとは、システムの処理能力を拡張すること。Rubyは速度が遅いので、それが苦手だとされている)を恐れていて、Node.js(訳注:JavaScriptで高速なWebアプリを構築できる環境)が登場したちょうどその頃にこの問題が起こったことだと思います。 まだ希望はあると思います。Ruby用のJITコンパイラ(訳注:実行時にRuby言語を機械語に変換するソフトウェア。動作速度を大幅に改善できる)が開発中ですが、それがうまくいかなかった場合、Crystal言語が優れた後継言語になる可能性があります。
Rubyの勢いを止めた原因の多くはまさにそれだったと思います。数年前、「X(Twitter)は処理性能とスケーラビリティ(訳注:処理能力の拡張性のこと)の理由からRuby on Railsから離れつつある」という内容のブログ投稿が、あらゆる規模の企業から相次いで投稿されました。この投稿では、移行におけるリソースの莫大な投資について説明し、新しいソフトウェアスタックが何であれ誇らしげに説明しました。 この業界ではよくあることですが、こうした投稿を読んだ人は間違ったメッセージを受け取ってしまったのです。「賢い人ならRubyを避けて最初から新しいアーキテクチャを採用する」と解釈したのです。しかし、それは間違っています。なぜなら、Rubyを捨てることは、スタートアップ企業から始まって成長した大企業に適した手法だからです。成長したためにアーキテクチャを再検討しなければならないのは大きな問題であり、必要なときまでにそれをやり遂げるエンジニアリングの才能も備えている必要がありますけど。 ほとんどの場合、最初から大規模の設計を行った創業者は、必要最小限の設計をすれば決して発生しない問題を解決するために資金を使い果たしているため、その経験についてブログ記事を書くことはないのです。Ruby on Railsを放棄するかどうかが問題ではなく、いつ放棄するかが問題であるとしても、Ruby on Railsはプロトタイプを迅速にリリースするための優れたツールセットであることに変わりはありません。
Pythonはいつもちょっとした何でも屋でした。12年前でも、スクリプト、Web開発(Django、Pylons)、GUI(PyQT はほぼ公式にサポートされています)、ゲーム、科学、AIに使用されていました。これらのうちの1つは、ある時点から実際に開花し始めました。 一方、RubyはほとんどがWeb開発のみ+構成管理(Puppet、Chef)とスクリプト用途でした。Ruby on Railsは、開発者の経験が少なくても市場投入までの時間が短いという点で競合他社よりも何光年も先を行っていましたが、それ以来、競合他社が追いつきました。 もちろん、Rubyが他のこと(科学技術計算に使われるGSL、SciRuby)と関連することもありましたが、それらは注目されずに放棄されました。これは部分的には不運のせいであり、部分的にはイノベーションに興味を持たなくなったコミュニティのせいであり、またある点では「Rubyは成熟した」というスローガンを周囲に投げかけていることも原因です。 現在、Ruby on Railsは単独の開発者または小規模チームによって作成された中小規模のプロジェクトの市場シェアを取り戻そうとしているようです。私が思うにこれは賢明な行動です。再びトップに浮上することはできませんが、依然としてWeb開発との関連性を保つことはできます。 しかし、それはWeb開発だけという状況を繰り返すことになります。現在では、GUI用のGlimmerやゲーム開発用のDragonRubyなど、他の分野でも非常に優れたツールが提供されています。手遅れなのか、Rubyの状況を少しは変えることができるかどうかは時間が経てば分かるかもしれません。
いくつかのことがありました。GoogleはPythonを支援しましたが、Rubyはこれに匹敵する企業の支援者を獲得することはありませんでした。さらに学術/研究コミュニティはRubyよりもPythonを採用したため、半技術系の人にとってはPythonが頼りになる選択肢となりました。 私が思うにRuby on Railsは、大規模なスケーリングを必要としないWebアプリを構築するための最良の方法であり、コミュニティは依然としてこのフレームワークに関して有意義な進歩を遂げており、そこにRubyの勢いがまだ残っていると言えます。
良いものが普及するとは限らないということですね。
コメント
プログラミング言語なんてただの宗教だから