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, 绝对天下无敌阿。 哈哈。
python is a complete garbage! 写一些短程序还好。
python 多线程问题解决了吗? 好像解释器有个 master lock 什么的, 确实太垃圾了。
也是个垃圾吧, 哈哈。连个基本 OOP 都没有。 有些有学问的人就是把垃圾做成高级垃圾, 但总归是垃圾。
听过 C++ 那个 inventor 的一个讲座,他说了, 别的language 十年后要么 dead, 要么 复杂度 double, 而 C++ 一直都默默的在那。
python 又整出了 python 3. 估计 十年后会出个 python 4?
python上手快,短时间内就可以用python做很多有意义的项目,学以致用。
就连小朋友玩两三个月,就可以做project了, 用python玩草莓派芯片控制编程, 用python玩网络爬虫分析 用python控制机器人 。。。。
大数据都很慢, python 慢点大多数人也不会太 care 而已。
内容和概念最重要,语言只是一个工具,学习概念的同时再学一门语言是bonus 可悲的事实是,学生基础学来越差,教授们发现让学生在学习可能内容的同时再学习一门新语言越来越不现实。结果只能选对大众容易上手的语言,这样至少学生可以把概念学会。
原来学Data Structure, 半个学期都花在教Pascal, C, 或者 Java了。 为后边做准备。 现在老师上来就开始讲干货。Python因为没有花括弧,用indentation,这和算法书里的pseudo code几乎一样。
------------------------------------------------------------------------------
上大学的时候,c++吭哧吭哧学完了啥也干不了,很快都忘了。研究生搭设备,也基本只用到c语言控制。
python上手快,短时间内就可以用python做很多有意义的项目,学以致用。
就连小朋友玩两三个月,就可以做project了, l用python玩草莓派芯片控制编程, 用python玩网络爬虫分析 用python控制机器人 。。。。
Java 真的应该淘汰了。
C表示亚历山大,我功能最强大,却哪样都沾不上,好尴尬~~
software engineering c c++更有利吧。
竞争的pool是大。 但C++/C的机会也相对少。
c是我最喜欢的函数式语言 可惜工作岗位太少
我们公司有点大数据 但我发觉用python 的两大原因 是数据处理的库多 还有就是data pipeline不需要real time 有的Ml model run两三天也是可以接受的
Julia 是用来取代Python 的,但是任重道远,Python 越来越好用,已经是个完备的生态系统了
噗, 那你又知不知道就算是自动驾驶的infrastructure 都有大量的python code做configuration,interface。 看看ros node的python接口吧。
更不要说所有machine learning,deep learning里面的model和pipeline全是python
做为一个C/C++ lover和吃饭的人来说, Python在这个时代是非常非常有用的。
python 会有它的位置,但不可能成为c++这样的语言,它先天营养不良,它的缺点也正是它的优点。如果用python写大的library,就会发现python真的很很很弱鸡,每次refactor/reuse code都是nightmare,multithreading更是瘸腿,python单一用处的直线spaghetti code, call几个 libraries 还不错,但仅此而已。它的好处就是省心,好用,写prototype。Jupiter 有点象吃了兴奋剂的 excel。
你开玩笑吧。python refactoring 不要太容易。 本来就速度慢,多线程也没有太大必要,可以用多进程来代替。
速度慢是因为编译器没有JIT, 不是语言本身造成的。
非常麻烦! 因为没有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++。
找一个好用的IDE
我一直在用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的缺点就会被放的更大。
python很灵活,如果消除了你说的这些缺点,那就和C++没有什么区别了。
python模块化扩展性很强,这些都是编译型语言缺乏的。
各种所谓AI,machine learning,deep learning 大多是只会python 照样比java码农工资高
Java 说实在的应该被淘汰了。
> 因为没有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__ 里定义。
我觉得CS 毕业的没上过SICP, 过分了。 不追求一下OS, DBMS, Compiler, 就打算出来刷题当码农吗? 太没有追求了。
现在的趋势是没人 care 你会什么语言。 全是刷题, 刷题过关了, 一门新语言小 case.
我面试碰到一个人用 TCL ( tickel?), 从来没听说过, 哈哈。
不会吧,说说用啥取代
我们组是这样的。研究模型写prototype跑实验的这群人(包括我自己),基本上只会python,c++属于学过,但日常用到的不多。等模型验证成功了,能用了,交给专门的engineer team做优化,最终写在产品上,基本都是c++。
我们专业也是这样。research用python写,因为学术界现在从数据到code都要求开源,而且因为有diversity的要求(不能让穷国家的人或者穷的实验室花钱买license),都必须用free软件,python是最佳的了,java现在都开始收钱了。research product最后被选作operational production之后全部改成c++ 或者c。
我认识一个人用海信
嗯,其实我同意楼主,这种哪种语言更好的争论都挺没劲的,就像争论扫帚跟拖把哪个更好用一样。作为优胜劣汰生存下来的流行工具,肯定各有用武之地,没有绝对的好坏,都是tradeoff,关键就是你的重点是哪里。当年deep learning刚出来的时候各种语言都有,一片混乱,最后渐渐统一converge到python,说明这个就是community用代码投票的结果了,开源肯定是原因之一,还有就是简明扼要,几行就能实现一个模型,不用浪费太多时间去考虑更底层的逻辑,这对需要大量试错的research community非常有吸引力。
C++上手慢,现成库虽然也不少,但是用起来麻烦,底层细节暴露给程序员太多,给程序员选择太多,以至于程序员对计算机底层概念不熟悉比如内存,进程,线程,携程,文件系统,等等,很容易误操作。但高并发后端服务的底层实现基本只能用c++。
python 好比速冻饺子,回家热一下就能吃,不用关心饺子皮是用啥面粉做的,馅是什么肉。吃就得了。缺点是就5-6中口味,要多的没有。你让米其林3星主厨来热出来的饺子和从来不做饭的单身汉热出来的,味道差不多。
c++好比自己去店里买一斤面粉,半斤五花肉,几把葱,各种调料,回来自己活面,做肉糜,包。你得知道买啥面,怎么选五花,怎么和面,擀面,调馅。这其中每一步都有无限选择和可能,你水平多高做的饺子就多好吃,水平不行连面粉都能买错。
自己家里随便吃吃,或者下班回家饿昏了,速冻饺子很好,营养口味都帮你调好了,自己折腾纯粹浪费时间,还不一定弄的比买的好吃。你大年三十请一大帮人来吃饺子,有些不吃葱,有些不吃猪肉,有些只吃素,有些喜欢面硬一点,还有小朋友喜欢有动物造型的,最后还要放一个金元宝,这个速冻的很难满足了。
有意思的是,世界上并发最高,最复杂的两个后端服务都是python: 狗的YouTube 和脸的 Instagram,为啥因为这两个都是收购的,被收购的是startup,当然是快糙猛,当用户还不多,速度和生存是第一位的时候,python自然是最好选择。在收购后用户和功能暴增,在不推倒重写的情况下, 狗和脸只能在python这个速冻饺子里面““螺蛳壳里做道场”,现在各自基本上吧python的性能发挥到了极致了,python自己的发明者都看呆了:你们还能这么整?。有点像同样一套武术入门的太祖长拳,6岁小儿都能打完。一般武师打出来,和在乔峰手里打出来,感觉完全不是一回事。
operating system 课用c++ 和c computer vision课用c
Python 很流行啊
Netflix的后端一开始是java,现在也python占主导地位了。
怪不得 netflix 江河日下了, 哈哈。
这个得解释一下。 我本来想说版上很多人看不起Python,我来为Python说句公道话。 但又觉得不礼貌就没说为什么。
其实岗位不少,只是大部分都是拿不到大包裹的底层嵌入式的工作而已
TCL没听过,说明你还年轻哈 现在很多在Unix/Linux上跑的一些软件,还是有非常多用legacy的TCL配置脚本
手动点赞!
那是你脑子不行,学不会
大实话,说的很对,超级赞同👍
1) 没有 type validation, 稍微大的程序就没法 maintain 了 2) 靠 indentation 是非常 脑残的设计。
Perl PHP 基本都销声匿迹了, facebook 用 PHP 还专门做了个 compiler 来优化。
python 作为 script language 看来还不错。
C++ 肯定不会倒, 除非 CS 倒了。 哈哈。
写Python代码要是循环多的话,该改一下编程风格。Python 要少用循环,多用 List comprehension, Numpy 数组减少循环
我特别喜欢Indentation,觉得这是最好的分隔符,简洁直观不用数。曾经用过Lisp,感觉那是一场恶梦
俺用 vim 加 clang auto formatting, 很爽, 啪啪两个键, 自动排版整整齐齐。
Mark. Thanks for sharing!
给小孩玩玩还行。这玩意之所以popular不过就是因为有很多现成包可以调用,比较傻瓜。要强调性能的话还是算了。
比如说一个loop里的code超过一页长,然后头尾总不在同一个界面出现,这种情况,除了纯数,有没有什么简单直接的方式或者IDE的功能能提示/确定一下位置的?
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, 绝对天下无敌阿。 哈哈。
你可以另外用一个function来替代loop里的内容
1,解析性语言本来就不会严格检查TYPE. 不要跟编译型语言比。 2, INDENT我觉得很好,让整个程序逻辑非常分明易读。事实上LINUX源代码风格也是严格要求INDENT。如果随意的花括号来花括号去,整个源码的可读性非常乱。