2
micyng 2013-06-08 10:49:23 +08:00
动态类型的问题只要是动态语言都会有,assert多用?
用空格区分逻辑块的确很讨厌 |
3
SErHo 2013-06-08 10:53:25 +08:00 5
如果举四个例子就能说明某个语言是个烂语言,我估计没有一个语言不是烂语言。
|
4
xiaket 2013-06-08 11:01:27 +08:00
2是流程问题, 不应该在服务器上修改代码.
|
5
leiz 2013-06-08 11:04:50 +08:00
3. python的list处理完全是个不合格的设计,如a[a.rfind(/)]的返回结果在a有/与没有/时不一致;
这个说明白点? |
6
hit9 2013-06-08 11:05:41 +08:00
看楼下怎么喷
|
7
thedevil5032 2013-06-08 11:10:21 +08:00 via iPad
1,没有 Python 大型开发经验。但因为类型不对运行时崩溃,真的是语言的问题吗?不懂。
3,rfind 貌似是 str 的方法吧?和 list 有关系吗? 4,编程风格不是团队写代码之前定好的吗?不统一也可以怪语言? 你说的1和4实际是一个问题,“因为语言太自由,所以不好。” ps 坐等楼主被喷。 |
8
keakon 2013-06-08 11:15:12 +08:00
楼主肯定是来赚金币的,用了 4 年 Python 还弄错大小写的真奇葩。
1. 我从来没遇到 Python 崩溃过。倒是 C 系的软件遇到过段错误、内存不可读/写之类的问题,当然编译时没问题。 2. 自己的电脑/虚拟机肯定会做相应的配置,生产系统上不该直接改代码。让你麻烦点就是为了不让你碰代码=。= 3. 这句话可以理解为「可口可乐不能喝啊,因为百事可乐有毒」。你喷的是 list 还是 str 啊?想要异常的话,a[a.rindex('/')] 可以满足你;不想要的话写成 '/' if a.rfind('/') > 0 else None。好像除了 Lisp,没有更优雅的写法了。 4. 风格不一致的都开除呗。据我所知,一切图灵完备的编程语言,都支持这些编程。也没有任何一门语言,能限制使用者的风格,包括汉语。 |
9
swulling 2013-06-08 11:18:54 +08:00
2. python使用空白控制程序结构,非常不便于各种编辑器处理,如vim,虽然可以通过安装插件解决,但不是每台服务器主机都安装有插件的;
这个需要装插件,难道不是直接一行 au FileType python set shiftround expandtab softtabstop=4 tabstop=4 shiftwidth=4 textwidth=79 |
10
yuelang85 2013-06-08 11:38:34 +08:00
不相信楼主用过4年python,用了四年python还是这个水平,楼主,下面的话自己想象吧。。。。
1. python的动态类型系统使得开发稍微大点的程序就是个灾难,编译期间没错误,而运行期间崩溃的情形到处都是; 楼主可知道什么叫单元测试?什么叫解释性语言?什么叫靠谱的程序员?楼主确定写程序之前学过python? 2. python使用空白控制程序结构,非常不便于各种编辑器处理,如vim,虽然可以通过安装插件解决,但不是每台服务器主机都安装有插件的; 楼主不会用vim,vim中:help vi: 范例:# vi:set ts=8 sts=4 sw=4: 3. python的list处理完全是个不合格的设计,如a[a.rfind(/)]的返回结果在a有/与没有/时不一致; >>> ['1'].rfind() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'list' object has no attribute 'rfind' 还有,请学习下'/'的含义。 4. python支持函数式编程,也支持面向对象编程,也支持XXX编程,导致编程风格完全统一不起来,当要合并其它人开发的代码时,真是头疼。 组内没做过培训?没做过编程规范?楼主的同事都是我行我素的自由人士,完全没有团队合作意识? 断断续续地用了python已经有4年了,尽管python的本意是pythonic,但事实证明,python的确是够烂的。 四个例子说明楼主连 "google pythonic"都没做过。“4年python经验”,提出这四个问题,可以知道楼主真正动脑写python可能不到k行。 总结: 楼主不会用python,不会用vim,楼主是来骗钱的,楼主不是合格程序员。 |
11
Golevka 2013-06-08 12:09:31 +08:00
只同意第二条, 我也讨厌layout syntax.
1: dynamic typed language都不要活好了, 统统烧死算了 3: 你确认str.rfind是list处理么? 4: multi-paradigm是大趋势, 你居然认为python在FP上做得太多了? 我倒认为就这一问题perl都能爆python. python半残废的lambda我就不吐槽了 |
12
aisk 2013-06-08 12:12:51 +08:00
看了这么多语言之争,最后发现问题的来源还是不同开发人员有不同背景。
对于一个搞多年XX企业级应用,需要很多不同水平的人员合作的开发人员,是很难理解动态语言的好处的。 对于一个搞web多年的人,同样也很难理解c语言为嘛这么难用。 |
13
undozen 2013-06-08 12:23:49 +08:00
@aisk 接你的话题,想到最近流行的那篇《如果用招聘程序员的方式招聘木匠…》 http://jianshu.io/p/jRRz5u
|
14
Ricepig 2013-06-08 12:39:39 +08:00 via iPhone
关于编码规范的问题,还有灵活的问题
实际上,如果语言本身不能帮一点儿忙的话,就需要额外的工作来保证了。 规范阿,措施阿,都需要检查才有效,问题是这种检查是由谁来做 |
15
davepkxxx 2013-06-08 12:47:20 +08:00 1
我比较认可的就是动态类型有很多不可预料的错误,这是在开发期间无法想到的,测试也很难测出来,当然经验可以帮你避免一些就是了。
还有个人认为用缩进控制程序结构的确是很反人类的事情,当然我每遇到过这种问题,因为我是个人开发。 团队开发的话,人越多遇到上面两个问题的几率就越频繁。 |
16
hooluupog 2013-06-08 12:49:30 +08:00
不多说什么了,我只是反感用python做界面的,尤其是ubuntu和gnome那俩,桑不起~~!
|
19
hooluupog 2013-06-08 12:57:20 +08:00
@ swulling 慢慢笑吧。
|
20
skydark 2013-06-08 13:00:04 +08:00
一个月 * 48 也是四年……
目测lz只是在跳槽 Java 前顺势骗分的[good][like][so what] |
21
kuphrer 2013-06-08 13:06:12 +08:00 via iPad
Troll到处都有啊
|
22
yuelang85 2013-06-08 13:27:40 +08:00
|
23
lyoe 2013-06-08 13:27:47 +08:00
LZ在哪家公司上班啊?居然让你们到服务器直接修改代码。
目测LZ是来骗分的 |
24
sudayly OP 统一回复吧。
我是做离线数据处理的,使用map reduce编程框架对数据进行处理。 现在的情况是job用c++开发,但组织job的输入输出还有配置内容的脚本是用python写的,在写这些脚本的时候碰到的这些问题。 至于我个人,平时主要用c++和java,python的确不怎么用,不过在学校里曾用其作过实验自动化与画数据图等。 这个帖子主要有两个目的,一是图謿,二是骗分。 |
25
lemayi 2013-06-08 15:02:11 +08:00 1
我来问下OT是个什么东西?
|
27
swulling 2013-06-08 15:22:31 +08:00
@hooluupog unity是python写的?gnome3是python写的?gtk2是python写的?gtk3是python写的?你随便找个unity/gnome源码统计下是c++多还是python多还是javascript多
|
28
hooluupog 2013-06-08 16:02:58 +08:00
@ swulling GUI APP,GUI tookit
|
29
wodemyworld 2013-06-08 19:39:56 +08:00
1,需要类型验证的地方居然还用原生的基本类型?那就是你自己的问题了吧,输入变量怎么可以是原始类型呢,你可以自己定义类啊,真是晕死
2,在服务器上编程,你太搞笑了吧,真服了,3流的自虐程序员么 4,这跟python有个jb关系,java、.net都可以有函数式编程,风格不统一这是人的问题,你让他们统一啊,不统一就直接开了,这种屁事也能算到python头上来 |
30
bhuztez 2013-06-08 19:42:27 +08:00
+1
Static analysis of C code is useful, but if you are thinking of starting a new project, choose a sensible language! Don't start new projects in C or C++, or dynamic languages like Perl and Python which leave errors in code for customers to find. http://people.redhat.com/~rjones/cil-analysis-of-libvirt/ |
31
zjxubinbin 2013-06-08 21:53:15 +08:00
楼主教会了我怎么获得论坛金币啊::::制造一个被喷的话题....
|
32
ipconfiger 2013-06-08 22:05:38 +08:00
虎躯一震,送五分走人。
1.世界上没有无坑的语言,只有掉坑里的程序猿。 2.目测坡主是个java程序员,或者csharp的 |
33
lddhbu 2013-06-08 22:29:09 +08:00
楼主在服务器上修改代码?是否懂什么叫流程管理、版本管理
|
34
Hyperion 2013-06-08 22:32:46 +08:00
建议LZ到cpyug邮件列表里发一帖, 效果会比在这里跟好!~
|
35
metaclass 2013-06-08 22:45:32 +08:00
目测“断断续续地用了python已经有4年了” == “断断续续地用了python已经有4天了”,每天发现一个问题,正好4个,然后上来吐槽
|
36
nil 2013-06-09 00:11:57 +08:00
求解释:
为啥方法有显性self参数 为啥len()不是方法是函数 为啥没有len()方法 为啥lambda这么残疾 为啥python能火起来。。。 |
37
jjx 2013-06-09 04:10:27 +08:00
这个就像找女朋友一下
不适合你,就不要用了, 像俺,经历了 近10种语言后,才发现python是最爱 |
38
metaclass 2013-06-09 08:14:42 +08:00
@nil
为啥方法有显性self参数 —— 你是做Java的(或者你看下Python 3) 为啥len()不是方法是函数 —— 你是做Java的 为啥没有len()方法 —— 你是做Java的 为啥lambda这么残疾 —— 你是做Java的(8也要有lambda了) 为啥python能火起来。。。 —— 你是做Java的 总结:你就是做Java的 |
39
nil 2013-06-09 16:01:32 +08:00
|
40
feihu 2013-06-09 16:11:51 +08:00
传说douban工程师也比较喜欢服务器上改代码,求辟谣。
|
41
piniing 2013-06-09 16:26:59 +08:00
哈哈,楼主来搞笑的,大家不要太认真
|
43
sudayly OP @feihu 非豆瓣。因为开发代码都是在集群的一台机器上开发的,测试可能又会到另外一个集群上跑,而不是每台机器上都有对应的vim插件的。
|
44
greatghoul 2013-06-09 18:41:53 +08:00
楼主太二了,必定是 Java 社区过来的。
|
45
sudayly OP |
46
est 2013-06-09 18:50:58 +08:00
@nil 有self 还不好么。如果你觉得类太麻烦。别人类的方法直接拿过来就用。。。
otherClass.method(myInstance, param) > 为啥len()不是方法是函数 为啥没有len()方法 这个是你自己学艺不精吧? obj.__len__() 不是你想要的是啥? 我个人是比较讨厌 .NET 和 Javascript 里边遍地的 .toString() 恶心死了。 |
47
greatghoul 2013-06-09 21:59:33 +08:00
@sudayly 哥们你太会误解了。
首先,我觉得楼主的确有些二,并非 java 比较二。 在社区中发布这样观点鲜明,并具有一定攻击性的话题难道不二吗?当然也可以想挣些金币。 你列举的这几点与以往争论中一些 Java 腐的观点相当一致,因此有些结论。 其实我觉得 C++ 程序员似乎应该和 Python 更亲切才是。。。 1. 运行时崩溃这种事,和静态编译什么的真心关系不大,如果是一个没有什么水准的开发人员,即便有静态检查,代码跑起来也是各种坑,动态语言让你把精力集中到业务上,而不是去检查语法。 2. 使用 Vim 无需安装任何插件也可以方便的编写 Python 代码吧,完全不存在空白符混乱的问题,楼主显示 Vim 中毒不深。 3. 这些动态语言的 list 再美不过了 4. 所以这才叫动态语言,而且 Python 的强制缩进已经使代码可读性好很多了,再加上一些格式约定,代码风格完全不是问题。 5 块钱送上,楼主收好快走。 |
48
greatghoul 2013-06-09 22:04:15 +08:00
@sudayly 因为开发代码都是在集群的一台机器上开发的,测试可能又会到另外一个集群上跑,而不是每台机器上都有对应的vim插件的。
其实我觉得你们运行期程序各种崩溃就是因为你们这样乱改代码才导致的。 - 既然是很大的项目,代码肯定是要通过各种测试来保证质量的 - 修改流程必定是本地修改,跑完测试才能提交的吧,服务器上肯定是通过更新的吧 或者你们有 CI,哪里可能需要到服务器上手工改代码 你们没有用版本控制吗? |
49
nil 2013-06-09 22:55:20 +08:00 2
python社区看起来也是诸多脑残粉,楼主亮出几个观点,懂的说出反对意见,不懂的也不用人身攻击吧~ 有用的没提,又是二xx的,又是java程序员的大帽子猛劲扣。另外用什么语言至于搞出来那么大优越感么~ 囧rz。。。一个个的装13
python说起来也就是也就是一门全面平庸的语言,强制缩进语法毁誉参半,逼格不见得高到哪去吧;值得称道的就是一堆库,庞大的社区,不过看楼上几位的德行。。。 丫的,不应该乱说实话的 |
50
unionx 2013-06-10 05:25:22 +08:00
叫你们用Lisp你们又不用,哼
|
51
raptor 2013-06-13 11:35:53 +08:00
就我用过的主流程序语言来说(像汇编一类的非主流就不提了)……
1. C/C++/JAVA编译没错,运行崩溃的情形到处都是,碰上菜鸟留个野指针(C/C++),连错误都不知道上哪找去。 2. 自从我写程序开始,就从来不用tab字符(默认配置IDE或编辑器为一个tab等于4个空格,别说你不会配置vim,这种简单的事情不需要插件),缩进一律用空格,从来没有因此碰到问题……BTW:即使是写C/C++/JAVA,我也习惯整齐缩进。 3. 再好的设计也挡不住错误的使用,如果list对负索引丢出异常,你是不是又要怪它编译时不出错,运行时崩溃了呢? 4. 你一定没有用过C++……python的风格很统一,那就是pythonic,只是再好的风格也挡不住有人乱用,JAVA风格够严格了,一样会有人写出来惨不忍睹的代码。 |
52
zzcflying 2013-06-13 17:38:11 +08:00
很怀疑楼主是4年python developer。就第三点就看出来了。麻烦以后看完文档再出来吐槽。
|
53
ivenvd 2013-06-14 13:13:24 +08:00
楼主说不依赖于工具,却又依赖于编译器进行错误检查,不是自相矛盾么?
5 铜拿去。 |
54
Hyperion 2013-06-14 13:38:13 +08:00
@nil @sudayly 写一门爱一门有错吗? 往别人头上套装13的帽子, 先看看自己发的帖吧... 每个人都有自己的喜好别人就不能说了? 别人与你素不相识, 猜测一下有错吗?
不喜欢? 换! 不习惯? 换! 讨厌? 换! 换工作换工种还是换语言, 这我就没办法说了. 顺带一提我自己的喜好, 强制缩进真心好, 对付不喜欢缩进的人一枪一个准. java就说了, 反正我讨厌. 语言放在那里, 发这种抱怨帖, 意义? 语法会因这帖子改变? 我感觉, 说白了就是不会... 其实本身就是个没营养的题目, 自然让他沉下去是最好的办法. 最近发奇怪帖子的人, 都是不设头像的家伙啊. 5铜拿去, block, 不送! |