這種驚訝的感受,我認為作為一名程式設計師是非常有潛力的喔。請不要忘記這個觀點。
至少 初期的 Python 就是以標準套件可以做到任何事情為概念之一。 在 Python 誕生的時候,從網路上撿到的函式庫簡直是夢想(當時甚至還沒有「網路」這個詞),我們能做的只是和夥伴手動交換原始碼。沒有強大的標準函式庫,根本無法寫出大規模的程式。 老實說,這只是因為當時的時代需要而已。
儘管如此,穩定經過測試且能放心使用的官方函式庫的強大,對於工作來說是一個相當大的優勢。近年來,由於使用者端的外部函式庫發展迅速,官方函式庫的進步可能不那麼顯眼,但它確實在不斷進步。
相比之下,C++ 是一種稍微比 Python 更早的語言,專為需要高度可靠性的重大系統設計,至今仍擁有不斷進化的龐大標準函式庫(STD/STL)。
C++ 擁有超過 40 年的長久歷史,主要用於嵌入式應用,但它也提供了像 Rust 所流行的自動記憶體釋放與智能指標(這在 Rust 發行前就已具備)、以及 Python 中流行的過濾器(filter)、映射(map)和 Lambda 表示式(這是比較最近的功能)等先進特性,是目前的一種最新鋭語言,每次版本升級都會有大量的新功能被添加進來。包括 Cython 在內,Python 的市場佔有率也促進了其增長速度。
與此對比,JavaScript 最初僅預期在瀏覽器中進行「小事情」的工作(這僅是和通用語言的比較),因此它的語言功能相當貧弱。 詳細的資訊可以查閱 Netscape 的相關資料。
最近,JavaScript 已經透過 Node.js 等技術開始擴展其功能,但最終仍然只是在瀏覽器或網頁伺服器之間充當橋梁。無論如何努力想要為語言增加功能,如果瀏覽器或伺服器端沒有對應的功能,那都是毫無意義的。
此外,JavaScript作為互聯網時代的新語言,可以直接在瀏覽器上從網路的任何地方取得函式庫並立即使用。因此,標準函式庫並不需要那麼多的功能也是事實。(JavaScript 的高功能化是在 2008 年 V8 引擎受到關注之後才開始的。)
最近,JavaScript 也普遍使用 npm 等集中管理的儲存庫來獲取和打包函式庫,但這實際上只是引入了過去 C++ 和 Python 時代的技術來加快下載速度。
不僅僅是 JavaScript,Rust 和 R 等新興語言的標準函式庫在相對於舊語言來說,通常也顯得相當輕量。因為當語言變得流行時,世界上的某個人會製作出便利的函式庫來支持它。 若是優質的流行函式庫,即使不官方打包,使用者也會自行發掘並使用並加以發展,這讓主體在運用上變得非常簡單。
雖然如此,JavaScript 的日曆功能之糟糕(字串和陣列雖然已經有了相當進步),還有 Python 和 C++ 等多功能函式庫的龐大迷宮化,這些都各有其問題。在觀察各自的特長領域和特性時,請試著找到自己喜歡的用法或組合方式,而加以靈活運用。
對於那些擁有「比較語言」的學習視角的人,我認為可以在學習到一定程度的 Python 之後,再學其他語言也是不錯的選擇。 上面針對 Rust 和 C++ 的比較回答中提及的,2023 年底 GitHub 的「語言市場佔有率排名」等資料,也許會是一個不錯的參考。每種語言彼此學習和吸收優點,所以在進行時可以查找一下這種語言中是否有類似的功能,這樣可以更有效地掌握。祝你學習愉快!