我会再说一次: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
原文地址:https://www.toutiao.com/a6990555177262645798/