Python是一个糟糕的编程语言

开发 后端
我会再说一次:Python是一种糟糕的编程语言,今天它是如此受欢迎的唯一原因是因为谷歌在2000年代的第一个十年推动它。

我会再说一次:Python是一种糟糕的编程语言,今天它是如此受欢迎的唯一原因是因为谷歌在2000年代的第一个十年推动它。

Python的创造者Guido Van Rossum,实际上在谷歌2005年到2012年工作。Go和Dart并不围绕(或至少他们不众名人知)和C#中的人气(偷窃Java的开发人员)谷歌可能觉得他们需要自己的语言。他们可能会想要拥抱Java,因为他们已经使用它是Android的,但他们一定是偏执狂,因为他们已经与Oracle签订了法律问题。因此,无论出于何种原因,他们采用Python。我想在一个替代宇宙中,他们可以选择,例如,Lua,也许在那里宇宙会成为今天的主导语言。当然,Lua有点奇怪,所以它可能会毕竟没有选择那个。

[[414666]]

但是,让我们谈谈为什么Python糟透了。很难谈论为什么有些东西糟透了,特别是在它流行时,但这篇文章将是一种尝试。我将覆盖语言本身,而不是其表现或其实施。我将大多将其与Java和C#进行比较,因为这些是两个众所周知的,成熟的语言,在软件行业中有很多现实的使用量超过十五年。

碎片的语言

很长一段时间,Python有两个主要版本在野外跑去。当然,它们是Python 2和3,它们彼此不相容。所以你被涂上这种奇怪的情况,谷歌会说“来找伙计们,学习一些Python,这很酷!”然后你会下载它,你会选择版本2和3之间的选择,也许谷歌会告诉你“选择3!”其他人会告诉你“选择2!”然后,您会发现3只几乎没有任何兼容的库,没有人使用它,并且3为什么开发的原因是为打印函数和表情符号支持添加括号。最近只有情况得多。例如,Ubuntu最近逐步淘汰了Python 2。

丑陋的面向对象

Python中的一个类看起来像这样:

  1. class Car: 
  2.     def __init__(self): 
  3.         self.color = "red" 
  4.         self.wheels = 4 
  5.  
  6.     def get_wheels(self): 
  7.         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

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2012-07-16 09:41:59

项目

2012-07-16 11:27:08

项目开发

2021-11-26 22:14:55

PHP编程语言开发

2015-05-13 14:06:03

程序员糟糕的程序员

2012-08-23 14:23:33

函数式编程

2015-05-13 10:42:21

程序员代码

2017-09-12 11:02:51

Python编程语言

2020-02-05 15:23:00

语言编程文言文

2021-10-10 12:45:13

编程语言开发

2009-06-22 13:43:01

F#函数式编程

2011-04-19 11:22:30

自由职业者项目管理

2017-11-14 11:12:50

Go语言编译器

2015-06-10 10:43:07

2010-08-18 08:53:53

Scala

2016-01-05 13:52:05

Kotlin掌握语言

2016-10-18 14:54:01

编程习惯

2021-05-28 05:34:06

Golang语言编程

2014-07-15 11:10:01

面试题面试

2020-03-03 07:59:29

设计秒杀系统

2022-02-16 22:14:12

Java编程语言开发
点赞
收藏

51CTO技术栈公众号