我再说一遍:Python是一种糟糕的编程语言,它今天如此流行的唯一原因是谷歌在2000年代的前十年推动了它。Python的创造者GuidoVanRossum实际上于2005年至2012年在谷歌工作。Go和Dart不在(或者至少它们不知名)并且随着C#的流行(窃取Java的开发人员)谷歌可能觉得他们需要自己的语言。他们可能想拥抱Java,因为他们已经在Android上使用它,但他们一定是偏执狂,因为他们与Oracle有法律问题。因此,无论出于何种原因,他们都采用了Python。我想,在另一个宇宙中,他们可以选择,例如Lua,也许那个宇宙会成为今天的主导语言。当然,Lua有点奇怪,所以它可能最终不会选择那个。但是让我们谈谈为什么Python很烂。很难说为什么有些东西很糟糕,尤其是当它流行的时候,但这篇文章将是一次尝试。我将介绍语言本身,而不是它的性能或实现。我主要将它与Java和C#进行比较,因为这两种众所周知的成熟语言在软件行业中实际使用了15年以上。长期以来,Python是一种支离破碎的语言,有两个主要版本在野外运行。当然,它们是Python2和3,彼此不兼容。所以你被描绘成一种奇怪的情况,谷歌会说“来吧伙计们,学习一些Python,它很酷!”然后你会下载它,你会在版本2和版本3之间选择,也许谷歌会告诉你“选择3!”别人会告诉你“选2!”然后,你会发现3几乎没有任何兼容的库,没有人使用它,而开发3的原因是为了打印功能和emoji支持添加括号。只是最近发生了很多。例如,Ubuntu最近淘汰了Python2。丑陋的OOPython中的一个类如下所示:classCar:def__init__(self):self.color="red"self.wheels=4defget_wheels(self):returnf"{self.wheels}!”我希望你喜欢那些self关键字,因为你会在Python中随处看到它们。这就是您引用类的实例变量的方式。就像Java或C#中的this关键字,只有在Python中,他们才需要它,因为Python很笨。注意这个类有2个实例变量:颜色和车轮?请参阅它们如何在构造函数中声明和初始化?Python愚蠢的另一个例子。您可能想知道“如何使它们成为私有实例变量?”好吧,答案是你不知道。你不能。Python本身没有私有实例变量。在Python中你能做的最好的事情就是用两个下划线开始它们,像这样:如果需要,您仍然可以从类外部访问变量)。所以它并没有成为一个私有变量,而是变得令人讨厌。当然,它有效,但它来了。想在C#或Java中定义私有实例变量?在关键字private前面。如果你就此询问Python开发人员,他们会回答:“不要访问另一个类的实例变量,哈哈”。通常,当您指出他们语言中的任何缺陷时,Python开发人员会表现出敌意和居高临下的态度。空间,空间。Python垃圾的另一个原因。在一种明智的语言中,块由括号、开始和结束关键字或类似的东西完成。但不是在Python中!Python认为给空格赋予语义意义是件好事。他们到底为什么要赋予语义,一些看不见的东西?谁认为这是个好主意?Reddit的联合创始人史蒂夫霍夫曼说:当我们雇用新人时......我认为我们没有雇用一个懂Python的员工。我只是说,“你写的一切都需要用Python来写。”所以我可以读它。这太棒了,因为我可以从房间的另一头看到他们的屏幕,看看他们的代码是好是坏。所以即使我想相信这个人能够在整个房间进行代码审查,使用空格怎么可能比花括号更好?在几乎所有其他现代语言中,在编写方法时使用缩进是规范。只有在Python中,制表符和空格的区分才会让解释器心脏病发作。动态类型很糟糕,任何不同意我的人可能还没有编写足够的软件来实现它。使用动态类型,程序越大,它就越明显。我预测未来所有主要的编程语言都是静态类型的,使用动态类型的语言就像使用弓箭一样。您将能够在YouTube频道RawTech上观看人们使用动态类型语言进行编程。最近像类型签名这样的语言给了我希望。一些Python程序员已经意识到动态类型是不好的,所以现在我们有了Mypy,但是如果你要给Python添加类型注释,为什么你不只是像Java或C#这样的语言呢?常量Python没有常量。我的意思是,如果您在文章中提出了这一点,您会期待什么?使变量成为常量的问题,Python开发人员的建议是“不要改变它”。TheEmperorHasNoClothesPython是一个案例研究,研究人们如何尝试与某物共存,适应它,并合理化他们对它的爱,而不是扔掉它并寻找更好的东西。所以也许这是爱、希望或其他什么的信息?不知何故,这个1991年的副本比几种较新的语言更经久不衰,现在对此采取任何措施可能都为时已晚。2014年成为全校最受欢迎的入门教材。因此,我们将开始看到更多的孩子以Python作为他们的主要语言进入这个行业,并且Python只会随着越来越多的软件被编写而发展。在撰写本文时,它目前在Tiobe指数中排名第二,该指数将Python指定为“2020年的编程语言”。如果你想在2021年从事机器学习和数据科学,答案是使用Python,因为它是图书馆支持最多的语言。至少我们可以庆幸Google别无选择。原文链接:https://medium.com/nerd-for-tech/python-is-a-bad-programming-language-2ab73b0bda5
