作者mahoihei (mathematic)
看板C_and_CPP
标题[问题] 作为一个程式设计人员,有可以完全不碰C,只用JAVA吗
时间Sun Oct 25 15:37:44 2009
看到C/C++的指标就想吐...
但看了很多文章都说C/C++都是必学的
相较之下JAVA简洁多了
有可以完全不学C/C++吗....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 119.236.211.97
1F:推 twotwoone:可以啊,一个流行中的语言学到专精也是能混口饭吃 10/25 15:45
2F:→ twotwoone:所谓必学,应该是指,如果你打算学多种语言情况下 10/25 15:46
3F:→ twotwoone:至少选个C/C++会不错的意思 (至少比选VB强吧) 10/25 15:46
4F:→ james732:只要你上课用不到 以後工作也用不到就无所谓吧 10/25 15:48
5F:→ james732:Java练到顶尖的话 前途应该也挺不错的 XD 10/25 15:48
6F:推 KanoLoa:不太懂point,要把语言练到顶尖 XD? 10/25 15:59
7F:推 costbook:pointer 10/25 16:01
8F:→ costbook:在Java没有 10/25 16:01
9F:→ costbook:对了,学Java还是会碰到OOA&D的问题 10/25 16:02
10F:推 SILee:我一直觉得会说弄不懂pointer的人是根本不熟电脑的运作原理 10/25 16:09
11F:→ SILee:对电脑运作原理了解的人会觉得pointer是很直观易懂的东西 10/25 16:10
12F:推 joefaq:推楼上 pointer没想像中难 10/25 16:11
13F:→ joefaq:说难的话Java更难 很好上手 但是想要专精非常困难 10/25 16:12
14F:→ SILee:不懂这些东西要靠纯粹写AP混口饭吃当然OK 10/25 16:13
15F:→ SILee:但是要再更精进成为程式高手或想走学术路线会有障碍 10/25 16:14
16F:推 twotwoone:每个人的背景、学过得东西本来就不一样 10/25 16:14
我不是不会用pointer,是看到就想吐...是不想用...话说到底为什麽
很多明明不用用指标就能做到的工作,但又要用指标来做呢??
※ 编辑: mahoihei 来自: 119.236.211.97 (10/25 16:16)
17F:→ twotwoone:如果熟组合语言跟一些额外东西的话,是比较容易对指标 10/25 16:15
18F:→ twotwoone:理解。但懂指标对於写现代的应用程式帮助到底多大我存疑 10/25 16:15
※ 编辑: mahoihei 来自: 119.236.211.97 (10/25 16:16)
19F:推 VictorTom:其实我觉得, Java学到专精, 各种专用class(?)用到熟透, 10/25 16:16
20F:→ VictorTom:在一般应用领域未必会输C/C++. 只是小弟我自己的接触, 10/25 16:17
还有,其实我觉得C/C++最难用的是...没有string的变数类型...
※ 编辑: mahoihei 来自: 119.236.211.97 (10/25 16:18)
21F:→ VictorTom:OS底层, driver等, 这些比较核心的部份似乎还是用C/C++ 10/25 16:17
22F:→ VictorTom:的多, 或者更甚者应该说是C比较多. 不过这可能只是自己 10/25 16:18
23F:→ VictorTom:的工作环境, 不知道像MS/Google/Linux这些大型/商用的软 10/25 16:18
24F:→ VictorTom:体是怎麽去撰写的@_@" 10/25 16:19
25F:推 SILee:没有string的变数类型不是理由吧~~大不了自己实作一个lib啊 10/25 16:19
26F:→ VictorTom:C++有std:string吧?? 要说也是C没有专用string类型吧XD 10/25 16:19
27F:推 twotwoone:反正什麽都是假的,真的写程式赚到大钱才是真的 10/25 16:19
28F:→ VictorTom:另外, 说真的有很多东西不用指标小弟我还真不知道怎麽做 10/25 16:19
29F:→ SILee:实作这应该不难吧,而且作一次後就不用再做了 10/25 16:19
30F:→ VictorTom:, 我的认知是, Java不是没有用到指标/位址的观念, 只是 10/25 16:20
31F:→ VictorTom:实际写code的时候, 没有让你感觉到指标这东西的存在@_@" 10/25 16:20
小第我的C++还是停留在理论阶段...没时间去实作(学业太重)
可以举一两个没有指标不行的例指吗
※ 编辑: mahoihei 来自: 119.236.211.97 (10/25 16:23)
32F:→ VictorTom:话说回来, 其实我觉得了解之後指标真的不难, 而且威力强 10/25 16:22
33F:→ VictorTom:大; 不过写code的时候很容易写错就是了XD 10/25 16:22
34F:→ mahoihei:可以举一两个没有指标不行的例子吗? 10/25 16:25
35F:→ tinlans:reference 不过就是功能被阉割的 pointer,你当 reference 10/25 16:25
36F:推 SILee:AP的例子一时想不到,不过写driver和OS时可多了 10/25 16:25
37F:→ tinlans:用也没人管你吧。 10/25 16:25
38F:→ SILee:你要存取一个特定的MMIO位址不用pointer是要怎麽存取? 10/25 16:26
39F:→ mahoihei:reference 简单多了,当初我为了搞懂pointer,用了2个星期 10/25 16:27
40F:→ mahoihei:再去图书馆看了10多本C/C++的书 10/25 16:27
41F:→ VictorTom:是的, 写driver与底层相关的东西用pointer的可多了~_~ 10/25 16:28
42F:→ VictorTom:其实我觉得pointer是很简单的, 它是用起来很复杂而已:) 10/25 16:28
43F:→ tinlans:你把 pointer 当 reference 用,也不过是 . 跟 -> 的差别 10/25 16:28
44F:→ tinlans:,这样是有多难懂。 10/25 16:28
45F:→ VictorTom:AP端, 简单的像Linked-List或Tree, 当然我相信Java有自 10/25 16:29
46F:→ tinlans:另外 C++ 要写 OO 通常还是得用到 pointer, 10/25 16:29
47F:→ tinlans:reference 会有限制,你没办法让它重新参考其它物件。 10/25 16:29
48F:→ VictorTom:己的方式实作, 只是小弟我学惯C的人还真不知Java怎麽写. 10/25 16:29
49F:→ VictorTom:driver除了MMIO这个摆名是pointer/address以外, 和OS沟 10/25 16:30
50F:→ SILee:写AP的时候为了讲求弹性function pointer就很好用 10/25 16:30
51F:→ mahoihei:其实我一直搞不懂,C++是C的延伸吧,也比C易上手,为什麽 10/25 16:30
52F:→ VictorTom:通, 尤其UMD与KMD沟通时, 常常有自订大小的vendor私有资 10/25 16:30
53F:→ mahoihei:很多软件都用C写而不用C++?? 10/25 16:31
54F:→ VictorTom:料, 这东西也是靠pointer+cast才会比较好实作.... 10/25 16:31
55F:→ tinlans:C++ 不是 C 的延伸,它是 Simula 67 来的。 10/25 16:31
56F:→ VictorTom:C/C++看出现的谁早, 谁自然有比较多的历史资源可以用. 10/25 16:33
57F:→ tinlans:如果你是老板,有现成的功能已经用 C 写过了,你会想花钱 10/25 16:33
58F:→ tinlans:叫你的员工用 C++ 再写一遍吗? 10/25 16:33
59F:→ VictorTom:另外, 小弟我个人觉得procdure式的C比OO的C++容易trace 10/25 16:33
60F:推 SILee:mahoihei的问题Linus曾经跟人笔战过XDDDD 10/25 16:33
61F:→ VictorTom:Code说....Orz 10/25 16:33
62F:→ james732:我想问原po是怎麽用Java写linked-list的 (举手) 10/25 16:34
63F:→ twotwoone:C++比C容易上手,这...好吧,那至少比较不容易精通吧 10/25 16:34
64F:→ SILee:JAVA可以写link-list啦,只是用惯C/C++的人会觉得很麻烦 10/25 16:35
65F:→ VictorTom:除了cin/cout与string以外, 小弟我觉得C比较容易上手XDD 10/25 16:35
66F:→ james732:用Java ref写的linked-list 应与C的pointer会挺相似的?? 10/25 16:37
67F:→ twotwoone:题外话,台湾的名人中,我看那"蔡宝进"很爱学新程式语言 10/25 16:40
68F:→ netsphere:不爽不要用 10/25 17:43
69F:推 Ebergies:其实 JAVA 基本型态之外的都是 pointer 啊... = = 10/25 17:45
70F:推 wa120:java因为少了pointer 所以在速度上面输人一筹 10/25 18:11
71F:→ wa120:因为它需要用到更多的function call去描述pointer的运算 10/25 18:13
72F:→ wa120:我是这麽认为的 10/25 18:13
73F:→ james732:咦 Java的效能不是因为多了一层Virtual Machine吗? 10/25 18:25
75F:→ ducksteven:是 Reference 不是 Pointer 10/25 19:10
76F:→ saxontai:Reference = 有着语法糖衣包装的 Pointer...(烟) 10/25 19:29
77F:推 kvykn:如果你考虑效能、正确率,或者是不得不用指标的情况 10/25 21:01
78F:推 ctrlbreak:简单的说 你真的不懂指标 10/26 00:03
79F:→ ctrlbreak:指标是思想, 不是会不会用的问题. 10/26 00:05
80F:推 yu00928:不能用指标太痛苦了 10/26 01:29
81F:嘘 jlovet:很多事情可以不用pointer做,那你就不要用阿 10/26 12:29
82F:→ jlovet:你就把你看到指标的地方,改写成不用指标,就不恶心了 10/26 12:30