w***g 发帖数: 5958 | 1 而且生成出来的代码还需要人看!简直就是本末倒置了。
人写代码是为了让机器执行任务,最好的设计自然是应该把人写的代码和机器产生的数
据分开。Linux下也有lex/yacc, gperf, rpcgen等自动生成代码的工具,但那写都只是
作为中间数据直接传入编译器的,不需要人看的,中间代码也不用存入版本管理软件。
有些情况下因为现在技术水平制约,偶尔用机器产生代码是可以提高生产力。但是把这
个看成先进技术是不对的。
我知道你IDE用得很爽。大部分人用IDE都用得很爽,你自己爽爽就可以了。又不是什么
了不起的本事,也值得拿出来吹。 |
z****e 发帖数: 54598 | 2 错误
代码分成两部分
一部分是解释给机器去执行,也就是执行效率,这更多的是可行性
另外一部分是可读性,也就是你的代码需要便于他人阅读
不会造成混乱,也就是可维护性,项目之所以失败
很多时候不是因为代码不可执行,而是代码不可维护
别人看不懂,接盘的人看不懂,他自然也就做不下去
到最后,接盘的人发现,与其维护你的代码
不如推倒他自己做,这个时候,你的项目就已经失败了
软件工程最经典的一个图形就是维护成本随着时间的增长
呈指数级上升,最后挂了,没法维护,你这个搞毛
可行性只是第一步,能让机器执行,这个只是软件整个生命周期中
其实很微不足道的一步,谁写的代码机器执行不了了? |
z****e 发帖数: 54598 | 3 自动生成代码你不如说是自动生成注释
如果你纠结于代码行数的话
set/get读起来比case class要容易太多
set/get看不懂属于iq问题
case class看不懂,这个就是没学过,当然iq达不到也看不懂
没学过很正常,当你一个软件需要phd才能做的时候
多半前途就堪忧了,市场一般就小很多 |
p***o 发帖数: 1252 | 4 别提lex/yacc,每次都有问题,不是flex/bison版本太新没法生成中间代码,
就是gcc版本太新没法编译中间代码。
【在 w***g 的大作中提到】 : 而且生成出来的代码还需要人看!简直就是本末倒置了。 : 人写代码是为了让机器执行任务,最好的设计自然是应该把人写的代码和机器产生的数 : 据分开。Linux下也有lex/yacc, gperf, rpcgen等自动生成代码的工具,但那写都只是 : 作为中间数据直接传入编译器的,不需要人看的,中间代码也不用存入版本管理软件。 : 有些情况下因为现在技术水平制约,偶尔用机器产生代码是可以提高生产力。但是把这 : 个看成先进技术是不对的。 : 我知道你IDE用得很爽。大部分人用IDE都用得很爽,你自己爽爽就可以了。又不是什么 : 了不起的本事,也值得拿出来吹。
|
z****e 发帖数: 54598 | 5 qxc和古德霸其实一直都在说scala可读性差
也就是维护起来成本高昂,接盘太困难
python什么也都有类似的问题
big data python学生作业把叫兽看晕菜是常事
不过有人要是坚持认为叫兽iq不够,那我也没话说
java很繁琐,但是java代码你要说看不懂
嗯,这么多年,我好像还没怎么遇到过 |
z****e 发帖数: 54598 | 6 ide不值得吹
问题是有人吹千万行
那不妨看看这个骗子是怎么现形的
【在 w***g 的大作中提到】 : 而且生成出来的代码还需要人看!简直就是本末倒置了。 : 人写代码是为了让机器执行任务,最好的设计自然是应该把人写的代码和机器产生的数 : 据分开。Linux下也有lex/yacc, gperf, rpcgen等自动生成代码的工具,但那写都只是 : 作为中间数据直接传入编译器的,不需要人看的,中间代码也不用存入版本管理软件。 : 有些情况下因为现在技术水平制约,偶尔用机器产生代码是可以提高生产力。但是把这 : 个看成先进技术是不对的。 : 我知道你IDE用得很爽。大部分人用IDE都用得很爽,你自己爽爽就可以了。又不是什么 : 了不起的本事,也值得拿出来吹。
|
c******g 发帖数: 4889 | 7 蟒蛇不是老推崇说只有一种方法写代码吗?怎么代码也没有易读性?
【在 z****e 的大作中提到】 : qxc和古德霸其实一直都在说scala可读性差 : 也就是维护起来成本高昂,接盘太困难 : python什么也都有类似的问题 : big data python学生作业把叫兽看晕菜是常事 : 不过有人要是坚持认为叫兽iq不够,那我也没话说 : java很繁琐,但是java代码你要说看不懂 : 嗯,这么多年,我好像还没怎么遇到过
|
w***g 发帖数: 5958 | 8 逆混淆了两个不同的概念。如果确定语言和库,你说的那套都成立。
我是说如果一个语言/库抽象得足够好才会产生需要机器自动生成代码的情况。
以前的C++编译器产生的是C代码,有时候还要人手工改了才能用。
有人看到的是这么做牛B的一面,有人看到的是不足的一面。
显然是后者促进了技术的发展。我相信你做得都是有用的东西,
但我觉得你IDE点多了眼界有点太狭隘了。
所有机械的劳动,包括点IDE,包括用vi写boilerplate代码,最终都应该
被机器代替。
【在 z****e 的大作中提到】 : 错误 : 代码分成两部分 : 一部分是解释给机器去执行,也就是执行效率,这更多的是可行性 : 另外一部分是可读性,也就是你的代码需要便于他人阅读 : 不会造成混乱,也就是可维护性,项目之所以失败 : 很多时候不是因为代码不可执行,而是代码不可维护 : 别人看不懂,接盘的人看不懂,他自然也就做不下去 : 到最后,接盘的人发现,与其维护你的代码 : 不如推倒他自己做,这个时候,你的项目就已经失败了 : 软件工程最经典的一个图形就是维护成本随着时间的增长
|
z****e 发帖数: 54598 | 9 定义的变量你不知道是啥东西
比如col,cols,set,sets,ss
这种乱七八糟的变量满天飞
压根没有声明,就算看到了声明
你也不知道中间是不是被改动过
到最后乱七八糟
一种方法主要说的是动词,函数
而非变量,变量名这个你控制不了
java一旦定下来,就不允许换类型
ide你可以通过快捷查找定位变量的声明
然后你看到声明,就知道,哦,是这个东西
然后不会变来变去
【在 c******g 的大作中提到】 : 蟒蛇不是老推崇说只有一种方法写代码吗?怎么代码也没有易读性?
|
w***g 发帖数: 5958 | 10 这些都是过时技术了,现在写parser都是直接上库了,C++和haskell写出来都很漂亮。
java不会没有对应的库。正好证明了我的观点。
【在 p***o 的大作中提到】 : 别提lex/yacc,每次都有问题,不是flex/bison版本太新没法生成中间代码, : 就是gcc版本太新没法编译中间代码。
|
|
|
z****e 发帖数: 54598 | 11 那你太理想了
等机器会写代码
skynet差不多可以准备屠杀人类了
现阶段还只能指望人来维护代码
【在 w***g 的大作中提到】 : 逆混淆了两个不同的概念。如果确定语言和库,你说的那套都成立。 : 我是说如果一个语言/库抽象得足够好才会产生需要机器自动生成代码的情况。 : 以前的C++编译器产生的是C代码,有时候还要人手工改了才能用。 : 有人看到的是这么做牛B的一面,有人看到的是不足的一面。 : 显然是后者促进了技术的发展。我相信你做得都是有用的东西, : 但我觉得你IDE点多了眼界有点太狭隘了。 : 所有机械的劳动,包括点IDE,包括用vi写boilerplate代码,最终都应该 : 被机器代替。
|
w***g 发帖数: 5958 | 12 看你是想造机器还是想维护机器了。有人看到的是现有的机器提供了很多就业机会,
有人看到的是新机器的发明会摧毁很多现有的职业。很多时候不是能力大小问题,
而是观念问题。
我要是哪天发现工作变得越来越容易了,我会开始担心饭碗问题。
【在 z****e 的大作中提到】 : 那你太理想了 : 等机器会写代码 : skynet差不多可以准备屠杀人类了 : 现阶段还只能指望人来维护代码
|
z****e 发帖数: 54598 | 13 ejb时代就有很多人认为机器可以自动书写ejb了
结果ejb的失败不是因为机器搞不定
而是很多人搞不定,看不懂ejb里面的各种符号
尤其是xml,所以挂了,现阶段你只能指望人
机器要智能,还有很长的距离要走
【在 w***g 的大作中提到】 : 看你是想造机器还是想维护机器了。有人看到的是现有的机器提供了很多就业机会, : 有人看到的是新机器的发明会摧毁很多现有的职业。很多时候不是能力大小问题, : 而是观念问题。 : 我要是哪天发现工作变得越来越容易了,我会开始担心饭碗问题。
|
z****e 发帖数: 54598 | 14 我担心饭碗问题啊
所以我一直在探索新的领域
别人做过的,我就不感兴趣了
因为很难有什么学习的可能性
顶多说是我会抄而已
你不是phd嘛?phd没教你这个?
phd没有鼓励你创新?
【在 w***g 的大作中提到】 : 看你是想造机器还是想维护机器了。有人看到的是现有的机器提供了很多就业机会, : 有人看到的是新机器的发明会摧毁很多现有的职业。很多时候不是能力大小问题, : 而是观念问题。 : 我要是哪天发现工作变得越来越容易了,我会开始担心饭碗问题。
|
b*******s 发帖数: 5216 | 15 second this
【在 w***g 的大作中提到】 : 看你是想造机器还是想维护机器了。有人看到的是现有的机器提供了很多就业机会, : 有人看到的是新机器的发明会摧毁很多现有的职业。很多时候不是能力大小问题, : 而是观念问题。 : 我要是哪天发现工作变得越来越容易了,我会开始担心饭碗问题。
|
f******x 发帖数: 98 | 16 LISP 几十年前已经给出正解了, IDE 生成code的功能和LISP macro比是纯粹小儿科。 |
C**********r 发帖数: 8189 | 17
蟒蛇可读性高,机器运行慢。所以学校拿来教学生。
机器生产代码其实有很实用的地方的,程序猿可以写高级语言,然后生成的低级语言可
以比程序猿自己去写低级语言要运行的快。当然这是case-by-case的。
语言的进步很有意思的,不要局限于某一种(类)语言很重要。
【在 c******g 的大作中提到】 : 蟒蛇不是老推崇说只有一种方法写代码吗?怎么代码也没有易读性?
|
z****e 发帖数: 54598 | 18 变量多一点就乱了
可读性高啥
你说hello world可读性高,我信
你说python代码可读性高
lol
google都有人做python做挂了
很多东西都只是宣传,骗子太多
做下去就发现,压根不是那么一回事
【在 C**********r 的大作中提到】 : : 蟒蛇可读性高,机器运行慢。所以学校拿来教学生。 : 机器生产代码其实有很实用的地方的,程序猿可以写高级语言,然后生成的低级语言可 : 以比程序猿自己去写低级语言要运行的快。当然这是case-by-case的。 : 语言的进步很有意思的,不要局限于某一种(类)语言很重要。
|
ET 发帖数: 10701 | 19 https://github.com/google/j2objc
java -> objective-C
google's project. I heard Google internal uses it a lot.
【在 w***g 的大作中提到】 : 而且生成出来的代码还需要人看!简直就是本末倒置了。 : 人写代码是为了让机器执行任务,最好的设计自然是应该把人写的代码和机器产生的数 : 据分开。Linux下也有lex/yacc, gperf, rpcgen等自动生成代码的工具,但那写都只是 : 作为中间数据直接传入编译器的,不需要人看的,中间代码也不用存入版本管理软件。 : 有些情况下因为现在技术水平制约,偶尔用机器产生代码是可以提高生产力。但是把这 : 个看成先进技术是不对的。 : 我知道你IDE用得很爽。大部分人用IDE都用得很爽,你自己爽爽就可以了。又不是什么 : 了不起的本事,也值得拿出来吹。
|
g****t 发帖数: 31659 | 20 Facts:
1.你开的车的刹车电控系统,很可能相当一部分c code
是simulink 写好自动生成c。
2.多年前我还有个专利可以把相当
一部分修改Resulted c的工作都给省掉。
不见得人工写的代码就能让车的事故和召回少些。
【在 w***g 的大作中提到】 : 而且生成出来的代码还需要人看!简直就是本末倒置了。 : 人写代码是为了让机器执行任务,最好的设计自然是应该把人写的代码和机器产生的数 : 据分开。Linux下也有lex/yacc, gperf, rpcgen等自动生成代码的工具,但那写都只是 : 作为中间数据直接传入编译器的,不需要人看的,中间代码也不用存入版本管理软件。 : 有些情况下因为现在技术水平制约,偶尔用机器产生代码是可以提高生产力。但是把这 : 个看成先进技术是不对的。 : 我知道你IDE用得很爽。大部分人用IDE都用得很爽,你自己爽爽就可以了。又不是什么 : 了不起的本事,也值得拿出来吹。
|
|
|
g****t 发帖数: 31659 | 21 机器生产代码很多时候错误率低.
【在 C**********r 的大作中提到】 : : 蟒蛇可读性高,机器运行慢。所以学校拿来教学生。 : 机器生产代码其实有很实用的地方的,程序猿可以写高级语言,然后生成的低级语言可 : 以比程序猿自己去写低级语言要运行的快。当然这是case-by-case的。 : 语言的进步很有意思的,不要局限于某一种(类)语言很重要。
|
v*******e 发帖数: 11604 | 22 python小程序可读性高。
大程序可能成问题。 |
D***n 发帖数: 6804 | 23 算了吧,Java是那些混日子人的天堂语言。
看起来一大堆,实际上大多数都是一些没有用的自动代码,干货特少。阅读调试的时候
才烦人,经常在一大堆文件里跳来跳去。
Python的语言一句就是是实在在一句,简洁没什么废话。
只不过现在支持的语言特性太多了,要是能精简一些,提高性能(PYPY已经做的很不错
),那干掉java这种老旧语言指日可待。
【在 z****e 的大作中提到】 : 错误 : 代码分成两部分 : 一部分是解释给机器去执行,也就是执行效率,这更多的是可行性 : 另外一部分是可读性,也就是你的代码需要便于他人阅读 : 不会造成混乱,也就是可维护性,项目之所以失败 : 很多时候不是因为代码不可执行,而是代码不可维护 : 别人看不懂,接盘的人看不懂,他自然也就做不下去 : 到最后,接盘的人发现,与其维护你的代码 : 不如推倒他自己做,这个时候,你的项目就已经失败了 : 软件工程最经典的一个图形就是维护成本随着时间的增长
|
D***n 发帖数: 6804 | 24 我们这里也有上万行的python程序。当然这上万行的Python放到Java就是小10万行+几
十个jar了。
说python大程序有问题的都是module本身没搞好。
【在 v*******e 的大作中提到】 : python小程序可读性高。 : 大程序可能成问题。
|
g*****g 发帖数: 34805 | 25 上万行的有啥好吹得,eclipse一个项目都61M.
【在 D***n 的大作中提到】 : 我们这里也有上万行的python程序。当然这上万行的Python放到Java就是小10万行+几 : 十个jar了。 : 说python大程序有问题的都是module本身没搞好。
|
D***n 发帖数: 6804 | 26 恩,好大,里面有多少是自动生成的代码?有多少是人真正写的?
【在 g*****g 的大作中提到】 : 上万行的有啥好吹得,eclipse一个项目都61M.
|
D***n 发帖数: 6804 | 27 变量一多就乱了? LOL
听起来像某些人计算机基础课不及格,连scoping都不会。
Python 有能多重继承的class,有module,有function
你还想要什么?
【在 z****e 的大作中提到】 : 变量多一点就乱了 : 可读性高啥 : 你说hello world可读性高,我信 : 你说python代码可读性高 : lol : google都有人做python做挂了 : 很多东西都只是宣传,骗子太多 : 做下去就发现,压根不是那么一回事
|
z****e 发帖数: 54598 | 28 lol
你说叫兽基础课不及格?
那你怎么不去数数apache到底哪个语言多?
你小学算术及格了没?
【在 D***n 的大作中提到】 : 变量一多就乱了? LOL : 听起来像某些人计算机基础课不及格,连scoping都不会。 : Python 有能多重继承的class,有module,有function : 你还想要什么?
|
z****e 发帖数: 54598 | 29 什么干货?
又装逼
你的代码除了给机器下命令以外
有用到初中数学么?
100以内加减乘除有了多少?
这也叫干货?
你除了所谓的性能以外还说得其他度量不?
是不是除了快,你其他什么都可以不考虑了?
【在 D***n 的大作中提到】 : 算了吧,Java是那些混日子人的天堂语言。 : 看起来一大堆,实际上大多数都是一些没有用的自动代码,干货特少。阅读调试的时候 : 才烦人,经常在一大堆文件里跳来跳去。 : Python的语言一句就是是实在在一句,简洁没什么废话。 : 只不过现在支持的语言特性太多了,要是能精简一些,提高性能(PYPY已经做的很不错 : ),那干掉java这种老旧语言指日可待。
|
z****e 发帖数: 54598 | 30 lol
这样做也便于维护
要写成上万行得java代码也不是不可以
全部扔static里面去就行了
但是一个文件超过5000行的代码属于不可维护的
这就是屎坑
傻逼看了屎坑才不跑,非要在里面呆着
实践中,一般超过500行就要分了,已经是上限了
200行就分比较理想
【在 D***n 的大作中提到】 : 我们这里也有上万行的python程序。当然这上万行的Python放到Java就是小10万行+几 : 十个jar了。 : 说python大程序有问题的都是module本身没搞好。
|
|
|
h*****a 发帖数: 1718 | 31 这个感觉不太合理。系统规模大了,目前在后端Java还是首选。Python上手快,创业初
期搞搞或者写写script不错。
【在 D***n 的大作中提到】 : 算了吧,Java是那些混日子人的天堂语言。 : 看起来一大堆,实际上大多数都是一些没有用的自动代码,干货特少。阅读调试的时候 : 才烦人,经常在一大堆文件里跳来跳去。 : Python的语言一句就是是实在在一句,简洁没什么废话。 : 只不过现在支持的语言特性太多了,要是能精简一些,提高性能(PYPY已经做的很不错 : ),那干掉java这种老旧语言指日可待。
|
h*****a 发帖数: 1718 | 32 自动生成的代码不是什么问题吧。读代码有几个人一行一行读啊。IDE还能让读code更
容易。
【在 D***n 的大作中提到】 : 恩,好大,里面有多少是自动生成的代码?有多少是人真正写的?
|