為何大家都鄙視python調庫,C語言不同樣要引用頭文件嗎?


從技術角度上,Python的各種庫得益於統一的包管理器,能夠將這個庫依賴的東西自動的後面部署好,只要使用pip等安裝好庫,直接import就可以調用庫的介面,所有dirty的東西都被藏在了背後,而且本身的Python的裡面就是簡潔、優雅,自然暴露出來的內容就非常友好,當然友好是付出了一些代價的,這些代價一般就是性能。

C/C++一直缺少包管理器,有很多優秀的庫,很好用,但是本身的依賴很可能你要自己去處理,在處理編譯依賴的時候,編譯器版本、操作系統等方面的內容都需要手動來處理(即使庫提供了CMake腳本或者其他構建工具,但要是集成到你的程序裡面去,也是要處理不少東西的),相對而言使用門檻是有一點的。

從工作內容角度上,Python語言的特點結合上許多易用、優秀的第三方庫,可以將很多工作流程大大簡化,畢竟很多工作也不需要什麼性能,只需要功能跑對即可,由於很多介面高度封裝,可能你只需要知道調用這個方法會發生什麼事情就足夠了,所謂「不求甚解」,至於底層發生了什麼,很多時候不需要知道就可以完成你的工作。

該問題在C/C++中是一樣存在的,在別人配置好的環境下只寫一些簡單的邏輯代碼,知道std::map和std::unordered_map是個容器,但有什麼具體差別卻不知道的人有很多。

對於一門知識的了解程度不應該作為應不應該被鄙視的標準,對於財務等辦公人員,使用Python自動化辦公,他去了解底層庫的實現原理沒有任何意義,方便完成自己的工作即可。

對於科研工作者,matlab直接調用數學庫來快速實現演算法是足夠的,難道每次都要自己手擼一遍fft等演算法嗎,這不現實,這也不是他工作的內容,用matlab和調matlab的庫都只是科研工作者手邊的工具而已。

對於程序開發人員,特別是基礎組件的開發人員,了解編程語言的細節、底層原理則是應該的,否則無法對自己寫出的程序負責,當然具體還是要看自己的人生理念與工作實際情況。

專註自己的工作,不要總想著鄙視這個鄙視那個,福報已經很累了,還要互相瞧不起,你說這是圖什麼。


以樂高玩具為例.

Python調的"庫", 是已經製造好的各種樂高零部件, 用戶只要將這些零部件組裝成一個玩具即可.

C語言調的"庫", 是石油, 煤炭等基礎材料. 用戶要先製作出那些零部件, 再組裝成一個玩具.

顯然, Python更容易上手, 上來直接就可以玩樂高了.

C語言的自由度更高, 零部件自己自由發揮, 但是如果用戶水平不夠, 也更容易翻車, 比如製造的零部件質量太差, 根本無法組裝成玩具.


我個人確實有點不喜歡Python,所以算是有點資格答問題吧

就事論事,沒有鄙視Python庫

另外,個人也會用Pytorch搞機器學習,所以我雖然不是很喜歡Python,但是還是會用它。

那我為什麼不是很喜歡

語言上的原因,因為動態類型,是的,我是個靜態類型黨

更多的。是因為有那麼一群Pythoner,我寫C++弄半天,還跑來諷刺你為什麼造輪子(???我用的什麼zlib、cJSON是不知道它們是啥嗎???),甚至拋出人生苦短我用Python之類的金句。而且Py吹太多了,就像Rust吹那樣,無處不在

看到了吧,不是不喜歡語言,是不喜歡用這個語言那麼一小部分人。不過,不喜歡這群人也並不會影響我用Python,目前來說,這確實是一個驗證idea的好工具


不鄙視調庫啊,題主是不是搞錯了什麼?Python最佳應用方式之一就包括了當做膠水語言來使用。換句話說用Python來調用各種庫實際上是推薦的使用姿勢,為啥要鄙視?

但是說如果某個Python程序員,一邊享受著調用某個庫帶來的便利,一邊用帶有嘲諷的語氣調侃著寫這個庫的作者居然用在另一門語言寫這個庫,那這種行為就很值得鄙視了。這種行為就彷彿是,吃著碗里的大米飯,調侃著農民伯伯為什麼要種地,直接買大米飯多好。相信大多數思維能力正常的人都會對這種言論發自內心地鄙視。

這個邏輯換到Python和C也一樣。C程序員努力工作,給Python程序員提供了對他們來說理想的介面方便了他們使用,結果其中的某些人不來幫忙開發也就算了,還要來評論一句「人生苦短我用Python」之類的,甚至直接把給他們提供基層建築的C程序員說的一文不值。這種人的確很值得鄙視。

更難受的是,雖然計算機科學、軟體工程等學科在大學沒有分那麼細,實際上這學科內部的劃分比絕大多數人想像的要精細得多,一個Python程序員可能這輩子也沒機會知道自己用的庫是怎麼寫出來的。所以Python程序員中,宣揚庫是萬能的,C語言一類的底層語言沒什麼用的聲音也就越來越高,難免會導致修路的人反感。所以看起來似乎是大家都鄙視python調庫。


不管題主是C語言工程師還是Python工程師,希望題主能理解彼此不同的分工,大家都是在用自己熟悉的工具來做自己能做的事情而已。除了對和自己定位不同的人做出的不同的選擇表示輕視或鄙視這種行為值得鄙視之外,大家都很值得尊重。

再順便吐槽一下,C語言的頭文件和Python的調庫其實並不是完全一致的操作,C語言真正完成調庫的工作是在鏈接器工作的時候完成的。


調庫應該沒有被鄙視。

應該是Python容忍了太多糟糕開發者。

語法更像英語,調庫極其簡便,導致Python的一部分使用者是真的除了import啥都不會。這一部分人其實是把Python當軟體而非編程語言用。

這才是很多開發者有意見的。


推薦閱讀:

現在開始自學Python能過二級考試嗎?
python和人工智慧有什麼關係?
python中dict()函數怎麼創造鍵為數字的鍵值對?
Python中self參數是什麼?
學python必須會英文嗎?

TAG:Python | C語言入門 |