替Python说句公道话。

j
jiang_jun
楼主 (北美华人网)
很多人看不起Python. 但越来越多的大学CS系得入门课就是Python. 很多年前, AP CS考C++。 后来变成今天的Java. 我看如果Python继续这么popular下去。 AP CS 得考Python了。
C
Cumberbitch
golang吧
2
212mr
少儿编程班也是python,初中就该学会了,没必要等到ap
C
ChristinaW
python取代的是以前的basic~~
z
zlltt
python执行效率低 同样的算法复杂度 c++ java都能跑过 python就TLE 作为胶水语言 小孩入门还是可以的
g
gokgs
只能说明大学也越来越烂了。 哈哈。
python is a complete garbage! 写一些短程序还好。
python 多线程问题解决了吗? 好像解释器有个 master lock 什么的, 确实太垃圾了。
g
gokgs
golang吧
Cumberbitch 发表于 2022-07-22 14:56

也是个垃圾吧, 哈哈。连个基本 OOP 都没有。 有些有学问的人就是把垃圾做成高级垃圾, 但总归是垃圾。
听过 C++ 那个 inventor 的一个讲座,他说了, 别的language 十年后要么 dead, 要么 复杂度 double, 而 C++ 一直都默默的在那。
python 又整出了 python 3. 估计 十年后会出个 python 4?
墨染云烟
我们来华人是看八卦, 不是来学习技术的...我不喜欢python
d
destiny2008
python处理大数据很好用 但马公看不上正常啊
t
tangchaoren
上大学的时候,c++吭哧吭哧学完了啥也干不了,很快都忘了。研究生搭设备,也基本只用到c语言控制。
python上手快,短时间内就可以用python做很多有意义的项目,学以致用。
就连小朋友玩两三个月,就可以做project了, 用python玩草莓派芯片控制编程, 用python玩网络爬虫分析 用python控制机器人 。。。。
g
gokgs
自动驾驶公司都是 C++, 哈哈。 你不可能开着开着, 歇一会啊, 来个 garbage collection. LOL

g
gokgs
python处理大数据很好用 但马公看不上正常啊
destiny2008 发表于 2022-07-22 15:27

大数据都很慢, python 慢点大多数人也不会太 care 而已。
d
dalianyin
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
j
jiang_jun
回复 10楼tangchaoren的帖子
原来学Data Structure, 半个学期都花在教Pascal, C, 或者 Java了。 为后边做准备。 现在老师上来就开始讲干货。Python因为没有花括弧,用indentation,这和算法书里的pseudo code几乎一样。
------------------------------------------------------------------------------
上大学的时候,c++吭哧吭哧学完了啥也干不了,很快都忘了。研究生搭设备,也基本只用到c语言控制。
python上手快,短时间内就可以用python做很多有意义的项目,学以致用。
就连小朋友玩两三个月,就可以做project了, l用python玩草莓派芯片控制编程, 用python玩网络爬虫分析 用python控制机器人 。。。。
c
cafe1123
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
dalianyin 发表于 2022-07-22 15:45

Java 真的应该淘汰了。
扶苏
我感觉python学的人都点多,竞争的pool大。c++竞争没那么大。当然了,python做的东西跟c++是不同的。
C
ChristinaW
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
dalianyin 发表于 2022-07-22 15:45

C表示亚历山大,我功能最强大,却哪样都沾不上,好尴尬~~
扶苏
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
dalianyin 发表于 2022-07-22 15:45

software engineering c c++更有利吧。
j
jiang_jun
我感觉python学的人都点多,竞争的pool大。c++竞争没那么大。当然了,python做的东西跟c++是不同的。
扶苏 发表于 2022-07-22 15:49

竞争的pool是大。 但C++/C的机会也相对少。
d
dalianyin
C表示亚历山大,我功能最强大,却哪样都沾不上,好尴尬~~
ChristinaW 发表于 2022-07-22 15:49

c是我最喜欢的函数式语言 可惜工作岗位太少
D
DaHill
Mark
d
dalianyin
回复 9楼destiny2008的帖子
我们公司有点大数据 但我发觉用python 的两大原因 是数据处理的库多 还有就是data pipeline不需要real time 有的Ml model run两三天也是可以接受的
n
nypd
Python为什么需要你说公道话??
D
DS的LV
不好比吧,就像美女, Java林青霞, C++ 040,Python范冰冰, Nodejs刘亦菲 我都喜欢, 都是最爱
f
facet
很多人看不起Python. 但越来越多的大学CS系得入门课就是Python. 很多年前, AP CS考C++。 后来变成今天的Java. 我看如果Python继续这么popular下去。 AP CS 得考Python了。
jiang_jun 发表于 2022-07-22 14:55

Julia 是用来取代Python 的,但是任重道远,Python 越来越好用,已经是个完备的生态系统了
h
hf.w
认认真真学透一个都不错
w
wfmlover
我的小孩会c++,你的小孩只会python,想和我playdate,没门!
m
miaka
哎,美国这stem教育还有人能学得会python就不错了。
x
xinseesea
自动驾驶公司都是 C++, 哈哈。 你不可能开着开着, 歇一会啊, 来个 garbage collection. LOL


gokgs 发表于 2022-07-22 15:36

噗, 那你又知不知道就算是自动驾驶的infrastructure 都有大量的python code做configuration,interface。 看看ros node的python接口吧。
更不要说所有machine learning,deep learning里面的model和pipeline全是python
做为一个C/C++ lover和吃饭的人来说, Python在这个时代是非常非常有用的。
n
nj_guy
很多人看不起Python. 但越来越多的大学CS系得入门课就是Python. 很多年前, AP CS考C++。 后来变成今天的Java. 我看如果Python继续这么popular下去。 AP CS 得考Python了。
jiang_jun 发表于 2022-07-22 14:55

python 会有它的位置,但不可能成为c++这样的语言,它先天营养不良,它的缺点也正是它的优点。如果用python写大的library,就会发现python真的很很很弱鸡,每次refactor/reuse code都是nightmare,multithreading更是瘸腿,python单一用处的直线spaghetti code, call几个 libraries 还不错,但仅此而已。它的好处就是省心,好用,写prototype。Jupiter 有点象吃了兴奋剂的 excel。
c
cafe1123
python 会有它的位置,但不可能成为c++这样的语言,它先天营养不良,它的缺点也正是它的优点。如果用python写大的library,就会发现python真的很很很弱鸡,每次refactor/reuse code都是nightmare,multithreading更是瘸腿,python单一用处的直线spaghetti code, call几个 libraries 还不错,但仅此而已。它的好处就是省心,好用,写prototype。
nj_guy 发表于 2022-07-22 17:43

你开玩笑吧。python refactoring 不要太容易。 本来就速度慢,多线程也没有太大必要,可以用多进程来代替。
速度慢是因为编译器没有JIT, 不是语言本身造成的。
n
nj_guy
你开玩笑吧。python refactoring 不要太容易。 本来就速度慢,多线程也没有太大必要,可以用多进程来代替。
速度慢是因为编译器没有JIT, 不是语言本身造成的。
cafe1123 发表于 2022-07-22 17:47

非常麻烦! 因为没有hard type和compiling process,极为容易引进bug。PyCharm和Python 3.10虽然提供type hint, 但非常不可靠。而且因为不 enforce,所以一个team里很难一致化。object inheritance 也有bug。总之refactoring 几乎每次都是 testing 的 nightmare. 另外python object可以随便往里加 variable,最后都搞不清楚一个object里面有啥东西。
要想用 python 写OOP不是不可以,但要求一个team非常严格的遵从某个规则,而这样做又很大程度地消弱了python的advantage,还不如直接c++。
c
cafe1123
非常麻烦! 因为没有hard type和compiling process,极为容易引进bug。PyCharm和Python 3.10虽然提供type hint, 但非常不可靠。而且因为不 enforce,所以一个team里很难一致化。object inheritance 也有bug。总之refactoring 几乎每次都是 testing 的 nightmare. 另外python object可以随便往里加 variable,最后都搞不清楚一个object里面有啥东西。
nj_guy 发表于 2022-07-22 17:54

找一个好用的IDE
n
nj_guy
找一个好用的IDE
cafe1123 发表于 2022-07-22 17:57

我一直在用PyCharm,反正觉得如果要求清除所有warning hint (有些warning hint 本身也有问题)那还不如不用python. 现在一直combine c#和python,大的lib和gui用c#,process用python。超喜欢c#。
而且debugger tool往往很难在multithreading的环境下使用。比如你听market quotes,你debugger一stop,想step in? 立刻其他的market quotes就flood in, kill 你的 IDE。一旦没有debugger不能step in,python的缺点就会被放的更大。
l
lealee
如果只会python能找到什么样的工作呢?
h
huaren_2018
python科学计算很强,应用开发一般
c
cafe1123
非常麻烦! 因为没有hard type和compiling process,极为容易引进bug。PyCharm和Python 3.10虽然提供type hint, 但非常不可靠。而且因为不 enforce,所以一个team里很难一致化。object inheritance 也有bug。总之refactoring 几乎每次都是 testing 的 nightmare. 另外python object可以随便往里加 variable,最后都搞不清楚一个object里面有啥东西。
要想用 python 写OOP不是不可以,但要求一个team非常严格的遵从某个规则,而这样做又很大程度地消弱了python的advantage,还不如直接c++。
nj_guy 发表于 2022-07-22 17:54

python很灵活,如果消除了你说的这些缺点,那就和C++没有什么区别了。
c
cafe1123
python科学计算很强,应用开发一般
huaren_2018 发表于 2022-07-22 18:18

python模块化扩展性很强,这些都是编译型语言缺乏的。
w
wfmlover
如果只会python能找到什么样的工作呢?
lealee 发表于 2022-07-22 18:16

各种所谓AI,machine learning,deep learning 大多是只会python 照样比java码农工资高

c
cafe1123
各种所谓AI,machine learning,deep learning 大多是只会python 照样比java码农工资高


wfmlover 发表于 2022-07-22 18:29

Java 说实在的应该被淘汰了。
t
ted.hanks
非常麻烦! 因为没有hard type和compiling process,极为容易引进bug。PyCharm和Python 3.10虽然提供type hint, 但非常不可靠。而且因为不 enforce,所以一个team里很难一致化。object inheritance 也有bug。总之refactoring 几乎每次都是 testing 的 nightmare. 另外python object可以随便往里加 variable,最后都搞不清楚一个object里面有啥东西。
要想用 python 写OOP不是不可以,但要求一个team非常严格的遵从某个规则,而这样做又很大程度地消弱了python的advantage,还不如直接c++。
nj_guy 发表于 2022-07-22 17:54

> 因为没有hard type和compiling process,极为容易引进bug
这是动态语言做的折衷。 牺牲了type 来换取duck type 的灵活。 一个严肃的 developer 应该用大量的ut 来做code coverage, 从这点上说python 和其他需要编译的语言没有什么不同。
> object inheritance 也有bug 说的是mro 吗? 感觉这种多重diamond 的继承好像都不怎么样, 还是java 好, 直接给ban 了。
> 要想用 python 写OOP不是不可以,但要求一个team非常严格的遵从某个规则 最简单的就是所有的member variable 都必须在 __init__ 里定义。
t
ted.hanks
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
dalianyin 发表于 2022-07-22 15:45

我觉得CS 毕业的没上过SICP, 过分了。 不追求一下OS, DBMS, Compiler, 就打算出来刷题当码农吗? 太没有追求了。
g
gokgs
如果只会python能找到什么样的工作呢?
lealee 发表于 2022-07-22 18:16

现在的趋势是没人 care 你会什么语言。 全是刷题, 刷题过关了, 一门新语言小 case.
我面试碰到一个人用 TCL ( tickel?), 从来没听说过, 哈哈。
W
Wpzzz
Java 说实在的应该被淘汰了。
cafe1123 发表于 2022-07-22 18:39

不会吧,说说用啥取代
G
Giovanna
如果只会python能找到什么样的工作呢?
lealee 发表于 2022-07-22 18:16

我们组是这样的。研究模型写prototype跑实验的这群人(包括我自己),基本上只会python,c++属于学过,但日常用到的不多。等模型验证成功了,能用了,交给专门的engineer team做优化,最终写在产品上,基本都是c++。
c
cacp
rust 是最好的programming language
b
brotherband
我们组是这样的。研究模型写prototype跑实验的这群人(包括我自己),基本上只会python,c++属于学过,但日常用到的不多。等模型验证成功了,能用了,交给专门的engineer team做优化,最终写在产品上,基本都是c++。
Giovanna 发表于 2022-07-22 20:34

我们专业也是这样。research用python写,因为学术界现在从数据到code都要求开源,而且因为有diversity的要求(不能让穷国家的人或者穷的实验室花钱买license),都必须用free软件,python是最佳的了,java现在都开始收钱了。research product最后被选作operational production之后全部改成c++ 或者c。
头文字D
现在的趋势是没人 care 你会什么语言。 全是刷题, 刷题过关了, 一门新语言小 case.
我面试碰到一个人用 TCL ( tickel?), 从来没听说过, 哈哈。
gokgs 发表于 2022-07-22 19:56

我认识一个人用海信
c
cavine747
软件开发不了解。但data scientist基本上都是靠Python吃饭的。
l
limimiao
Python语法太灵活,不喜欢;学通了c/c++,应该学任何语言都不难。
G
Giovanna
我们专业也是这样。research用python写,因为学术界现在从数据到code都要求开源,而且因为有diversity的要求(不能让穷国家的人或者穷的实验室花钱买license),都必须用free软件,python是最佳的了,java现在都开始收钱了。research product最后被选作operational production之后全部改成c++ 或者c。
brotherband 发表于 2022-07-22 20:45

嗯,其实我同意楼主,这种哪种语言更好的争论都挺没劲的,就像争论扫帚跟拖把哪个更好用一样。作为优胜劣汰生存下来的流行工具,肯定各有用武之地,没有绝对的好坏,都是tradeoff,关键就是你的重点是哪里。当年deep learning刚出来的时候各种语言都有,一片混乱,最后渐渐统一converge到python,说明这个就是community用代码投票的结果了,开源肯定是原因之一,还有就是简明扼要,几行就能实现一个模型,不用浪费太多时间去考虑更底层的逻辑,这对需要大量试错的research community非常有吸引力。
P
ProtonKing
Python上手快,现成库多,封装干净整洁,写程序快,但运行慢,没有真正的多线程。适合数据分析,上层业务逻辑,胶水,不适合用于高并发后端服务的底层实现。
C++上手慢,现成库虽然也不少,但是用起来麻烦,底层细节暴露给程序员太多,给程序员选择太多,以至于程序员对计算机底层概念不熟悉比如内存,进程,线程,携程,文件系统,等等,很容易误操作。但高并发后端服务的底层实现基本只能用c++。
python 好比速冻饺子,回家热一下就能吃,不用关心饺子皮是用啥面粉做的,馅是什么肉。吃就得了。缺点是就5-6中口味,要多的没有。你让米其林3星主厨来热出来的饺子和从来不做饭的单身汉热出来的,味道差不多。
c++好比自己去店里买一斤面粉,半斤五花肉,几把葱,各种调料,回来自己活面,做肉糜,包。你得知道买啥面,怎么选五花,怎么和面,擀面,调馅。这其中每一步都有无限选择和可能,你水平多高做的饺子就多好吃,水平不行连面粉都能买错。
自己家里随便吃吃,或者下班回家饿昏了,速冻饺子很好,营养口味都帮你调好了,自己折腾纯粹浪费时间,还不一定弄的比买的好吃。你大年三十请一大帮人来吃饺子,有些不吃葱,有些不吃猪肉,有些只吃素,有些喜欢面硬一点,还有小朋友喜欢有动物造型的,最后还要放一个金元宝,这个速冻的很难满足了。
有意思的是,世界上并发最高,最复杂的两个后端服务都是python: 狗的YouTube 和脸的 Instagram,为啥因为这两个都是收购的,被收购的是startup,当然是快糙猛,当用户还不多,速度和生存是第一位的时候,python自然是最好选择。在收购后用户和功能暴增,在不推倒重写的情况下, 狗和脸只能在python这个速冻饺子里面““螺蛳壳里做道场”,现在各自基本上吧python的性能发挥到了极致了,python自己的发明者都看呆了:你们还能这么整?。有点像同样一套武术入门的太祖长拳,6岁小儿都能打完。一般武师打出来,和在乔峰手里打出来,感觉完全不是一回事。
c
carolena
C表示亚历山大,我功能最强大,却哪样都沾不上,好尴尬~~
ChristinaW 发表于 2022-07-22 15:49

operating system 课用c++ 和c computer vision课用c
d
dayuanlian
语言使用的人多自然会有牛人出来不断改进的,等待大牛出来改进python吧。
s
slippp
python用起来比较舒服,符合人的思维习惯,效率奇高。C/C++机器味太浓, 操作太底层太繁琐。
l
lala_2009
回复 1楼jiang_jun的帖子
Python 很流行啊
c
cafe1123
Python上手快,现成库多,封装干净整洁,写程序快,但运行慢,没有真正的多线程。适合数据分析,上层业务逻辑,胶水,不适合用于高并发后端服务的底层实现。
C++上手慢,现成库虽然也不少,但是用起来麻烦,底层细节暴露给程序员太多,给程序员选择太多,以至于程序员对计算机底层概念不熟悉比如内存,进程,线程,携程,文件系统,等等,很容易误操作。但高并发后端服务的底层实现基本只能用c++。
python 好比速冻饺子,回家热一下就能吃,不用关心饺子皮是用啥面粉做的,馅是什么肉。吃就得了。缺点是就5-6中口味,要多的没有。你让米其林3星主厨来热出来的饺子和从来不做饭的单身汉热出来的,味道差不多。
c++好比自己去店里买一斤面粉,半斤五花肉,几把葱,各种调料,回来自己活面,做肉糜,包。你得知道买啥面,怎么选五花,怎么和面,擀面,调馅。这其中每一步都有无限选择和可能,你水平多高做的饺子就多好吃,水平不行连面粉都能买错。
自己家里随便吃吃,或者下班回家饿昏了,速冻饺子很好,营养口味都帮你调好了,自己折腾纯粹浪费时间,还不一定弄的比买的好吃。你大年三十请一大帮人来吃饺子,有些不吃葱,有些不吃猪肉,有些只吃素,有些喜欢面硬一点,还有小朋友喜欢有动物造型的,最后还要放一个金元宝,这个速冻的很难满足了。
有意思的是,世界上并发最高,最复杂的两个后端服务都是python: 狗的YouTube 和脸的 Instagram,为啥因为这两个都是收购的,被收购的是startup,当然是快糙猛,当用户还不多,速度和生存是第一位的时候,python自然是最好选择。在收购后用户和功能暴增,在不推倒重写的情况下, 狗和脸只能在python这个速冻饺子里面““螺蛳壳里做道场”,现在各自基本上吧python的性能发挥到了极致了,python自己的发明者都看呆了:你们还能这么整?。有点像同样一套武术入门的太祖长拳,6岁小儿都能打完。一般武师打出来,和在乔峰手里打出来,感觉完全不是一回事。

ProtonKing 发表于 2022-07-23 00:30

Netflix的后端一开始是java,现在也python占主导地位了。
p
patrickcp
c++学完了啥也干不了? excuse me? 你说c++啥干不了,来,我倒是要听听
g
gokgs
Netflix的后端一开始是java,现在也python占主导地位了。
cafe1123 发表于 2022-07-23 08:22

怪不得 netflix 江河日下了, 哈哈。

j
jiang_jun
Python为什么需要你说公道话??
nypd 发表于 2022-07-22 16:11

这个得解释一下。 我本来想说版上很多人看不起Python,我来为Python说句公道话。 但又觉得不礼貌就没说为什么。
不娶何撩
因为python 入门简单, 3岁娃就可以学。
N
NSGA
c是我最喜欢的函数式语言 可惜工作岗位太少
dalianyin 发表于 2022-07-22 15:52

其实岗位不少,只是大部分都是拿不到大包裹的底层嵌入式的工作而已
N
NSGA
现在的趋势是没人 care 你会什么语言。 全是刷题, 刷题过关了, 一门新语言小 case.
我面试碰到一个人用 TCL ( tickel?), 从来没听说过, 哈哈。
gokgs 发表于 2022-07-22 19:56

TCL没听过,说明你还年轻哈 现在很多在Unix/Linux上跑的一些软件,还是有非常多用legacy的TCL配置脚本
z
ziyi99
先简单的免费的上手,这个最重要了。
T
Tia99
看看
b
bud
以前做数据分析多为SAS/R, 还有一个小众的spss. SAS授权很贵R难用. Python 开源免费包多,自然被广泛接受。领导要求快速出结果,便于维护和发展, 那Python是个好平台(还有Peal这类)。 python只是个平台,下面众多Package很多还是用c/c++或其他真正编程语言。 使用Gpu要加众多package包括NvidiaCUDA, 这肯定包含c/c++. 分析语言多加BERT/USE和model包。没有这些包裹Python useless。
s
samstar
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
dalianyin 发表于 2022-07-22 15:45

手动点赞!
f
fantasiame
楼里牛人多,想请问一下有什么好用的python IDE推荐么?我用python时间不长,一直用的spyder,喜欢它界面比较简洁。现在有时候有写project的code循环多而且code长,常常看不清楚indent到底到哪层了,怕出错。不知道有没有IDE可以有那种自动的标记提醒所在的loop的indent在哪里的,或者能收缩展开loop来确认对齐也行?谢谢楼里的牛人们
C
Cleveland
哎,美国这stem教育还有人能学得会python就不错了。
miaka 发表于 2022-07-22 17:32

那是你脑子不行,学不会
h
hannah04
回复 13楼dalianyin的帖子
大实话,说的很对,超级赞同👍
g
gokgs
python 的流行跟易上手也是分不开的, 大部分的公司, 大部分的 project 对性能要求其实都没那么高, AI 就更不用说了, AI 的焦点是准确率, performance 大概是最后关心的问题。AI 的算法估计都是公式, 用什么写估计读起来都是天书。
1) 没有 type validation, 稍微大的程序就没法 maintain 了 2) 靠 indentation 是非常 脑残的设计。

Perl PHP 基本都销声匿迹了, facebook 用 PHP 还专门做了个 compiler 来优化。
python 作为 script language 看来还不错。
C++ 肯定不会倒, 除非 CS 倒了。 哈哈。
流水石磨
楼里牛人多,想请问一下有什么好用的python IDE推荐么?我用python时间不长,一直用的spyder,喜欢它界面比较简洁。现在有时候有写project的code循环多而且code长,常常看不清楚indent到底到哪层了,怕出错。不知道有没有IDE可以有那种自动的标记提醒所在的loop的indent在哪里的,或者能收缩展开loop来确认对齐也行?谢谢楼里的牛人们
fantasiame 发表于 2022-07-23 12:56

写Python代码要是循环多的话,该改一下编程风格。Python 要少用循环,多用 List comprehension, Numpy 数组减少循环
流水石磨
python 的流行跟易上手也是分不开的, 大部分的公司, 大部分的 project 对性能要求其实都没那么高, AI 就更不用说了, AI 的焦点是准确率, performance 大概是最后关心的问题。AI 的算法估计都是公式, 用什么写估计读起来都是天书。
1) 没有 type validation, 稍微大的程序就没法 maintain 了 2) 靠 indentation 是非常 脑残的设计。

Perl PHP 基本都销声匿迹了, facebook 用 PHP 还专门做了个 compiler 来优化。
python 作为 script language 看来还不错。
C++ 肯定不会倒, 除非 CS 倒了。 哈哈。

gokgs 发表于 2022-07-23 14:26

我特别喜欢Indentation,觉得这是最好的分隔符,简洁直观不用数。曾经用过Lisp,感觉那是一场恶梦
g
gokgs
我特别喜欢Indentation,觉得这是最好的分隔符,简洁直观不用数。曾经用过Lisp,感觉那是一场恶梦
流水石磨 发表于 2022-07-23 14:37

俺用 vim 加 clang auto formatting, 很爽, 啪啪两个键, 自动排版整整齐齐。
P
PrettyMaJia
我也来为各个语言说句公道话 我认为大学课程应该使用最适合这门课的语言 每个语言都有自己擅长的领域 大学四年下来学生最起码掌握遗下几门语言 intro to programing 用python 主要培养编程的逻辑思维 intro to computer science 用c 主要培养对内存,cpu, 线程管理这些,联系调用底层gnu接口 intro to software engineering 用java 主要培养用oop 思想写application intro to data analytics 用python 主要培养数据处理和建模 intro to computer networking 用c/python/shell 都可以,看课程的住重点 intro to algorithms 可以用任何语言 甚至手写psudo code都可以
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
dalianyin 发表于 2022-07-22 15:45

Mark. Thanks for sharing!
f
formemory
python执行效率低 同样的算法复杂度 c++ java都能跑过 python就TLE 作为胶水语言 小孩入门还是可以的
zlltt 发表于 2022-07-22 15:16

给小孩玩玩还行。这玩意之所以popular不过就是因为有很多现成包可以调用,比较傻瓜。要强调性能的话还是算了。
h
hioc
就是一语言。只正经上课学过c++,别的拿过来就用了。大部分情况原来是啥你就得用啥,没得选
f
fantasiame
写Python代码要是循环多的话,该改一下编程风格。Python 要少用循环,多用 List comprehension, Numpy 数组减少循环
流水石磨 发表于 2022-07-23 14:34

比如说一个loop里的code超过一页长,然后头尾总不在同一个界面出现,这种情况,除了纯数,有没有什么简单直接的方式或者IDE的功能能提示/确定一下位置的?
g
gokgs
比如说一个loop里的code超过一页长,然后头尾总不在同一个界面出现,这种情况,除了纯数,有没有什么简单直接的方式或者IDE的功能能提示/确定一下位置的?
fantasiame 发表于 2022-07-23 17:11

haha。 very bad pratise.
do not write that long line. actually every function better to be less than 60 lines or so. 好多公司限制列数不超过 80 呢。
好多人写个 function 都 好几千行, LOL it is just so stupid and many people do that, if you are an code reviewer, please point that out.
poor language choice , poor practice of coding, 绝对天下无敌阿。 哈哈。
t
ttyp0
比如说一个loop里的code超过一页长,然后头尾总不在同一个界面出现,这种情况,除了纯数,有没有什么简单直接的方式或者IDE的功能能提示/确定一下位置的?
fantasiame 发表于 2022-07-23 17:11

你可以另外用一个function来替代loop里的内容
l
lumpenbourgeoisie
进来学习
s
slippp
python 的流行跟易上手也是分不开的, 大部分的公司, 大部分的 project 对性能要求其实都没那么高, AI 就更不用说了, AI 的焦点是准确率, performance 大概是最后关心的问题。AI 的算法估计都是公式, 用什么写估计读起来都是天书。
1) 没有 type validation, 稍微大的程序就没法 maintain 了 2) 靠 indentation 是非常 脑残的设计。

Perl PHP 基本都销声匿迹了, facebook 用 PHP 还专门做了个 compiler 来优化。
python 作为 script language 看来还不错。
C++ 肯定不会倒, 除非 CS 倒了。 哈哈。

gokgs 发表于 2022-07-23 14:26

1,解析性语言本来就不会严格检查TYPE. 不要跟编译型语言比。 2, INDENT我觉得很好,让整个程序逻辑非常分明易读。事实上LINUX源代码风格也是严格要求INDENT。如果随意的花括号来花括号去,整个源码的可读性非常乱。