中国开发网: 论坛: 程序员情感CBD: 贴子 346114
haitao
上次的动态语言的问题,大牛还没评判呢。。。
└看来是我的表达能力太弱了。。。。重新叙述如下 [haitao](548) 11:28:27 2006-06-17
│ { 在相同的开发模式、相同的人数下,一个人能控制的代码量是有极限的,假设为1万行--
│ { a
│ { 按旧到新排列:汇编语言、java、python都是1万行
│ { (其实,旧的语言一般更难控制,人能控制的极限行数应该更少,这里姑且认为一样吧)
│ {
│ { 但是语言本身的表达、描述、控制的效率(平均到每行)是有差异的
│ { 估计java的表达能力是汇编的5倍,python的表达能力是java的5倍--b
│ { 以java的1万行为基准,汇编大约要5万行才能实现同样的功能效果,而python可能只需要2
│ { 千行
│ {
│ { 再套用一个人能控制的代码量的极限:1万行
│ { 再以java为基准,1万行的汇编代码,只能实现java的2千行的功能,而1万行的python已经
│ { 能实现5万行java能实现的效果了--c
│ {
│ { 再套用一个规则:项目的复杂度与代码量成平方或指数的关系--d
│ { 5万行java的项目的复杂度已经是1万行java的项目复制度的5^2(=25)或2^5(=
│ { 32)倍了
│ { 所以,结论是:一个人用不同语言,能控制的项目的复杂度极限分别为:
│ { 以java为基准,设1万行java的复杂度为:X
│ { 汇编:X/25或X/32
│ { python:X*25或X*32
│ { 考虑到python目前尚无好用的跟踪调试手段,保守一点,应该也有X*5吧



└这些新的语言,表达能力也比较强悍/精炼 [haitao](86) 17:27:06 2006-06-16
│ { 这些新的语言,表达能力也比较强悍/精炼
│ { 原来java需要1000行的,它们只要200行就行了
│ { 所以,比一般想象中的刚刚够复杂的系统再大5倍之内的系统,它们还是都能应付的
├Python可是比java还先出道的 [leejd](0) 17:28:00 2006-06-16
├所以后面的是怎么推算出来的? [Miracle](0) 17:29:00 2006-06-16
│└严格来推算,应该是25倍吧 [haitao](36) 17:30:58 2006-06-16
│ │ { 严格来推算,应该是25倍吧
│ │ { 代码量的增加导致的复杂度是加速增加的。。。
│ └如果按指数增加呢? [Miracle](0) 17:33:00 2006-06-16
│ └那就是新语言足以胜任的目标系统的复杂度极限,还要再大。。。 [haitao](64) 17:...
│ │ { 标题:那就是新语言足以胜任的目标系统的复杂度极限,还要再大。。。 [haitao]
│ │ { (64) 17:38:24 2006-06-16
│ │ { 正文:那就是新语言足以胜任的目标系统的复杂度极限,还要再大。。。
│ │ { 是 不采用严格控制的java 所能开发的系统的复杂度极限的32倍!
│ ├五体投地,拜倒 [Miracle](0) 17:39:00 2006-06-16
│ │└好像逻辑没什么错吧。。。 [haitao](139) 17:49:45 2006-06-16
│ │ { 不采用严格控制的java 所能开发的系统的复杂度极限为X,用java代码衡量,大
│ │ { 约10000行(假设)的话
│ │ { 用python开发只要2000行就行了
│ │ { 如果一个系统,python也需要10000行,java就需要50000行,
│ │ { 那就是说这个系统的复杂度已经是X的32倍了。。。
│ └haitao 同学真是比较结棍的说 [holly](0) 01:25:00 2006-06-17
│ └技术上的讨论,不许BT... [haitao](42) 08:59:57 2006-06-17
│ │ { 好像逻辑没什么错吧。。。 (139字) (haitao [11] 昨天 17:49&
│ │ { #41;
│ └代码效率高5倍,能控制的项目的代码规模也可以大5倍,换算成复杂度,就是?..
│ │ { 标题:代码效率高5倍,能控制的项目的代码规模也可以大5倍,换算成复杂度
│ │ { ,就是大25、32倍 [haitao](124) 09:26:23 2006-06-17
│ │ { 正文:当然这是理论值,所以最初保守的估计是能控制的项目的复杂度可以大
│ │ { 5倍
│ │ {
│ │ { 就像以前只能用汇编语言,一般人能写的程序都比较简单的
│ │ { 有了c/c++后,一般人能写的程序也可以复杂一些了
│ │ { 有了delphi/vb,一般人能写的程序就可以更复杂了
│ │ { 。。。
│ └这个逻辑是错误的. [holly](38) 10:01:19 2006-06-17
│ │ { 跟 100 个人能以 1/10 的时间完成 10 个人做的项目的逻辑一样错误
│ └我的判断的前提是:一个人能控制的代码量是恒定的(在同样人数、同样?..
│ { 标题:我的判断的前提是:一个人能控制的代码量是恒定的(在同样人数
│ { 、同样管理模式的项目中) [haitao](309) 10:41:14 2006-06-17
│ { 正文:所以,我的判断中的新语言和旧语言开发,都是在同样人数、同样
│ { 管理模式下
│ { 这个规则我知道:在非严格、有效控制的模式下,多人合作开发时带来的
│ { 沟通、协调的困难会抵消人多在数量上优势
│ {
│ { 代码(本身的表达、描述、控制)效率高了,
│ { 在同样人数的开发过程中,
│ { 单人能控制的代码量并没变,
│ { 但是同样行数的代码量,新语言能完成的功能(复杂度)已经提高了很多
│ { 倍
│ {
│ { 另一个规则:代码量的增加,会导致复杂都加速(而不是线性)增加
│ { 在同样人数的开发过程中,
│ { 单人能控制的代码量并没变,
│ { 但是换算成旧语言(java)的代码量,两者就会有5倍的差距了
│ { 对应的项目的复杂度按旧语言的代码量计算,对应地,就有5^2或2^5的差
│ { 距了
├逻辑混乱了,请回答一下小m的问题 [pigprince](0) 17:31:00 2006-06-16
│├海涛只是从代码上看,没有考虑到有些语言是提供了企业级容器之类的东西的 [leejd](0)...
│││ { 标题:海涛只是从代码上看,没有考虑到有些语言是提供了企业级容器之类的东西的 [l
│││ { eejd](0) 17:33:00 2006-06-16
│││ { 正文:--无内容--
││└企业级容器,双方都有吧 [haitao](5) 17:39:26 2006-06-16
││ │ { 算是扯平了
││ └有是一回事,规模又是另外一回事吧 [leejd](16) 17:40:23 2006-06-16
││ │ { 就像你自卫,用的是拳头还是刀子啊
││ └所以要等好的企业级容器。。。 [haitao](49) 17:42:15 2006-06-16
││ │ { 这件事python目前不如ruby的地方了。。。
││ │ { 希望python的好的企业级容器快点出来。。。
││ └看看Zope吧,现在用Zope做系统的已经很多了 [leejd](0) 17:45:00 2006-06-16
│└以后禁止叫我小M,我快当爹了,你还早呢,我比你高一个档次了,小猪猪 [Miracle](0) ...
│ │ { 标题:以后禁止叫我小M,我快当爹了,你还早呢,我比你高一个档次了,小猪猪 [Mira
│ │ { cle](0) 17:38:00 2006-06-16
│ │ { 正文:--无内容--
│ ├嗯,叫M老! [leejd](0) 17:41:00 2006-06-16
│ ├对于你来说,在我面前基本上永远是小m,当爷爷了也还是小m [pigprince](0) 17:41:0...
│ ││ { 标题:对于你来说,在我面前基本上永远是小m,当爷爷了也还是小m [pigprince](0)
│ ││ { 17:41:00 2006-06-16
│ ││ { 正文:--无内容--
│ │└我考,那我以后就叫你老猪猪 [Miracle](0) 17:42:00 2006-06-16
│ │ ├唉,已经这样了 [pigprince](10) 17:43:37 2006-06-16
│ │ ││ { 靠,他们都管偶叫老猪
│ │ │└哈哈。 [Miracle](0) 17:44:00 2006-06-16
│ │ └感觉像是花花叫的 [leejd](0) 17:46:00 2006-06-16
│ │ └据我推测花花应该叫他小强的。 [Miracle](0) 17:47:00 2006-06-16
│ └升级太快成本很高的。 [pcplayer](0) 17:45:00 2006-06-16
│ └但是等级高了拉风啊。 [Miracle](0) 17:45:00 2006-06-16
│ └拉风不成反倒屎了把米吧 [leejd](0) 17:47:00 2006-06-16
│ └你有娃没有? [Miracle](0) 17:49:00 2006-06-16
│ └天机不可泄漏! (空) (leejd [1] 今天 17:41) [leejd](0) 17:52:00 2006-0...
│ { 标题:天机不可泄漏! (空) (leejd [1] 今天 17:41) [leejd](0) 17:52:0
│ { 0 2006-06-16
│ { 正文:--无内容--
└看来是我的表达能力太弱了。。。。重新叙述如下 [haitao](548) 11:28:27 2006-06-17
│ { 在相同的开发模式、相同的人数下,一个人能控制的代码量是有极限的,假设为1万行--
│ { a
│ { 按旧到新排列:汇编语言、java、python都是1万行
│ { (其实,旧的语言一般更难控制,人能控制的极限行数应该更少,这里姑且认为一样吧)
│ {
│ { 但是语言本身的表达、描述、控制的效率(平均到每行)是有差异的
│ { 估计java的表达能力是汇编的5倍,python的表达能力是java的5倍--b
│ { 以java的1万行为基准,汇编大约要5万行才能实现同样的功能效果,而python可能只需要2
│ { 千行
│ {
│ { 再套用一个人能控制的代码量的极限:1万行
│ { 再以java为基准,1万行的汇编代码,只能实现java的2千行的功能,而1万行的python已经
│ { 能实现5万行java能实现的效果了--c
│ {
│ { 再套用一个规则:项目的复杂度与代码量成平方或指数的关系--d
│ { 5万行java的项目的复杂度已经是1万行java的项目复制度的5^2(=25)或2^5(=
│ { 32)倍了
│ { 所以,结论是:一个人用不同语言,能控制的项目的复杂度极限分别为:
│ { 以java为基准,设1万行java的复杂度为:X
│ { 汇编:X/25或X/32
│ { python:X*25或X*32
│ { 考虑到python目前尚无好用的跟踪调试手段,保守一点,应该也有X*5吧
└你只是说了语言层面的,对应的类库有没有考虑呢? [leejd](75) 11:33:43 2006-06-17
│ { 譬如说,对于某一个行业,java已经有比较完整的类库了,但是Python没有,需要从头开
│ { 始构造,你还会认为Python的工作量还是java的1/5吗?
└只比较语言层面,具体的行业,谁知道呢 [haitao](63) 11:48:01 2006-06-17
{ 强悍的语言,带来的好处是可以随便完成的项目的复杂度也会大大提高。。。
{
{ 当然,超过这个极限,还是要比谁的软件工程应用的好了
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录