作者Aurim (Who cares?)
看板Soft_Job
标题Re: [请益] 请问学哪个比较实用
时间Fri Feb 26 09:46:16 2010
lgd1008底下那段说到底,并不跟我的说法有哪边有抵触吧,
毕竟仍然是不同的工具适合不同的工作。
如果你有一个很强的VM,可以自动做到底下说的一切或一部份,
只要条件适当,你当然会知道用它比较好、比较轻松。
再说,如果从这本机到天边一朵云的网路传输时间就比在本机解决问题慢,
那朵云再快也还是不够好啊,除非这样效能上不够好的选择有别的重大利多。
又如果离开VM来说,不管是用GPU加速或是用云端计算,
其实都是在前面有人提过了的「在更上层解决」。
我没有否定其他做法或者一定要限定使用某种做法,
今天如果这种「在更上层解决」或在演算法、组语作最佳化是更合适的,
或者乾脆诱拐客户改变功能需求来回避不好克服的效能问题比较省各种成本,
当然欢迎大家去用。
再且,GPU加速,以NV的来说,shader code/PTX -> GPU native code
这段也跟其他VM作JIT一样,存在各种效能最佳化的挑战。
不知道细节的人当然没得选择...。
我比较强调你要去了解自己用的工具,反组译别人家的code来看是其中一种手法。
我看了一大堆反组译後的code的心得就是,编译器生出来的东西,有些时候,
还是有可以再tune过的空间。如果追求那几%的效能改善很重要、很要紧,就去tune。
怎样子定义「可以接受」,这是人人不同的,每个公司、每个案子可能都有不同定义。
没有了解,没有比较,就没有得选择怎样子会比较好。
标题说学哪个比较实用,结果却看到一群人在谈哪个语言怎样子表示哪个资料结构,
那在我看来,就好像一群不同神的信徒在战谁家的神有怎样子的好处。
讲实用性,说得比较现实一点,不如说哪个东西对学的人的将来发展比较有帮助:
有机械语言/组合语言底子的人不太会受困於C/C++;
C/C++学得好的人,很少会受困於Java/C#/Javascript或各种网页程式语言。
这种时候,Python/Erlang/Lisp与其他语言的信徒又有许多话要说了。
但是在我来看,反正各种语言都是要在现行计算机结构底下运作的,
虽然标榜自己是神的很多,真主在不同平台都只有一个:机械语言。
从底层往上看,众生平等,鸡鸭狗猪、青菜跟萝卜还不都是食物;
所谓的执行效能,说到底,就是多少个CPU cycle在那边跑。
可能学IC design的人也跳进来,说机械语言还不是用硬体在实现,
所以哪个哪个硬体设计语言比较实用怎样......
我很想说「通通都会就不会烦恼这种问题」,就像meltice会说有钱就没问题一样,
不过那肯定是屁话。
对於只是想混口饭吃的人,我会说学PHP/xSP(.NET)比较快有饭碗,
从零开始到能够混一口饭吃的学习曲线短。
对於什麽事情都想搞懂的人,你已经知道我会建议什麽了:
通通都去玩玩看,比较比较,看看各个东西是怎麽运作的,很多事情会比较清楚。
不过这种人也不会来问哪个比较实用,自己就知道自己的路该怎麽走。
※ 引述《lgd1008 (lgd1008)》之铭言:
: 若是该 VM 发现该电脑上有特别的硬体, (如Java Chip)
: 或是发现 现在所执行的CPU的有支援某些 SSE 指令
: 或是连发现有装 显示卡 ,把显卡也拿来运算
: 或是异想天开地, 丢给最近很红的 ....天边一朵云 去计算
: 或是我所没写出来的, 更多种种的可能
: 原本让人觉得是 "overhead" 的 VM
: 却让100个指令的组语, 变成反而可能是 "最慢" 的了
: 当然, 听到这里, 可能有人就会想, 再用组语追逐上面提的种种可能...
: 甚至底下提到的GC, 自己也可以去实做出取代它的功能
: 但那就只是自己去实做出了一部份的高阶语言, 或VM , 或Java罢了
这要看各功能模组的独立程度如何,如果问题发生在没有替代道路的主干道上,
一个人搞出问题来,大家都会受波及。
这种事情会发生,如果不是这个人手误,通常就是因为他不了解别人的东西在
被他搞出问题的地方的行为模式跟预期结果,改变了别人预期会有的一些事。
通常就是搞出问题的人要负责收拾,其他人顶多看时程、情节轻重跟难易度
再决定要不要下去一起修。至於其他人,只好请他们resync到出事之前的版本,
先用旧版搭上他们自己正在弄的code来做测试,减轻被波及的损失而已。
不过我本来说的事情跟这样子不同。
我说的是,在够巨大的软体里,修别人的code里头发现的bug是很常态的事情。
固然每个人在一个已经有两三千万行C/C++ code的产品里的贡献都只是一小部分,
一个只有几十万行Java/JSP code的东西也常常是众人的心血结晶(吐血结晶?)。
有足够能力的人被上头的主管叫去处理别人搞烂的code,
所谓的能者多劳,是司空见惯的。
: 个人浅见
: -----
: 另外几百个人一起写code现实中是有的
: 不过如果其中每一个人的code, 都会跟另外几百人有关联
: 或是一个错误发生, 几百人都要一起找bug
: ...那这种案子算是很特别
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.10.18
1F:推 superpai:你组语 C++再强写web还是要受困於html、css和js(茶) 02/26 09:48
2F:推 ledia:所以要自己重写 browser ? XD 重写 httpd, 甚至底层 driver 02/26 10:47
3F:→ ledia:反正.... 不过就是受限在 cpu cycle 嘛~~~ 02/26 10:48
4F:→ kerickuo:我倒是想抗议 C/C++ 学得好的人很少受困於 Java XD 02/26 10:53
5F:→ kerickuo:何况 C 跟 C++ 两个都要学得好几乎是互斥的(逃) 02/26 10:54
6F:→ kerickuo:想当年我学 OO 可是吃足了苦头啊... 02/26 10:55
7F:→ iincho:这串已经快变成各说各话鬼打墙了吧...XD 02/26 12:01
8F:推 CGary:C跟C++不能同时学好是因为太多人把C++当成是C 的 ++ 版了... 02/26 12:07
9F:→ CGary:名称对人真是影响深远啊 02/26 12:07
10F:→ remmurds:在我看来C和C++根本就是两种不同的语言 02/26 12:54
11F:推 xsoho:想问若非本科系,只有三个月C的经验,要用Cuda做影像处理 02/26 14:23
12F:→ xsoho:对於未来职场的学习要如何规划,才能在业界中上不占弱势呢 02/26 14:25
13F:→ xsoho:现在打算改行 @@ 因为总觉得我好像迷路跑错地方了 02/26 14:26
14F:→ yauhh:语言不会是信仰.精通语言的语法结构,才能够使用对的资料结构 02/26 16:59
15F:→ yauhh:并不是相信或不信的问题.反观是不熟语法结构却坚信它也该怎 02/26 17:00
16F:→ yauhh:样从底层tune,才叫做信仰. 02/26 17:00
17F:→ yauhh:至於吃到饭论,真令人感到不屑,就好像说人学东西只以面试需求 02/26 17:03
18F:→ yauhh:而学;其他知识全都不重要. 刚好自我培养成粗工一个而已. 02/26 17:04
19F:→ yauhh:另外,就工作的愉快程度,在底层接线接大半天和高阶处理二者之 02/26 17:08
20F:→ yauhh:间,当然是後者愉快,同样都是为了加快速度,而速度只是相对的 02/26 17:09
21F:→ yauhh:感觉. 你为了感觉要埋进底层管线中晕头转向,很有价值吗? 02/26 17:09
22F:→ andymai:面试需求不一定只有要求熟悉语言和工具吧~很多是要求至少 02/26 21:25
23F:→ andymai:要有某些资料结构或领域知识的观念... 02/26 21:26
24F:→ andymai:补充一下~只是想到就说~并不是对y大的留言断章取义... 02/26 21:29
25F:→ Aurim:ledia: google不就啥都想自己重写吗?XD 02/27 10:22
26F:→ Aurim:碰过一个ntu ee master的小妹,学C一个月就用cuda作毕业专题 02/27 10:23
27F:→ Aurim:解数位电视广播的视讯 02/27 10:24
28F:→ Aurim:这真的很难取舍,她其实真的才开始写软体一个月...XD 02/27 10:25
29F:→ Aurim:可是她对问题想得出解答来...如果你是主管,你用不用她? 02/27 10:25
30F:→ Aurim:她以前都是做硬体的,大学做类比,研究所才转数位XD 02/27 10:27
31F:→ Aurim:yauhh: 我国三前很信尽量善用语法结构缩短原始码长度的想法 02/27 10:31
32F:→ Aurim:但是真的从底层分析起,才发现那样写出来的东西效能不见得好 02/27 10:31
33F:→ Aurim:以前机器比较慢,执行时间愈长,差个几%也会差很多 02/27 10:33
34F:→ Aurim:程式一写大,与其在语法结构上做手脚,不如走OO规划好架构 02/27 10:34
35F:→ Aurim:用封装跟多形作code reusability, 我觉得会省更多开发时间 02/27 10:34
36F:→ Aurim:以神人境界为自我要求目标的人,追寻效能极致的秘诀时, 02/27 10:40
37F:→ Aurim:不管是埋进底层去爬code,或是在演算法上思索,都会自得其乐 02/27 10:41
38F:→ Aurim:在自己手上发现自己不知道的新道理时,那种eureka!的感动 02/27 10:42
39F:→ Aurim:恐怕不是只会用现成语言与工具的人所能体会的 02/27 10:43
40F:推 Sany:A大你都能直接回一篇文了.... 02/27 13:15