说python好的文章大多在吹牛

3 篇文章 0 订阅

python这门语言,91年就出来了,有二十年的历史了,可以说和Linux一样久。当今流行的语言如Java、C#、PHP这些都是它的后辈。可能大家对一门语言用久了,会产生厌烦感,就想着有没有新的好的语言,来更快更好的解决问题。网上一大批吹棒python文章就迎合了这种需求,很自然的我就学了一会python以及相关的几个框架django和web.py,SQLAlchemy这些。几个回合一下,再结合一些自己的思考,发现大部份文章是在吹牛逼。要么是言过其实,要么是浅尝python后就匆忙得出观点。

一、强制缩进

强制缩进是一个中性的东西,并不是什么优点,没有强制缩进也不是什么缺点。不管语言本身有没有限制强制缩进,但是所有语言都推荐这种写法,大学最初级的C语言教程也花很大篇幅强调缩进的重要,基本上这是一个人所共知的常识。在我看来稍有点水平的人,无论用的什么语言,写出来的代码一定是按规则缩进的。随意缩进说明写代码的人不能很好的驾驭这门语言,从不好的缩进变为整齐的缩进,也说明是水平提高的过程。

花括号很清晰很实用,有头有尾,既有花括号,又有缩进,代码可阅读性比只有缩进要好。

二、简洁优雅

python一开始喜欢谈哲学,认为“用一种方法,最好是只有一种方法来做一件事”,这个观点是不错的,但是没有什么指导意义,举个反例,即使一个人只有一种方法来解决这个问题,但是不同水平的人所掌握的方法不一样,所以只有一种方法只能局限于当前时期当前阶段。为什么会有python3,为什么python3不兼容python2,这就说明确实不只有一种方法来做一件事。另一个反例就是,追求只有一种方法来做事的python的WEB框架很多,而追求做一件事有多种方法的ruby却只有一个ror。这也是值得思考的地方。

从这个思想引导下来再配合强制缩进,很多人就说python语言是简洁优雅的。

简洁优雅是一个感性的概念,没有什么标准,我们就来探讨一下。说一门语言简洁优雅,最主要是说语法,而语法的基本构成就是关键字,C语言有32个关键字,Python有28个,数量是少一些,但是多几个少几个和简洁优雅没什么关系。况且我认为if后面要加个冒号,这个绝对不是简洁优雅。

三、开发速度比其它语言快10倍

我有理由相信能说出这个话的人对软件开发是一知半解。从两个方法来说明问题,一是解决问题的思路和方法,二是录入的速度。

现在流行的语言大多是类C语言,解题的方法无非是面向过程和面向对象,也即解决问题的思路和方法大家都是一致的,在软件开发过程中,分析业务逻辑,形成思路是最占时间的,而录入代码所占的时间比重不大,谁打字快一点慢一点,代码量大一点小一点,不是影响开发速度的关键因素。

就从代码量来看,有人说python的代码量只有java和c++的三分之一到五分之一,我不知道这是怎么统计出来的。解题思路大家都差不多,关键字也差不多,况且,库的丰富程度,python绝对比不上java和C++,而这个对开发速度和代码量的影响很大,所以说要少三分之一和快10倍这个话,绝对是在吹牛逼。

四、易于跨平台移植

做为一个脚本语言,拿易于移植出来说事,而且还是属于在这方法做得差的。哪个流行的脚本语言不易于移植?

有人问,我不想让别人知道我的源代码,只发布pyc可以吗?答案是可以,但是你还应该知道的是,pyc是与python版本有关的,这个版本生成的用另一个版本运行不了。更别说python2到3引出的很多麻烦问题。

这点移植性比Java差远了。

五、稳定、软件质量高

说python有二十年的沉淀,并且一开始就注重可读性、一致性和软件质量这些,说的比唱的还好听,但是实际上我们看到什么优秀产品没有?ibus算是吧,但还是被人骂得狗血喷头。而Java的eclipse,PHP的discuz这些都是非常优秀的项目。

六、其它的优点

自动内存管理

做为一个解释型的脚本语言,真的不好说什么。

内置高级数据结构

即使不内置,也有现成的库支持,更不用说和JAVA和C#比了。

简单易学

简单易学要看和谁来比,以及要解决什么问题,基本上语言的规模决定了易学程度。比如要深入了解面象对象知识,可能就比python的语法之类的要花的时间久。


综合起来看,吹捧python的人在做这些事:和静态语言比动态性,和编译型语言比解释性,和面向过程语言比面向对象,和脚本语言比中间代码,和专注WEB的语言比桌面开发,和大众语言比小众情调。这样下来,python就被吹成无敌的了。但我们反过来想,python的定位是什么呢,是不是有点四不像呢?和脚来语言来比,过于复杂;和编译语言比,不够强大执行效率差。具体来讲,python在WEB方面远不如php,可移植性不如php、java,功能强大和第三方库比不过java、C#、C++。执行效率比不过php、java、C#、C++。可以说python没有优点,是一门非常中庸又四不像的语言,什么都能做一点但什么都做不好,称之为胶水应该是准确的,并且只能做胶水。


有些用django的人可能不服气了,会问django哪里比php差,这个要完整解释一言两语说不清,我的结论是:灵活、快速比不上php,严谨、功能完备比不上java。建议尝试去了解两个东西:php的speedphp框架,java的ssh框架和jfinal框架。

我看到最近有些企业想把python引入做企业级开发,我的建议是没有这个必要,python能做的用目前流行的技术也能做并且做得更好。

这门语言混二十年,不仅仅是知道的人太少。


评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值