打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在大型项目上,Python 是个烂语言吗? |

【洪强宁的回答(89票)】:

太多硬伤和臆想,懒得批。只说“代码超过 10w 以后你就别想用 python 开发了”这一句,2012年4月豆瓣主站项目代码行数就近50万行了,可我们还在用 python 开发。

【刘鑫的回答(42票)】:

我写过几年Python,也写过几年CPP,写过几年CS,Python做大项目没什么问题,不会比其它主流语言更差,项目的可控规模多大,主要还是取决于人,不是语言——语言当然有差别,但是没有宣传的那么大。至于开发工具的问题,高水平的开发人员根本不会依赖开发工具。而且,Python本身不是那种非常依赖代码补全等功能的技术,我习惯的组合是emacs+ipython+python-mode,用doctesting做TDD,效率很高。最近一段用sublime text比较多,也没觉得离开习惯的环境就做不下去。

至于错误在运行时,这就看自动化测试的水平了。Python项目出现的bug不会比CPP或Java更高。

如果用不好,什么都是烂语言。这是个相当廉价的态度。

==========

看了一下链接里的文章,觉得挺可乐,那位老兄根本不知道Python比Java还要早一年发布吧……(准确的说,1994年是python发布了1.0版,而第一次publish代码是在1991年的0.9.0版)

【猛禽的回答(3票)】:

虽然在TL组的另一个帖里回复过这位microcai,既然在这里看到就再说一下吧。

在那个帖里,他说道:

我给出了详细的 python 为啥很烂的解释

https://avlog.avplayer.org/3597082/python%E6%98%AF%E4%B8%AA%E7%83%82%E8%AF%AD%E8%A8%80.html

我可不是那种简单的给打个标签 缺乏根据在那里胡扯 的那种人.

谁要是不同意可以逐条反驳.

但是说实话,他这段恰恰就是“缺乏根据在那里胡扯”,而且是从开始提到python就扯——比如解释器比编译器(他还给说成了汇编)简单,除了C++那种变态级别的编译器,python的解释器不比其它编译器简单多少。另外,python也需要编译为pyc,除非说.net/java也是解释语言,何况就算是编译成目标代码,也有cython这种间接方式,或是pypy这种动态方式。

当然我不会真的逐条反驳这么浪费时间的,上面这条就足够说明他的问题了。

回到楼主的问题上:python是否不适合大型项目?

成功的例子参见 @洪强宁 等人的答案。

事实上项目管理的根本问题是对人的管理。java之所以适合做大项目,很大原因在于比较容易找到一帮水平差不多的人,并且管理起来也比较容易。python的优点是易学,虽然找一大帮人不容易,但培养起来比较快,规划得当问题也不太大。但是C++就不同了,找一帮会C++的人不难,但是水平参差不齐,如顶楼匿名人士所说“你修不盈新手挖的坑,扶不正老人搭的庙”,就算是找到一帮C++高手,还各有各的习惯和爱好。至少python还有pythonic这条阳关道。

【梁涛的回答(7票)】:

把另一个回答转一部分过来:你如何看待王垠的《什么是“脚本语言”》?

根据这些年用过的编程语言,我总结出一条判断语言是否值得学习、使用的指导原则:

易用、灵活、高效,一门编程语言最多只能同时拥有两项。

易用 包括:

1. 简洁,易读、易理解、易写;

2. 一致性好,易协作,易接手维护;

3. 基本构造紧凑;

4. 尽可能自包含,拥有丰富的类库和软件包支持;

5. 可移植,对执行环境的假定越少越好;

6. 从编写到执行,整个过程涉及的工具越少越好,程序易部署;

7. 手册可随手取用。

灵活 包括:

1. 伸缩性好,删除依赖性与加入依赖性一样简单;

2. 允许在不同层次上抽象(含DSL);

3. 支持多种编程范式;

4. 尽可能适用于更多的领域;

5. 可定制语言子集(方言);

6. 可编译执行,也可解释执行。

高效 包括:

1. 编写快,越快越好(考虑工具支持与纯手写);

2. 编译快,越快越好;

3. 除错快,越快越好;

4. 执行快,越快越好。

还有一些特性没有罗列出来。

仔细考虑一下,上述各特性不乏相互对立的,如何取得平衡,完全视应用环境而定。

这些特性考量将与设计哲学相互影响,最终决定一门编程语言的编写风格与使用方式。

但终究,一门编程语言被设计出来的主要目的,是在成本最小化的基础上,尽可能好地解决某些问题。

另外,不从架构角度考虑开发与运维、用户操作的关系,做出来的东西必然到外都是坑,且很难持续。

不要随便看不起一门编程语言,它被发明出来必然有其用处。

在恰当的时机用适当的语言解决正确的问题比什么都重要。

【徐辰的回答(17票)】:

NASA用FORTRAN把人送上了月球;K&R用汇编和B语言写出了UNIX……

有争论哪种语言好的功夫还不如去改改程序里的Bug,优化下执行效率,要不就美化下代码多写两行注释,省得总有人说你正在用的语言是个烂语言……

【李遥的回答(1票)】:

我用Python做过商业项目,在同时支持python2和python3以及各种小版本号的时候觉得被坑了。不是完全没有walkaround,但是回顾时觉得选择Python很不明智

【王亞暉的回答(5票)】:

没有烂语言,只有烂人写的语言罢了。

【池静若的回答(5票)】:

写大项目主要是逻辑的管理,和人的管理能力,与语言没关,有些语言强制加了管理能力,就省了很多管理的规划。举个浅显的例子。

汇编语言是最没管理能力的,甚至变量就是内存和寄存器

C语言有点管理能力,至少分了全局,局部,函数,函数体内变量隔离

汇编就不说了,C语言对于没经验的几个人来说很难写大型程序,

但是简单的规划一下就可以写了

例如,每个变量都前缀个人的名字,int tom_var; char jerry_var;float xx_var;

然后如果需要共用的,就写 int public_var;

函数同样处理,这是个非常好的技巧。。。。。。。

但是这种技巧一直被别有用心的公司讽刺

于是出现了C++;c++ 其实把名字换成了命名空间,然后把一些函数加了class头,然后引入了面向对象的东西。但是class里面加了太多的歧义和难于理解。

于是又出现了,java ,强制用包,类

java算是编译语言走到的极点,算软件工程的产物,加了太多管理和约束的东西

导致写代码又罗嗦,又麻烦。适合大工程,但是效率很低(开发效率)

python出现了,更接近人的语言,高度的逻辑化,用python 基本上比java的逻辑减少了3倍。

大项目本质上是大逻辑的管理,python从理论上说能写比java大3倍的项目

一个语言只要具备了,函数,类,模块,包就是一个具有良好管理能力的语言。

如果你觉得什么语言写不了大程序,仔细思考一下你的逻辑管理能力

或许 c是个好的锻炼方式,如果没有类,每个文件变量会冲突,你该如何解决呢!

分割线----------------------------------------分割线

吐槽。。。。加班中。。。写代码。。。。。随便看到,忍不住吐槽。。。。。,继续写。。。

【Pyclass的回答(1票)】:

哪一种语言没有缺点呢?在适用的领域,用好Python,那Python就是最好的语言,在不适用的领域,即使写再好的程序,也无法完成任务。 烂的不是语言,而是不懂的人把它用烂了、、、

【长风的回答(0票)】:

可以看看OpenStack有多少行代码,或者Django多少行代码

【陈思源的回答(0票)】:

语言只是个工具,python作为动态语言,有快速开发的优势,遇到大项目时,架构是项目成败的关键,至于bug量,完全的团队的水平相关,与语言无关

【alexzhan的回答(0票)】:

Dropbox算不算大型项目?但是基本上所有的客户端都是Python写的。

有很多网站也是用Python开发的,比如豆瓣还有豆瓣的很多客户端都是用纯Python,Quora也是用的Python,不过最近可能转到Scala上了。

【夜末的回答(0票)】:

因人而异

【杨浪的回答(0票)】:

用python的好处就是这位兄弟还在跟你讲python怎么不好的时候 你的1k行的代码都快写完了..

语言之争从来都是毫无意义,好的设计架构才是最重要的

【冯子浩的回答(0票)】:

为什么python没有好的ide……因为不大需要……

为什么python没有强大的debugger……因为不大容易写出有明显bug的程序……

纵使Java死搞类型,该出bug的照样出……

【zhoutall的回答(7票)】:

我记得一句话,写出来的代码目的是给别人看的,顺便可以在机器上执行。

好的代码是可读性强的,好的语言便是为了方便写出可读性强的代码。

我觉得Python很不错

原文地址:知乎

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
学编程选择Java还是python?哪个适合0基础?
编程要怎么样才能学好?
C语言学到什么程度可以做项目
Python语言在数据挖掘上非常有优势,但它唯一的缺点你知道吗?
为什么学了那么多门语言,我还是编不好这段代码
哪门编程语言值得纯小白选择学习?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服