23
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonの勉強を始めたところ標準ライブラリが強力すぎて(Javascript比較)驚きました。Pythonからプログラムの勉強を始めると多言語学習に苦労するのでは無いでしょうか?

Last updated at Posted at 2026-01-16

そういう驚きを感じられるのは、プログラマーとしてかなり有望だと思いますよ。その観点は忘れないでください。

少なくとも 初期の頃のPythonは、標準パッケージで何でもできることをコンセプトの1つとしていました。 Pythonが生まれた頃はインターネットに転がっているライブラリを拾ってくるなんて夢のまた夢で (まだインターネットという言葉がありません)、ソースコードを仲間と手渡しで共有するくらいしかできませんでした。標準ライブラリが強力じゃないと大きなプログラムはまともに書けませんでした。 まぁぶっちゃけ時代的に必要だったというだけの理由ではあります。

とはいえ、しっかりテストされ安心して使える公式のライブラリが強力なのは、特に仕事においてかなり大きなアドバンテージです。 最近のPythonはユーザーエンドによる外部ライブラリが発達したおかげで公式ライブラリの進歩があまり目立ちませんが、ちゃんと便利に進歩していますよ。

Pythonより少し先輩で、人命に関わるなど高度な信頼性が求められる大規模システム向け言語のC++は、今も巨大な標準ライブラリ (STD/STL) がガンガン進化していくタイプの言語です。

C++は40年以上の長い歴史を持つ組み込み用途向けの言語ですが、Rustで人気のメモリの自動解放やスマートポインタ(これはRustのリリース前から)や、Pythonで人気になった行列関数のfilterやmapやラムダ式(こちらは比較的最近)など、先進的な機能も当たり前に提供する最新鋭の言語の1つで、バージョンアップごとにすごい数の新機能が追加されます。Cython含めてPythonもシェアが大きいからこその成長速度ですね。

対して JavaScriptは元々ブラウザの中での「ちょっとしたこと」程度の仕事しか想定していなかったため(あくまで汎用言語との比較です)、かなり貧弱な言語機能しか持っていませんでした。 詳しくはNetscapeで検索すると良いでしょう。

最近はJavaScriptだけでもNode.jsなどかなり色々やるようになってきましたが、それでも最終的にブラウザやWebサーバーの機能を呼び出すための橋渡ししかしていません。いくら頑張って言語に機能を追加しようとしても、ブラウザやサーバー側が対応する機能を持っていなければ意味がないのです。

また JavaScriptはインターネット時代の新しい言語で、ブラウザ上でWebのどこからでもライブラリを取ってきて即使えます。ですから標準ライブラリにそこまで機能が必要とされていないのも事実です。 (JavaScriptの高機能化が始まったのは2008年にV8エンジンが注目された後のことです)

最近はJavaScriptもnpmなど一元管理されたリポジトリからライブラリを取得してバンドル(同梱)する手法も一般的になりましたが、これはダウンロードの高速化のためにC++やPythonなど旧時代の手法を取り入れただけのものですね。

JavaScriptだけでなく、RustやRなど最近の新しい言語はどれも、古い言語に比べて標準ライブラリがかなり軽量な傾向があります。 言語が人気になれば世界の誰かが便利なライブラリを作って応援してくれることが分かっているからです。 出来のいい人気のライブラリなら、公式に同梱せずともユーザーが勝手に見つけて使って育ててくれるので、本家は運用が非常に楽になります。

とはいえJavaScriptのカレンダー機能のヒドさ(文字列や配列系はかなり良くなりましたね)とか、逆にPythonやC++など全部入りライブラリの巨大迷宮化など、どちらにも弊害がないわけではありません。それぞれの得意分野や性質を観察しつつ、自分なりの使い分けや組み合わせ方を見つけて使いこなしていってください。

言語を比較しながら学べる視点を持っている人には、現状シェア1位のPythonをある程度学んでから他の言語を学んでいくのも良いと思います。 上のRustとC++の比較回答に載せた、2023年末のGitHubの「言語シェアランキング」なども参考になるかもしれません。どの言語も互いに学んで長所を吸収し合っているので、この言語にも似た機能がないかな?と調べながら進めると習得がはかどるでしょう。**勉強楽しんでくださいね。

23
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?