时至今日, 还有多少程序员认为 Python 简单的

2024-01-05 10:53:41 +08:00
 iorilu

首先, 我标题强调了程序员三个字, 是有原因的

因为外面随便搜索下, 都是什么 python 简单, 1 小时上手等等文章, 视频数不胜数

但我加上程序员, 是因为这里用户大多是程序员, 或起码知道点代码的人

我希望评价的人多少用过 python , 至少写过几百行代码, 或跑过一些 python 项目等等, 总之就是至少有一定深度的实践

反正就我本人而已, 我几年前将 python 定位为主要使用语言

我的认知是, python 压根不简单, 甚至是难度相当不小, 原因为以下几点

总之, 所谓简单只是指 python 可能用的代码行数少点, 但是你想写出所谓 pythonic 的代码, 需要花费大量的时间学习, 这点肯定是不简单的.

21118 次点击
所在节点    程序员
124 条回复
SWALLOWW
2024-01-05 14:11:10 +08:00
别人怎么想跟你有啥关系
75S3CWXNN0VQ84mg
2024-01-05 14:14:23 +08:00
语言根本不重要,重要的是 1 个语言有多少轮子可以用。
wangkun025
2024-01-05 14:20:32 +08:00
汉语简单吗?你语文次次满分吗?
iorilu
2024-01-05 14:33:33 +08:00
我意思是这个简单, 必须加上限定词, 比如凑一个几十行的脚本, 或者所谓的入门(实际上, 我不知道什么叫入门, 我认为 python 想写好 300 行代码的程序都不容易, 肯定超过所谓的入门水平)

实际上很多大牛写的库, 核心也就可能几百行代码
di94sh
2024-01-05 14:33:33 +08:00
我觉得 python 的 easy 不应该翻译为“简单”,应该翻译为方便实用、容易上手之类的解释。
python is easy language.
Python 是一种方便使用的语言.

python 的方便体现在:
1. 它是解释执行的,想验证一个东西可以随手打开一个 ipython 可以编码了运行了。每输入一行指令,就能得到结果。
2. 初级使用无需关心繁杂的变量类型,随写随用
3. 高阶使用提供较为强力的语法糖,提升表达能力,降低编码复杂度,提高可读性
4. 应用广泛,类库丰富,各行各业都能使用 python 制作简单的业务原型,胶水届的头牌

这是之前的方便,之后的方便还需要加上:
ai 可以帮助我们编写 python 代码
只要能读懂 python 代码就好了,本身 python 设计之初就是想做一个容易读懂的语言。
iorilu
2024-01-05 14:35:50 +08:00
@di94sh 是的, 我也赞同, 评价 python 可能更合适得是, 使用简单, 到处可用, 方式多样都行
IdJoel
2024-01-05 14:42:49 +08:00
说实话,我感觉最简单的语言是 PHP ,就拿读写文件来说,php 就一个函数,http 请求也就一个函数
mcfog
2024-01-05 14:48:02 +08:00
@IdJoel 说个笑话:PHP 是世界上 hello world 程序最短的编程语言

$ php hello.php
Hello, World!
$ cat hello.php
Hello, World!
chaleaochexist
2024-01-05 14:51:31 +08:00
python 你可以选择简单的写也可以选择复杂的写.

就是因为 python 越来越复杂我现在几乎快要弃坑了.
iorilu
2024-01-05 14:59:36 +08:00
@chaleaochexist 确实有这种趋势, 比如现在使用类型定义的越来越流行, 这好像和 python 开始说的不用关心类型背道而驰了, 其实社区也有很多人觉得越来越复杂, 或者说越来越趋近那种严格类型语言了, 加上语法不断变化, 想跟上也不容易
Northxw
2024-01-05 15:00:26 +08:00
16 年就开始接触 Python ,17-18 年我在博客文章里面写 Python 专栏,每次都会在文章的最后总结一句话 "Python 入门简单,精学不易"。
adian
2024-01-05 15:08:12 +08:00
同意#45 说的方便实用,容易上手。

说是“简单”,其实想卖课爆米

如果只是调包,就算入门,那我不知道这有什么好学的

真入门了? import 导入库的机制是怎样的?介绍一下?麻烦着呢
Jackeriss
2024-01-05 15:12:25 +08:00
@leonhao 和新旧没关系吧,yield ,async 在 python 里早就有了
Jackeriss
2024-01-05 15:20:20 +08:00
python 简单应该是指其语法更接近自然语言,然后就是“The Zen of Python”,在 python 交互模式下输入“import this”可以看到:
```
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
```
python 是非常强调简洁优雅的语言,自然使用起来没那么多弯弯绕绕的东西。
akaHenry
2024-01-05 15:20:54 +08:00
Python 毫无疑问的简单.(如果 Python 都用不明白, 别的语言更别学了)

Python 毫无疑问的简单.(如果 Python 都用不明白, 别的语言更别学了)

Python 毫无疑问的简单.(如果 Python 都用不明白, 别的语言更别学了)


从 Python2.5/2.7 开始用, 经历过 3.4, 3.5, 3.7, 截止当前使用的 3.10.

Python 这些年除了 type hint, 新增的大都是不疼不痒的语法糖, 没啥值得讨论的.

和 Go, Rust 比, 自然是不用说. (学点其他语言, 再聊复杂)

横向和 JS/TS, Dart 比, 依然是简单.

Python 中稍复杂&高级点的特性, 和其他语言比, 依然是简单+易懂的.

抛开具体的业务特殊性, Python 几乎写不出让人看不懂的代码. (分清楚哪些是业务层面, 哪些是语言层面)

(yield 生成器, async/await, 不值一提, 其他语言也都有. 多测试几个例子, 并不难理解)

Python 的教程, 参考书, 和 10 年前比, 汗牛充栋, 更是有海量的开源项目(涵盖所有领域).

至于 FFI, C binding, Rust Binding, JIT, 我寻思你也没提到, 这也不算 Python 的复杂(多数语言的标配)

少发牢骚, 多写项目, 多看优秀代码. 或者多学几门语言.(触类旁通, 别坐井观天)
error451
2024-01-05 15:21:31 +08:00
@Northxw 任何编程语言最终你是学的是如何编程,也就是算法和数据结构。并不是说学完一个语言的语法就叫学完了。为什么总要把这两个混在一起呢? 单纯从语法和语言的使用来说,Python 就是相对比 Java ,Rust 简单。 不要掺乎其他的东西。
iorilu
2024-01-05 15:22:07 +08:00
@adian 是的, 就这个导入包, 其实可能出很多问题

经常有人一跑代码, 发现找不到包, 想搞清楚不容易

更别说现在, python 环境配置, 包管理也是很乱的, 很难理清楚

python 很多问题就在于, 随便干任何事, 都有无数的选择, 但这往往不是好事, 因为一般人没能力了解很多细则, 也没办法评估那种好或不好, 所以 python 根本就没什么规范可言, 做一件事, 让 10 个程序员写代码, 可能用的库, 使用的方法, 框架完全不一样, 这也增大了学习难度
justfindu
2024-01-05 15:25:28 +08:00
有前端复杂吗?
thinkershare
2024-01-05 15:29:42 +08:00
用起来简单的编程语言,语言背后的支撑都很复杂,难以被精通掌握。
JavaScript/Python 就是典型的例子,C/Golang 旧恰好相反,用起来难受,学习起来简单,Rust/C++就比较诡异(既难用,又难学)
chengxiao
2024-01-05 15:31:37 +08:00
python 主要是语法糖太多了
然后小技巧很多,有些人喜欢这些小技巧和花活
这就导致代码可读性很低 尤其是那种喜欢炫技还不写注释的

反正写了 Golang 之后,就觉得 Go 的好处还是有的,大家写的都差不多,阅读他人代码的难度一下就降下来了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1006067

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX