鱼C论坛

 找回密码
 立即注册
查看: 5588|回复: 57

[技术交流] 你认为python是一门怎样的语言?

[复制链接]
发表于 2013-8-20 13:39:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 怡静 于 2013-8-30 21:24 编辑

python是一门渣语言
一直以来我都表达 python 是个糟糕语言的观点,但是没有深入的解释。

计算机一直都是“工具”,意味着我们是拿它干活的,也就是所谓的提高生产力。

指挥计算机干活的重要工具就是编程语言。计算机并不是训练来干活的,是编程来干活的。编程语言的效率有2个指标:编写干活指南的效率和机器人执行的效率。

在人力成本低于硬件的时候,人追捧的是执行效率。

人力成本越来越高的时候,人开始追求编程的效率。

人自然是希望一个语言能两头兼顾。可惜的是 python非但没有带来执行效率(这是python不追求的,所以姑且不算缺点),连它拼命牺牲执行效率希望换来的开发效率事实上也一点没有。

执行效率:首先,执行效率和语言本身高级不高级是没有任何关系的。执行效率的高低只关系到冗余操作的多寡。这也是“优化”的基础,去除冗余操作。

冗余操作的多寡通常有3个因素影响到:1 编译器的效率 2 程序员的水平 3 语言本身的累赘

但是衡量一个语言本身效率的,事实上应该是最后一个 "语言本身的累赘",这个才是编译器永远无法改进的,程序员水平再高也无能为力的。

不幸的是,python是一个本身的累赘非常多的语言。而累赘最少的语言,应该算是C++语言了。所有C++用到的功能,没有一个是可以在别的语言用更低的代价实现的。当然,有的语言压根就没有C++提供的功能,必须自己模拟。模拟的代价和C++提供的是一样的,水平不够的人来模拟只能获得更烂的结果。

当然 ,python是个高级语言,语法糖多点,性能烂就接受一下吧!毕竟开发效率高呢(?)

接下来我们说编程的效率。编程效率主要是受5个因素影响:语法是否自然,语义是否凝炼,文档或者或教程多不多,库是不是丰富,开发环境好不好。不用说python的文档还是很多的,但是显然没有c++多。各种粗制滥造的c++教程铺天盖地,算了,这是c++的坏处。误人子弟的教程太多。库当然是C++最丰富了。python还面临着 python3 和 python2 的分裂。

开发环境和库一直是C++的优势。不用说 Visual C++这种重量级公司出的IDE ,还有 kdevelop , eclipse CDT 这些免费开源的IDE。自动完成和代码提示让你写代码的时候非常轻松。相比之下 , python 就没有好的IDE了。

当然,接下来是程序员最关心的,语法是否自然,语义是否凝炼。python 的语义自然是很多的,一条语句能相当于写几千行 C 代码。这也是人常说的,语法糖多。可惜的是,C++一样有高级语法糖,而且代价很低!比python低太多了。在这一点上,python没有优势,只有劣质。python的语法糖是以牺牲性能换来的,而C++在不损失性能的同时提供了语法糖。

至于语法自然不,仁者见仁智者见智了。对于大多数C学过来的人来说, 自然是C++的语法简单。当然,前提是不使用模板这种高级货。真的用模板的话,模板是属于用起来简单,写起来难的语法糖。我们自然可以选择把困难留给 boost,快乐留给自己。所以这点上 C++没有输。何况python还不支持模板。

那么开发效率到底是 C++高还是 python呢?

差不多!

那执行效率呢?

C++和python不是一个档次的,没法比。

好了,单从这点已经 python 完败。不过我想说的还不是这个。

如果真的有语言像python那样慢,我觉得对得起它的性能的,就必须拿出像样的功能,这个功能包括

语言级的并行能力,语言级的多进程能力 (等等,这不就是shell么!),语言级的SIMD能力(语言级的矩阵运算支持)

语言级的复杂数学公式计算能力 ,内置的标准各种算法(STL笑而不语,不过我要的还不止STL),描述性语义(而非指令性语义)

我要求的这些,是高级语言需要具备的,而 python 统统没有,连 shell 都能占上一些!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-20 14:06:48 | 显示全部楼层
楼主 啊 你不想学 可以不学啊 干嘛这样呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:15:58 | 显示全部楼层
存在既是道理  语言无优劣  
美国人还说牛肉营养高 人家当主食  不吃米饭
有本事你也天天吃牛肉不吃米饭
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:19:16 | 显示全部楼层
呵呵,一看就是网上复制的。

点评

赞同,一看就是复制的。C++那些功能不知道几个楼主能弄明白的,还模版、STL库、boost库。  发表于 2013-8-31 09:03
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:25:09 | 显示全部楼层
c++和python开发效率差不多?
这笑话太棒了,谢谢让我变得如此开心!



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:30:14 | 显示全部楼层
:shock:
你会吗?什么叫你要求的?
来来来,是骡子是马溜溜才知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:36:27 | 显示全部楼层
楼主用于说出自己的观点,不错,大家一起来讨论一下吧,俺属于菜鸟,啥也不懂,
说一下自己个愚见,楼主说的IDE,确实,PYTHON,没有听说有VC++那样的IDE,这方面最爽的语言应该是C#
代码自动提示,类库封装的几乎不用写代码,(开发效率这方面PYTHON也比不上C#吧?)
3楼说的也有道理,"存在就是合理的",每个语言都有自己擅长的领域,就像没有包治百病的良药,C++再强大,C#再简单,也不是在所有的领域都是最好的.python肯定也有自己擅长的领域,至于python擅长那个领域,(跨平台?)俺不懂,请大神指点!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 14:45:58 | 显示全部楼层
这个只有请高手  小甲鱼出来  反驳了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 15:35:41 | 显示全部楼层
这个东西吧,python我没用过也没学过,但是我看过别人用python。简短的几行便实现了C将近百行的东西。
当然那不是开发一个大型软件,只是实现我们需要的某种功能的小程序(如给有漏洞的软件发个包)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 19:40:28 | 显示全部楼层
楼主是想说明,谷歌是白痴?还是来骗回复的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 19:53:55 | 显示全部楼层
火钳刘明。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 19:57:26 | 显示全部楼层
路过,表示什么都不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 20:02:30 | 显示全部楼层
楼主是来踢馆的 OR 骗回复的。是可以有自己的观点没错,但楼主是否说得太过绝对和偏激。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 17:34:23 | 显示全部楼层
对于高手,什么语言都是好语言。对于笨蛋,再好的语言,也不会用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 21:24:06 | 显示全部楼层

精点,什么语言能开发出来,一定有它的特点,什么语言都有优点都有不足,想学那个语言是你的事,你只能说你学不会,不能说什么语言不行,谢谢楼主的良苦用心,到这里来表明你很精通C++语言。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 22:37:40 | 显示全部楼层
楼主 , 你不想学 可以不学啊 干嘛这样呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 22:41:07 | 显示全部楼层
仁者见仁,智者见智,呵呵而过——不要迷恋哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 23:03:40 | 显示全部楼层
大哥们 PYTHON的含义是胶水语言啊。。。何必当成开发语言啊! PYTHON学好了 吃饭是不成问题的啊!C++之父都说过 程序员要了解的5们语言里面有PYTHON 很重要的!只能说是工具!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-30 23:31:46 | 显示全部楼层
外国人很多用python~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-31 08:25:12 | 显示全部楼层
Seandor 发表于 2013-8-20 19:40
楼主是想说明,谷歌是白痴?还是来骗回复的?

我不否认Google里面有python之父这样的大牛~  python确实不适合做大型项目....个人写写小项目还是可以的....最主要的原因是python没有软件工程的架构~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表