立即注册找回密码

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

手机动态码快速登录

手机号快速注册登录

搜索

图文播报

查看: 207|回复: 5

[分享] 为什么那么多人说Python是垃圾?

[复制链接]
发表于 2024-12-20 15:58 | 显示全部楼层 |阅读模式
回复

使用道具 举报

发表于 2024-12-20 15:59 | 显示全部楼层
看用来做什么。个人觉得。。。。
调包脚本:★★★★★
如果干一个活儿有现成的Python包,你只要调包,调调参数,把多个包联机来,几十行就完事,那Python就是除了PHP以外最好的语言。
一次性的脚本:★★★★★
完美的工具,写起来极快,学过Python以后我连文件批处理都爱用Python而不是bash来写了。写起来轻松灵活。
比较复杂的多次使用的脚本:★★★★
写起来虽然快,但缺点是写久了以后会忘了写了啥,Python过于灵活的特性导致再看代码的时候会忘了这个变量到底是啥东西,要调试打断点才能想起来。
算法阐述:★★★★★
简短方便废话少,理想情况下简介程度基本快接近伪代码了
爬虫:★★★★
以前的爬虫首选,不过现在我更喜欢用JS,因为JS还能写在浏览器插件里。
少量API微服务:★★★★
还行,其实没有nodejs方便,后者啥都不要直接就可以运行微服务了,Python写的还要flask还要wsgi啥的,部署略麻烦
网站:★★★
以前觉得Python些网站用起来没有ror方便,后来有webpack以后前后端都拿js写更少混乱。Python算是较靠后的选择。
Windows app:★★
用过一阵子pyqt,觉得还不如直接用qt。如果是写Windows app的话我宁可用C#,vs作为宇宙第一IDE写这个比pyqt方便多了。我是觉得Python真不适合干这个。
多人合作项目:★
感觉大型项目用这个就是找死,除非你把注释写得比代码还长,防御用的检查代码比有用的工作代码还多,否则鬼知道里面那些只有一个名字的对象是啥。传给你写的函数一个list,里面所有对象都有某方法,唯独有一个例外,那个例外还不知道是哪个鬼append进去的。各种地方都往list里append,光看代码都没问题(因为别人写的代码也不知道类型),debug了好多天最后才发现是一个库函数有bug,一百万次调用有那么一次返回的数据类型不同。但append的时候不会出错也不会报错,只有用到那个不存在的成员方法了,它才报错,这个时候离产生bug的地方隔了十万八千里,找得到才有鬼 。而如果真的把注释写得比代码还长,防御用的检查代码比有用的工作代码还多,那就完全没有所谓的Python简洁美了,还不如一开始就写Java。
回复 支持 反对

使用道具 举报

发表于 2024-12-20 16:00 | 显示全部楼层
Python极大地降低了学习编程的难度。普通人可以很方便地用Python解决许多问题。很多负面评价,因为用得人太多了…

**一个普通人,不会linux,更不想盗版,也不想用虚拟机,做一些计算,并绘图展示计算结果。Python几乎是唯一能用的选择。
回复 支持 反对

使用道具 举报

发表于 2024-12-20 16:00 | 显示全部楼层
因为这帮程序员都觉得自己命太长了,嫌弃这个语言太好写了。
因为这帮程序员都自视甚高,嫌弃Python门槛太低了。
因为这帮程序员用Python写不出效率高的代码,代码屎山赖语言。
我一个写C的嵌软都喜欢Python,尤其是Python的轮子,这个名字就很好,极大的解决了IT界重复造轮子的问题。
Python是效率低,但那实际是是没有理解Python的编码思想。多用库和系统函数,少自己堆屎山。对于诸如排序,求和,数学计算等问题,都是尽可能用系统和库函数解决,再加上有cython加持,自然就快了。
回复 支持 反对

使用道具 举报

发表于 2024-12-20 16:00 | 显示全部楼层
现实中的coding:
系统设计-> 程序编写 -> unit test 编写 -> 性能优化 - > regression 搭建 ->QA test-> corner case 处理 子模块重构-> 产品发布&部署 版本控制
暗黑线:
和老板,客户明确需求-> 和隔壁组抢scope -> 在设计文档里刷存在感 -> 把dirty work扔给实习生 -> 把控老板对进度的预期 -> 把进度问题和bug甩锅给别人 -> 游说领导把系统的scope扩大 - >在季度perf rating中夸大系统的影响力
语言选择对整个项目的影响早就被其他更重要/恶心/复杂 的事淹没了
网络中的coding:
{二次元/武侠小说头像} 用XX语言写代码 -> 天呐XX语言太难用了,影响我发挥自己的《实力》 我只要换成XXX语言,我的程序就无敌辣
回复 支持 反对

使用道具 举报

发表于 2024-12-20 16:01 | 显示全部楼层
Python真正吸引人的地方是大量的库,而库本身并不是绑定Python的,对于通用的动态库,几乎任何一门现代语言都能轻松地写一个Wrapper。但是必须要有一名“污妖王”去承担快速托载这些动态库的任务,python后来就承担了这个职责。
但是他,语法优雅度不如C#、简单易上手度不如PHP、运行效率深度优化不如C/C++、小巧易嵌入度不如Lua、风格统一度易于牛马员工的能力不如Java、通用度不如bash shell。。。
作为一门语言,抛开第三方库,python真的算是一无是处了。真正支撑python走到今天的是他的社区生态,打个比方如果有人在python流行之前就为Matlab暴露调用方便的接口函数,那么我想后面可能也不会有python什么事了。一些高质量的库的出现与人工智能潮流刚好重合,所谓时势造英雄。
当未来,如果构造一个感知机就和调用array.sort()一样,根本不需要牛马级程序员深入理解什么是快排算法时,人工智能转化为一个需要构造庞大的软件让多人协作以一定的设计模式构造高健壮性高运行效率的工程场景时,Python基本就会自动消亡了。而伴随新时代新概念的兴起,又会有一门语言作为新污妖王的角色去承载一大堆库,可能届时还是python或者其他语言。
Python满身是毛病,无论是比六边形战士还是比单一领域,python都没有注定超越其他语言的优点。但是至少他没有非常差,所以赶上历史潮流就像马云赶上中国急需本土电商一样,不论谁来国家都会亏本扶持,只要素质别太差你上你也行,并没有必然性。又如Html5淘汰Flash和银光一样,不是他太强,而是后者的短板太短,只要马马虎虎就算你没有长板你也能活下来,面对呼声这不h5也开始支持操作本地文件了,只是更加谨慎的对待安全性;可Flash难道就不能从激进往谨慎改吗?当然可以,但可惜的是他没能活到那一天,大部分用户不是开发者,他们并不理解程序的工作原理,他们只对自己银行密码被窃取的安全漏洞感兴趣。
作为一名凡人,我们对世界能做的改变太少了,因此我们没得选。为什么web前端只有js一门语言呢?js优美、小巧?都是马后炮!根本原因就是必然要有一个污妖王,在那个时代浏览器规范大战碰巧赢了罢了,时至今日你要标新立异写个支持其他语言的浏览器,即便你满身优点,没有激烈的商业或社区炒作,你将必死无疑。C/C++凭什么统治底层?因为我没得选啊,rust刚刚兴起,D语言你们又嫌弃。
明知道有更好的工具或是多个工具合理组合会更好,但作为凡人我们能做什么?我难道不会用GCC编译pytorch C++ distribution?难道我会嫌Nuget引用TorchSharp太麻烦?只是当我面对每天要读那么多论文,毕业的倒计时在掐我脖子的时候,我真的没得选啊。。。当我越陷越深的时候,除了自我麻醉说自己正在用一门前爽未有的语言外,我又怎么会承认他的诸多缺点呢?
综上所述,在21世纪,任何面向大众能成功的东西都必然是中庸哲学的产物,任何具有突出优点的东西,其命运必然是成为小众玩物,因为大部分人的智慧是不足以驾驭它们的。Python充满缺点,但目前都不致命,所以他碰巧被历史选中了。而当一众连编译器和解释器都不认识的人从python这个黑盒子中尝到甜头并形成潮流后,你我有不同意见的人就已经失去了选择权。而当我们自己不由的入局并同样尝到甜头后,剩下的缺点都无足轻重了,我们总不能抽自己一巴掌说我在用垃圾一般的工具赚钱/写论文吧?
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录 手机动态码快速登录

本版积分规则

关闭

官方推荐 上一条 /3 下一条

快速回复 返回列表 客服中心 搜索 官方QQ群 洽谈合作
快速回复返回顶部 返回列表