主题:[投票]现在大三了,不知道该放弃c++ 还是重0开始学习 java
w904922993
[专家分:0] 发布于 2011-07-18 11:54:00
现在不知道该选择哪一个?c++ 已经打下了坚实的基础,但是看了看趋势,java 来势汹汹,实难选择,故 听一下前辈们的意见 ,何去何从?
回复列表 (共20个回复)
11 楼
toyasimple [专家分:820] 发布于 2011-07-24 23:32:00
如果你要学java, 还不如去学object-c, 去搞苹果的iOS或者mac os x 开发. 看趋势, 苹果才是来势汹汹.
12 楼
Chipset [专家分:16190] 发布于 2011-07-25 12:54:00
很久没有来看大家了,今天看到这样的话题就简要说两句。
我一直用C++,做汽车导航,或者说嵌入式的一个简单应用。我Java基本不会,尽管读研时学过所谓的Java程序设计,那点东西我觉得没有什么意义。
问题是楼主你个人爱好什么,毫无疑问在速度和内存要求不高但快速开发的应用中,Java甚至C#都是首选。例如我们的医保社保软件大部分用C#来写。Java的用途很多,我相信,但是我举不出几个例子,因为我不在这个领域混。
说真的做嵌入式,C用的很多,那是在过去,不过似乎有逐渐转向C++的趋势。至少导航原来都是用C写的,现在都上了C++,原因不详。我目前做的是第5代导航了,给宝马和奔驰汽车做。别看这么简单不起眼的应用,源代码量已经接近300万行了。
13 楼
cgl_lgs [专家分:21040] 发布于 2011-07-25 13:52:00
估计应该是因为C++确实比较好维护,且现在计算速度越来越快了:)还有就是C++开发只要不过度拘泥于OO的话,效率其实不会太低下的:)
14 楼
Chipset [专家分:16190] 发布于 2011-07-25 23:05:00
[quote]估计应该是因为C++确实比较好维护,且现在计算速度越来越快了:)还有就是C++开发只要不过度拘泥于OO的话,效率其实不会太低下的:)[/quote]
C++程序编译超级慢,但是编译后运行速度很快,至少运行速度不会比同样功能用C写的程序慢。
至于OO不OO的从来没有关心过,问题是什么是OO呢?更不懂什么设计模式,惭愧啊。
15 楼
Chipset [专家分:16190] 发布于 2011-07-25 23:08:00
[quote][quote]估计应该是因为C++确实比较好维护,且现在计算速度越来越快了:)还有就是C++开发只要不过度拘泥于OO的话,效率其实不会太低下的:)[/quote]
C++程序编译超级慢,但是编译后运行速度很快,至少运行速度不会比同样功能用C写的程序慢。
至于OO不OO的从来没有关心过,问题是什么是OO呢?更不懂什么设计模式,惭愧啊。[/quote]
Oh, awful code, cannot support Chinese fonts while using Firefox browser (English version)?
16 楼
cgl_lgs [专家分:21040] 发布于 2011-07-26 14:30:00
[quote][quote]估计应该是因为C++确实比较好维护,且现在计算速度越来越快了:)还有就是C++开发只要不过度拘泥于OO的话,效率其实不会太低下的:)[/quote]
C++程序编译超级慢,但是编译后运行速度很快,至少运行速度不会比同样功能用C写的程序慢。[/quote]
编译慢是因为没有很好的使用预编译技术:)
过度或是不恰当地使用OO(面向对象)就会导致程序做过多无用功,从而导致效率下降:)
而编译速度问题个人认为是因为C++为了兼容C的INCLUDE从而留下来的病垢。
因为C++的库相当庞大,但却仍然用低效的INCLUDE做为声名引用,自然编译起来速度就很差了。。。
17 楼
Chipset [专家分:16190] 发布于 2011-07-26 21:14:00
16f:
代码量大了编译慢也算正常,问题是同样功能的程序如果用C++来做或用C来做,都预编译或都不预编译,前者编译速度明显比后者慢很多。
理论上OO不会导致效率下降(至少我没有发现),如果一定说导致相率下降的话,无非就是虚函数比普通函数多一个指针,执行时需要用这个指针调用,多消耗一两条指令而已,理论上也就一两个纳秒。问题是OO用的不是很好就有点麻烦了,就说继承吧,这继承那继承,多次继承后可能有的数据成员根本用不上,就算用上虚拟继承,如果一个类比较复杂了,有时候免不了冗余数据成员,这样就产生了不必要的内存消耗,毕竟写程序的不都是熟悉C++的老手,毕竟多数是从学校出来不太久的同事。
我们目前的情况是编译成Win32版本(PC上模拟用)用的时间最多,编译成Linux、QNX、WinCE版本似乎稍微能快点。
我觉得C++的缺点是语法过于复杂,不同的人擅长不同的方面,太多人写代码,代码量大了看上去就五花八门,尽管有严格的编码规范约束。
18 楼
cgl_lgs [专家分:21040] 发布于 2011-07-27 11:11:00
主要是,如果是类成员函数,基本没有人会在CPP里做一个局部声名(如果是虚函数就根本不能做局部声名)
而C函数则可以在局部声名一下就直接使用了:)
19 楼
bmfw [专家分:30] 发布于 2011-11-18 18:02:00
拜读。。。
20 楼
Anglebeats [专家分:0] 发布于 2011-11-22 23:41:00
C++基础好,java也不难了,选自己擅长的吧!
我来回复