python是否被高估了?

“Python是AI专用语言”、“全民学Python”种种,说明的不是Python被高估了,而是Python被曲解了。

Python是通用编程语言,只是在AI、大数据等方面(还是技术栈上层;底层还是靠C/C++)应用得比较多。专用语言出了专用的领域就不能用了。python零基础学习

固然,Python有它的相对简单性(相对简单性指的是语言和各种库都给好了再去写的时候比较简单)。首先是它的语法简洁,语法糖多,模板少,比如文件读取。然后是一些特性支持比较好,比如int理论上可以任意大,又如读JSON不用模板。

然后就是Python真正复杂到可怕的一些特性了,这里仅举几例。

首先,动态类型。这就允许a是个int型的然后a=str(a),就要小心变量的类型在转换前后发生变化。Python还允许函数参数类型不事先确定,只要用到的时候类型不出错就可以了,比如只用到加减乘除,如果没有显式的类型检查,就适用于整数、浮点数、复数、分数,甚至素数域或扩域里的数了。如果要用某个第三方库的函数,还要看这个函数各个参数是什么含义、支持什么类型、推荐用什么类型;不给或给不全就只能要么分析库源码要么尝试了。

其次,作用域。一个函数里面(只要不是里面再套一层函数),if、try、while、for的局部变量甚至可以在跳出之后使用,编程时极易不小心引用到名称十分相近的变量(而IDE可能不会报错)。

再次,异构类型集合(collection)和匿名类型(注意不是匿名类)。集合(collection)在Python里面包括元组(tuple)、列表(list)、集合(set)、字典(dict)等,所述四种collection中除set的元素和dict的键必须是可hash的这个要求以外,对存放元素的类型并无要求,甚至可以混合存放。可以想象,编程者对collection中哪个位置存放什么类型的元素必须十分清楚。至于匿名类型,大概是JSON里怎么表示对象的,Python里就怎么写,不用class,却也要清楚哪个键对应什么类型的值;甚至直接用元组,不仅要清楚哪个位置存放什么类型的元素,还要清楚哪个位置存放的元素是什么含义。

最后,抛出异常的位置和程序出错的位置或许相隔较远。可能只是一个TypeError或ValueError或AttributeError,程序出错的位置离抛出异常并中止的位置可能隔了几个函数,而且成因或许很复杂,比如不同的类型执行“相同的”函数,实际却差之千里。

所以,如果要用Python做一些正经的事,请一定先学静态程序分析,而其中的类型分析在这里尤为重要。

python相对来说比较容易,但其实我觉得python的坑还是比较多的,单从语言本身讲,我觉得不如java来的稳定和健壮(指开发方面不是运行方面)。同时python的运行性能比java差很多特别是线程方面。所以如果用python的web服务,都需要支持协程(coroutine)比如tornado。需要并发的时候,就需要使用多进程的方案了。

python还有二进制文件的反编译问题,这个java也有。

python还有版本兼容问题,比如2和3,这个java好点。

但是我仍然坚持我的一贯观点,尽可能用python脚本代替shell脚本吧。很多场景可能python无法替代shell,但是更多的场景,python是远胜shell的。很多人批评go语言是70style,那么shell脚本我觉得就是60style了,有浓郁的历史气息,各种节俭,省略的作风。类似的还有makefile,GNU autoconf的m4脚本……。反正我每次读这些都有一种读易经的感觉,嗯,就是坑龙有悔的感觉。

所以总的来说Java是否被高估了?我觉得并没有,因为在好多应用上python并没有被高估,反而还降低了好多人对他的期待值,如果,你要是问我python到底值不值学习,我认为是非常值得学习的



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python作为一门编程语言,确实在近年来受到了广泛的关注和使用。它具有简洁易读的语法,丰富的库和框架支持以及广泛的社区支持,使得编写Python代码变得高效且快速。然而,是否被严重高估这个问题需要从多个角度来看待。 从技术层面来看,Python并不是解决所有问题的最佳选择。与其他编程语言相比,Python的执行速度较慢,特别是在处理大规模数据和高性能计算方面。因此,在对速度要求较高的领域,如游戏开发、金融分析等,Python可能不适用。 此外,Python高估也与其在人工智能和数据科学领域的广泛应用有关。因为Python有许多强大的机器学习和数据处理库,例如TensorFlow、Pandas和NumPy等,这使得Python成为了人工智能和数据科学领域的首选语言。然而,这也导致了一种过度使用Python的现象,有些人可能过于依赖它,而忽视了其他更适合的工具和语言。 此外,Python在某些领域可能被高估的另一个原因是其相对简单的语法使得它成为了很多初学者的首选语言。然而,要成为一名优秀的程序员,除了掌握Python之外,还需要了解其他编程语言和技术。过分关注Python可能导致一种技术上的狭隘性。 总体来说,尽管Python有很多优点,但它并不是解决所有问题的最佳选择。因此,我们应该避免过分高估Python的能力,而是在不同的场景下选择最适合的工具和语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值