过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

为什么我觉得c++比java简单?

IT技术 • lee • 发表于 10 年前 • 最后回复来自 peach5460 • 7 年前

我的学位都非计算机,但是学习的时候,和工作后,用到不少programming,后来想自学c++/java。就学了学。主要我的思想比较喜欢简约的东西,这也是为什么后来学了理科,因为不喜欢作文那些冗长,繁琐的东西。所以,我看java敲那么多字就烦了,虽然听说java好,简单。我自学java/c++也就是看看
tutorials.有一次工作中要写一个程序,大概2,300行。我先用java写,怎么都不work,首先读一个文件进去那一步,就费了超大的劲,都没弄成。我后来改用c++,好多也不会,但是就google,看tutorials那样一步步来,不用一天,居然写成了。我觉得c++比java简单,起码写起来简洁。不知大家都是怎么看的?

加入收藏 新浪微博 分享到微信 ❤赞 19834 次点击 0 人赞 2 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到36条回复
azhai 10 年前 #1 赞 0

你的观察没错。就是这样。Java有很多over engineer的东西,有时候想做一个简单的事情反而不容易。等你代码行数过10w了,java就比C++好了。

whsh 10 年前 #2 赞 0

简不简单不能看代码少不少。

zhouzhe8013 10 年前 #3 赞 0

就我接触过的一些东西,我觉得C++远比Java难... 类C语言的东西,obj-c容易上手点,其次C,CPP最难...

其实写点小东西的话,推荐python,简单高效风格优雅,win/linux/osx下都很好用.

wanper 10 年前 #4 赞 0

写Helloworld Java很复杂,抄了例程不会编译的比比皆是。而且Java不是很精简,没有IDE,恐怕写起来很慢。

zhouzhe8013 10 年前 #5 赞 0

@wanper 没有IDE Java几乎没法写 .net估计也一样

python,ruby,php之类的基本没这个问题.

andyhjq2000 10 年前 #6 赞 1

学C++还得学硬件知识。但又不是纯硬件行业的硬件知识。学习的目的是为了让代码更高效。

学JAVA不学硬件知识。硬件方面的优化由JVM自动完成。

所以,显而易见,C++好的人,手工做了不少优化的工作。而JVM的通用性,导致它绝不会是任何情况都最优。所以极限效率拼不过好的C++代码。

但是JVM的思路是符合产业上下游的发展趋势的。软件人员专注软件相关的东西。硬件相关的优化由专门的编译器人员来实现。对于一个具体项目而言,JAVA产品不如C++高效,但从行业效率来看,JAVA的优势也是巨大的。

hill623 10 年前 #7 赞 0

等LZ要写中型程序(几千行以上)就知道为什么大家说Java简单了,Java本身不是一种简单的语言,但比起C++那是简单了不少,写起来啰嗦不代表语言不简单。

我以前写过几年的C++,现在是能不用C++就不用,能用Python就用Python,不行就Java,除非迫不得以,否则不用C++。

感觉java是在开发/运行效率之间一个不错的平衡,只有两个算是不满的地方。

一是java做计算支持还是不好,手写循环快吐了,下次还是numpy得了

二是强制oo固然可以培养oop的习惯,但是有些地方有点勉强。比如common math里面算个统计量也要先建个object,有点蛋疼。

setup 10 年前 #8 赞 0

一样,能不用c++就不用。c++在企业应用方面简直是噩梦级别的,尤其是猪队友存在时,java最大的好处是,只要有一两个牛人把关,可以使用大把的猪队友级别的干活。

whsh 10 年前 #9 赞 0

lz如果现在还是学生,刚刚才开始学的话,建议可以2种都学习一下,可以做ACM,能够快速对一种语言的语法和标准库进行熟悉,而且能够对比各种其快慢。
在互联网行业的服务器,当访问量巨大时,必须得用c++(可以认为用其它语言开发导致的结果是需要多几倍甚至几十倍的服务器)。国内的互联网三大巨头阿里腾讯百度大部分都是用c++,微信红包访问量创造奇迹,用的是也是c++。
java语言也很成熟,使用的场景比c++多得多,华为好像就有不少用java的,小的互联网公司,用java做服务器的也不在少数,因为用户少的话用什么都一样。
lz如果以后要当程序员,可以根据自己的兴趣来选择学什么。

tracymcladdy 10 年前 #10 赞 0

@setup 正解
@whsh 这个是鬼扯,别教坏小朋友

undeflife 10 年前 #11 赞 0

Stevey's Drunken https://sites.google.com/site/steveyegge2/tour-de-babel

Compared to C++, Java as a language is about even. Well, scratch that, it's a lot better, because it has strings, oh man, how can you use a language with lousy string support.

重要的是,现在很少人去比较 Java 和 C++ 了,经过这么多年的发展两者其实并不构成直接的竞争了,使用C++ 还是使用 Java 的场景大多数时候区分还是很明显的.

楼主你应该说的是Objecitve-c比Swift好用得多, oc有来自c的宏,typedef,指针 ,有id来实现duck type

Swift天天看到AnyObject can't convertible to 'XXX' 各种强制转换才是烦.

whsh 10 年前 #12 赞 0

@tracymcladdy 做了十几年c++的人有资格鬼扯

tracymcladdy 10 年前 #13 赞 0

@whsh 做了十几年能说明什么?优秀的coder的创造力是平庸的coder的创造力的万倍!!

web应用没有java搞不定的(不服来辩!),用c++做web服务端是该下地狱的设计,各种复杂的业务,不小心一个空指针被引用,这个应用就崩溃了。

whsh 10 年前 #14 赞 0

@tracymcladdy 我没你这么无聊,不想跟你辩,而且这里不是讨论这种问题的地方。我说了用c++做web服务端了么?百度阿里腾讯的服务端只有web?腾讯几万员工其中40%是程序员,90%用c++,百度类似。我又没说你的java不好,干嘛那么激动?你自己不小心空指针崩溃不代表别人就得和你一样。

zhouzhe8013 10 年前 #15 赞 2

楼上二位息怒,语言的争论实际上是个无休止的问题,应用的场景决定了语言的作用.

希望大家能保持着调侃"PHP是最好的语言"这种心态来看待这个问题^^

engneer 10 年前 #16 赞 0

1.语言没有优劣

2.应用场景和自己的擅长决定使用哪种语言

3.我自己用的cpp,因为和嵌入式结合的更好。

tracymcladdy 10 年前 #17 赞 0

@whsh 哦,企鹅90%用c++哇,自己统计的么?贴个工牌出来好么?

我是c/c++ linux 脑残粉,虽说目前在java web 这个深坑里面爬不出来。。

“在互联网行业的服务器,当访问量巨大时,必须得用c++(可以认为用其它语言开发导致的结果是需要多几倍甚至几十倍的服务器)。”
这句秀下限的话是谁说出来的哇?国内最具挑战性的互联网应用就是12306,看看别人怎么玩的,用什么玩的?

kenzi 10 年前 #18 赞 0

讨论C++和JAVA哪个更好就像讨论轿车和SUV哪个更好一样,结论就是,适合自己的就是最好!

像12306、淘宝这类在特定时段并发流量非常大的网站是用JAVA开发的,但这也只是说JAVA是主要开发语言,还跟架构、硬件等等很多因素有关。而且应用在不同阶段用另一种语言重构也是很常见的,之前看过一个说法:google最早的Page用java写的,由于写得不太好,Scott Hassan重新用python写过,到后来由于规模越来越大,就c,c++了。。。

zhouever 10 年前 #19 赞 0

楼主挑起了世界大战

whsh 10 年前 #20 赞 0

@racymcladdy 当你说出『优秀的codeer的创造力是平庸的coder的创造力的万倍!!』、『贴个工牌出来好么?』的时候,你的智商已经暴露。没见过这么无聊的。

c++脑残粉因为学不会c++倍受打击所以恼羞成怒了,我没空陪你玩。

ericjohnson 10 年前 #21 赞 0

语言没有简单和复杂
javascript够简单吧,但是一样的可以写出像coffeescript这样的解释器

我想说的是语言都是其次,我可以用JAVASCRIPT+nodejs实现网页路由,也可以自己封装一套纯CSS的效果库,而且越深入发现学的越多,贝兹曲线,OPENGL 2.0的开发语言,甚至有时候要用到一些JAVA或者C#的编程思维

JAVA有apache的各种开源项目,能够看完一个小项目的开源项目都很厉害了
c++有模板,宏命令,数据结构,指针的分配算法,而且更下去要对单片机有深入的了解

功力才是最重要的

tracymcladdy 10 年前 #22 赞 0

@whsh 学不会C++,233333333333333333

从头到尾,没看到你说的有任何逻辑,哦,就暴露智商了哇?确实,智商用眼角余光就能俯视你了。23333

给你解释下,我为什么是linux脑残粉:

设计思想

Everything (including hardware) is a file

Configuration data stored in text

Small, single-purpose program

Avoid captive user interfaces

Ability to chain program together to perform complex tasks

编写sh脚本的思想

Write programs that do one thing and do it well.

Write programs to work together.

Write programs to handle text streams, because that is a universal interface.

这完全就TM是coding的哲学和思想。

为什么是c/c++的脑残粉:

很简单,因为她相信程序员,不阻止程序员做他们想做的任何事。

至于为什么我现在不玩c了(虽说从头到尾没深入的玩过),因为我要朝着球运动的轨迹去,而不是朝着球的位置去,要知道球的运动轨迹,我就需要知道它历史上是怎么跑的。

70年代Unix的出现,是软件发展方面的一个里程碑,那个时期的C语言,也是语言方面的里程碑。(当时)所有的项目都在Unix/C上,全世界人都在用这两样东西写软件。Linux跟随的是Unix, Windows下的开发也是 C/C++。这时候出现的C++很自然就被大家接受了,企业级的系统很自然就会迁移到这上面,C++虽然接过了C的接力棒,但是它的问题是它没有一个企业方面的架构,而且太随意了,否则也不会有今天的Java。C++和C非常接近,它只不过是C的一个扩展,长年没有一个企业架构的框架。而Java在被发明后,被IBM把企业架构这部分的需求接了过来,J2EE的出现让C/C++捉襟见肘了,在语言进化上,还有Python/Ruby,后面还有了.NET,但可惜的是这只局限在Windows平台上。这些就是企业级软件方面语言层面就是C -> C++ -> Java这条主干,操作系统是Unix -> Linux/Windows这条主干,软件开发中需要了解的网络知识就是Ethernet -> IP -> TCP/UDP 这条主干。另外一条脉络就是互联网方面的(HTML/CSS/JS/LAMP…)。我是一个有技术忧虑症的人,这几条软件开发的主线一定不能放弃。遇到新技术我会去了解,但不会把很大的精力放在这些技术(如:NoSQL,Node.js,等)。这些技术尚不成熟,只需要跟得住就可以了。技术十年以上可能是一个门槛。

该说的我说完了,说实话,我一直说我是一个装逼犯,但绝对不是一个和你一样秀下限的装逼犯。

不会回你了,因为你的层次太低,我这个装逼犯看不上!

wuha 9 年前 #23 赞 0

任何现存的语言,都在特定领域有其过人之处,单纯论哪种最好而不考虑场合完全是扯淡

  

c/c++就目前用户数来说仍然是最多的,个人觉得应该有至少这些优点:1)能与底层打交道但不需要写汇编 2)涉及到类似3d图形、游戏引擎等需要高性能的场合基本没有选择 3)目前只有c/c++真正是跨平台语言,其它都非常勉强,覆盖面窄

  

缺点的话,主要是入门门槛相对Java之类来说超高,但往好的方面想,如果你这语言扎实,学习入门其它语言可以用天做单位,投入有价值

sofa 9 年前 #24 赞 0

mo4772 8 年前 #25 赞 2

@tracymcladdy 这个哥们,完全没有搞懂web服务器和web业务服务的区别,web服务器是处理大规模http请求。主要目标是高并发和响应低延迟。现在用的最广泛的web服务器apache和nginx,都是用C/C++实现的。所谓的java web只是用java去实现web服务器上的业务代码罢了。像BAT这种级别公司,服务器不会傻B到用java,paython去做接入请求管理。那撑不到几个用户就处理不过来了。一般都会用C/C++作接入请求处理,将请求的业务消息剥离后,抛给后面的业务模块去处理。这些业务模块可以用java,paython等去实现。java,paython之所以流行,一方面是语言设计层面,还一个更重要的原因是它们的标准库大而全,覆盖方方面面,写业务代码的效率很高。C++98的标准库很弱,但是现在C++11/14出来了的,标准库得到了很大的补充,开发效率也提高很多。

你还是要认清楚实质,各语言有自己的领域范围,这样比较毫无意义。

wangpugod2003 8 年前 #26 赞 0

@mo4772 赞,这个才差不多是正解。C++的复杂让我这种程序员搞了5,6年最终放弃了,建议说C++简单的起码要读过STL和BOOST的源码,读了后你会觉得:F***K,真NB,这么NB的还是让聪明人去搞吧。于是我这种庸货转了JAVA。。。

PS:国内很多说做C++的其实就是搞的C语言,我待过几家500强的中外通信公司,还没看到一家把C++玩得非常转的

billyhoom 8 年前 #27 赞 0

@mo4772 正解,我现在的公司用的就是你说的这样的架构,HTTP模块是node,后面是C++,而且腾讯貌似就是绝大部分的C++,问过公司从那里过来的大牛们

tairan 8 年前 #28 赞 0

那是因为你没写过大项目。。template就能虐死你

jzh800 8 年前 #29 赞 0

@billyhoom
难道不是nginx,c++,
或者boost asio,websocket

zivshek 7 年前 #30 赞 0

@mo4772 说得好,那人简直有病。

BobChen 7 年前 #31 赞 0

dark 7 年前 #32 赞 0

只要说精通C++的简历直接丢废纸篓;
只要说C++简单的直接定位为没入门。

arzterk 7 年前 #33 赞 0

引战贴。。无视管理员的么

qingyu 7 年前 #34 赞 0

阿里,腾讯2家公司均工作过。处理高并发的底层基本都是使用C++来完成的,腾讯确实90%的程序员都是C++程序员,而且基本每个C++程序员都有2本砖头书---unix 环境高级编程 和 C++ Primer。 阿里大部分程序员都是JAVA程序员,但在关键的节点还是会有C++程序员来做支撑。

whsh 7 年前 #35 赞 0

这个帖子又被顶上来了。。。我唯一一次和别人撕逼的帖子。

peach5460 7 年前 #36 赞 0

C++语法学深了你就会发现...
每当我觉得自己精通C++了以后,总会出来几个新的语法让我傻眼...

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
最近时间少了, 隔了这么久, 才做了一个网站
求推荐一个AI智能体客服
请问大家都是通过哪些好用的链接访问GPT
请教机器学习人工智能的一个技术问题
搞了个AI 生图的网站,不需要登录,永久免费
[第二波送码]动动嘴皮,AI秒出图!2025最炸裂图标神器:免费生成+手机实时预览
开发了一个管理 Linux 服务器的桌面可视化管理工具,求蹂躏
服务器可视化采用纯前端渲染,这个技术实现难度如何
做了一款摸鱼软件,有人要试用吗?
有搞嵌入式硬件的吗?

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号