Python是一個糟糕的編程語言
我會再說一次:Python是一種糟糕的編程語言,今天它是如此受歡迎的唯一原因是因為谷歌在2000年代的第一個十年推動它。
Python的創造者Guido Van Rossum,實際上在谷歌2005年到2012年工作。Go和Dart并不圍繞(或至少他們不眾名人知)和C#中的人氣(偷竊Java的開發人員)谷歌可能覺得他們需要自己的語言。他們可能會想要擁抱Java,因為他們已經使用它是Android的,但他們一定是偏執狂,因為他們已經與Oracle簽訂了法律問題。因此,無論出于何種原因,他們采用Python。我想在一個替代宇宙中,他們可以選擇,例如,Lua,也許在那里宇宙會成為今天的主導語言。當然,Lua有點奇怪,所以它可能會畢竟沒有選擇那個。
但是,讓我們談談為什么Python糟透了。很難談論為什么有些東西糟透了,特別是在它流行時,但這篇文章將是一種嘗試。我將覆蓋語言本身,而不是其表現或其實施。我將大多將其與Java和C#進行比較,因為這些是兩個眾所周知的,成熟的語言,在軟件行業中有很多現實的使用量超過十五年。
碎片的語言
很長一段時間,Python有兩個主要版本在野外跑去。當然,它們是Python 2和3,它們彼此不相容。所以你被涂上這種奇怪的情況,谷歌會說“來找伙計們,學習一些Python,這很酷!”然后你會下載它,你會選擇版本2和3之間的選擇,也許谷歌會告訴你“選擇3!”其他人會告訴你“選擇2!”然后,您會發現3只幾乎沒有任何兼容的庫,沒有人使用它,并且3為什么開發的原因是為打印函數和表情符號支持添加括號。最近只有情況得多。例如,Ubuntu最近逐步淘汰了Python 2。
丑陋的面向對象
Python中的一個類看起來像這樣:
- class Car:
- def __init__(self):
- self.color = "red"
- self.wheels = 4
- def get_wheels(self):
- return f"{self.wheels}!"
我希望你喜歡那些self關鍵字,因為你會在Python的任何地方看到它們。
這是指類的實例變量的方式。它就像Java或C#中的這個關鍵字,只有在Python中,他們需要,因為Python是愚蠢的。
請注意此類有2個實例變量:color和wheels?請參閱如何在構造函數中聲明并初始化它們?Python愚蠢的另一個例子。
你可能想知道“我如何使他們私有實例變量?”好吧,答案是你沒有。你不能。在Python中沒有私有實例變量如此。
您在Python中可以做得最好的是用兩個下劃線啟動它們,如下所示:self .__ color =“red”
這是導致Python解釋器要敲打變量的名稱,因此它無法從類外部訪問(但有一些持久性,如果您想要,您仍然可以從類外部訪問變量)。所以它不會成為私有變量,但它變得令人作嘔。
當然,它有效,但來了。想要在C#或Java中定義私有實例變量?將關鍵字私有放在前面。
如果您向Python開發人員詢問了這一點,他們將回復:“不要訪問另一個類的實例變量,lol”。一般來說,當你指出他們的語言中的任何缺陷時,Python開發人員將采取敵意和居高臨下。
空格
啊,空格。Python垃圾的另一個原因。在一個明智語言范圍中,程序塊是用括號完成的,或者開始和結束關鍵字,或類似的東西。但不是在Python!Python認為向空格提供語義含義很好。為什么在地球上他們會給出語義含義,這是無法看到的東西嗎?誰認為這是一個好主意?
雷德德特史蒂夫·霍夫曼的聯合創始人表示:
當我們雇用新員工……我不認為我們還聘請了一名了解Python的員工。我只是說,“你寫的一切都需要在Python。”所以我可以讀它。它真棒,因為我可以從房間里看到,看著他們的屏幕,他們的代碼是好還是壞的。 |
所以即使我想相信這個家伙能夠從整個房間做代碼評論,如何使用的空格比卷曲括號更好?在幾乎任何其他現代語言中,使用縮進是寫入方法時的常態。只有在Python中,標簽和空間之間的區別會導致口譯員有心臟病發作。
動態類型
動態類型很糟糕,任何不同意我的人可能都沒有寫過足夠的軟件來實現它。通過動態鍵入,程序的增長越大,它變得更加明顯。我預測,在未來,所有主流編程語言都將靜態鍵入,并且使用動態類型的語言將像使用弓箭一樣。您將能夠在YouTube頻道原始技術上以動態類型的語言觀看人員編程。最近出現的語言,如類型簽字,給我希望。
一些Python程序員已經意識到動態鍵入是糟糕的,所以現在我們有Mypy,但如果你要向Python添加類型的注釋,你為什么不僅僅是像Java或C#這樣的語言?
常數
Python沒有常數。我的意思是,如果你在文章中邁出了這一點,你期望了什么?使變量常量的問題,Python開發人員的建議是“只是不改變它”。
皇帝沒有衣服
Python是一個案例研究,人們如何嘗試與某些東西一起生活,適應它,并合理化他們對它的熱愛,所有,而不是將其扔出并找到更好的東西。這樣也許這是一種愛的信息,或希望,或者什么的?不知何故,來自1991年的這個副本語言超過了幾種更新的語言,對此做任何事情可能為時已晚。 2014年,它成為大學最受歡迎的介紹性教學。
因此,我們將開始看到更多的孩子用Python進入業界作為他們的主要語言,并且Python只會隨著越來越多的軟件在其中編寫了越來越多的軟件。在這份寫作時,它目前在Tiobe指數上排名第2,該公司指定Python“2020年的編程語言”。如果您想在2021年做機器學習和數據科學,答案是使用Python,因為它是具有大多數庫支持的語言。至少我們可以感恩谷歌沒有選擇。
原文鏈接:https://medium.com/nerd-for-tech/python-is-a-bad-programming-language-2ab73b0bda5