免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: art_codes
打印 上一主题 下一主题

[C++] 确认一下c++中不能使用interface(如java)那样的功能把 [复制链接]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
141 [报告]
发表于 2009-03-25 16:35 |只看该作者
原帖由 arron 于 2009-3-25 16:22 发表
没有一种语言能包打天下。


顶这句话。

我也没说C++就能包打天下, 比如对楼主问C++是否能做web, 我也还是建议他用java。
我说这么多, 无非是想说明, “java并不像众多人所吹嘘的那样, 相反,它在很多方面都存在缺陷。”


原帖由 arron 于 2009-3-25 16:22 发表
比如java没有goto,有时不得不写起来费事一点。

嗯, 确实费事。 很多地方都让人觉得费事。
switch, generic, free function。

如果语言设计的目的, 不是为了更清晰的表达程序员的意图, 那还设计语言做什么?
大家都直接用汇编算了


原帖由 arron 于 2009-3-25 16:22 发表
C++也要引入GC。


再次声明, C++的GC是可选的。
对不使用该特性的用户, 尽可能维持零代价
这就是C++的设计理念

而非java的一味限制



原帖由 arron 于 2009-3-25 16:22 发表
Java引入了充满争议的范型


java的范型, 不但是充满争议, 根本就是一个噱头
一种商业炒作


原帖由 arron 于 2009-3-25 16:22 发表
Java没能彻底地走向动态语言的道路

我觉得java在这个方面的选择是恰当的。
只有静态类型语言, 才能适合大型项目的开发。

java如果一开始就走向动态语言, 估计就不会这么火了。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
142 [报告]
发表于 2009-03-25 16:38 |只看该作者
原帖由 swxlion 于 2009-3-25 16:28 发表
这也是为什么有些人非常反感商人的原因。广告业里有句话,对于商人同样适用:“我告诉你的都是事实。只是并不是全部。
使用故意歪曲的事实,误导他人,然后利用被误导者的热情,去扩大“受害面”,然后自己得利


太铜臭了

论坛徽章:
0
143 [报告]
发表于 2009-03-25 16:59 |只看该作者
原帖由 OwnWaterloo 于 2009-3-25 16:24 发表


我觉得有点亏, 这种明显事吃力不讨好。
是否应该遵循 huxk 的建议, 不要再和一些人那么认真了。
让他们自己去悟吧?

或许有些人不愿意主动去悟?
更或许有些人不接受悟的本身?


恩。
这样做是非常吃力不讨好的,而且搞不好还会成为他人记恨的对象。
但我觉得,如果对自己生活成长的空间出现的错误都不加以澄清和纠正的话,那我们或我们的后继者,总得为我们的当时的“失职”,付出代价。
一个人,对其周围社会的贡献,最大或许莫过于如此。但忠言逆耳,何况还有心理失衡和面子上的问题。所以非常吃力不讨好。
但厌者厌,沉睡者沉睡。仅此而已。对于苦苦无法悟出者,以上的讨论无疑是醍醐灌顶,令其猛醒。而不接受悟之人,则任其迷茫。
你和其他参与者的讨论,最终会让有意者受益,这也许就足够了。
正因为这种行为吃力不讨好,所以才会难能可贵。
我想,任何受益于这篇帖子的人,都会由衷地感谢你和参与其中讨论的人。谢谢!
在还能如此“义愤”,为他人明晰之时,就恳请继续吧。当我们消磨了意气,无人指出错误之时,我想,行业的没落也就只有听之任之了……

[ 本帖最后由 swxlion 于 2009-3-25 17:04 编辑 ]

论坛徽章:
0
144 [报告]
发表于 2009-03-25 17:02 |只看该作者
Java离PHP、Python等动态语言我感觉不太远,这些语言都是在执行的时候翻译成中间代码,Java只不过需要手工完成罢了。最好能够同时提供脚本和中间码两种形式。
Java给人印象是一种中间类型的语言,既保留一点系统语言的特色,又加入了很多面向虚拟机的特性,有点通吃的意思。好处是各种工作都能做一点,坏处是各方面都差一些。

论坛徽章:
0
145 [报告]
发表于 2009-03-25 17:18 |只看该作者
我不再回应了。各位,如果有得罪和不当之处,还望海涵。

其实waterloo的也说得多了,开始那几篇回复已经点出了重点。

看来你今天也是闲着没有事情做。^_^

不过我纳闷你的MJ为何取为own waterloo难道和拿破仑有关系?

下班时间已到,到此为止吧。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
146 [报告]
发表于 2009-03-25 17:32 |只看该作者

收swxlion的鼓励, 继续愤青一下……

原帖由 yovn 于 2009-3-25 13:36 发表
goto的优劣相信有点常识的人都知道了,checked exception本来就是很有争论的,好还是不好也没有达成共识,所谓众口难调也大抵如此。Java的设计目标就是一个优雅的语言摒弃一些有争论的语言特性也是应该的。


多继承, goto, fall through swtich, 是有争议的, 没有被优雅的java采用。
那么 checked exception同样是有争议的, 为什么就被优雅的java采用了??

理由非常简单,再简单不过了。
因为james gosling认为checked exception是有用的。 这是可以找到事实依据的。
因为james gosling认为多继承、goto、fall through switch是无用的。 这个找不到事实依据, 不过大抵如此。


所以, java是优雅的么?
java是james gosling心中的优雅, 而非所有人心中的优雅。
james gosling无论他是不是科学家, 他都是一个偏执狂
java语言能表达的思想被一个科学家作了太多的限制


也许这么说james gosling有点不公平。并不是所有决断都是他能全权决定的。
但是, 枪打出头鸟嘛 …… 既然身为语言的设计者, 就有责任克服重重困难, 设计出自己心中理想的语言。
Bjarne Stroustrup同样为C++付出诸多心血。
多重继承与STL在那时它依然是饱受争议的事物)同样是BS力排众议才加到C++之中的。

他也承受着诸多人对多重继承的非议。

[ 本帖最后由 OwnWaterloo 于 2009-3-25 17:34 编辑 ]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
147 [报告]
发表于 2009-03-25 17:37 |只看该作者
原帖由 huxk 于 2009-3-25 17:18 发表
其实waterloo的也说得多了,开始那几篇回复已经点出了重点。
看来你今天也是闲着没有事情做。^_^
不过我纳闷你的MJ为何取为own waterloo难道和拿破仑有关系?


我也觉得越往后越没营养了 ……

其实我还是有很多事要做的, 只是不急, 和和~~~

MJ是什么意思? 马甲吗?  这可不是我的马甲号哦 。。。。

原因么。。。  我可以pm给你

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
148 [报告]
发表于 2009-03-25 17:50 |只看该作者
原帖由 艾斯尼勒 于 2009-3-25 17:30 发表
首先,针对C++来说,我认为C++是一门非常强大的语言,强大到几乎无所不能。听起来很美,但如此强大灵活的特性带来了什么呢?想成为一名合格的C++程序员到底有多困难?其实你们搞C++的人最明白了,新来的学生号称精通C++,你让他直接(或者经过简单的培训)写代码么?一个精通C++的程序员写的代码可能换一个精通C++的程序员根本就看不懂吧?!你知道这个可能性有多大!而这点,JAVA就是通过你反复贬低的在语言方面采取限制的方法来做到的。

不可否认,我们培训了很多java代码工人。java确实在语言上限制了思维,这也正如我们总拿VB来说事儿一样!而我认为java的限制其实是相当合适的程度,它简单的语法让程序员很容易的走在正确的道路上,而不是在东京地铁站里面来回寻找正确的出口。因此,JAVA的出现很大的刺激了IT业的繁荣,也是为什么很多公司选择使用java的原因之一。


嗯 ……  直击要害 ……
确实很困难, 确实不敢 ……
我承认这是java的限制,带来的优势。


那么, 下面的话, 你是否赞同呢?

1. 通过学习java能够体会到的编程思想, 远不如通过学习c++?
2. java的目的、 成功, 就是它足够简单, 能够培养大量的代码工人。
软件已经是很大一门行业, 越来越倾向于一门工程, 而非艺术。 所以社会需要大量的代码工人。
java做到了, 所以它火了。
3. 如果只是学习与研究(对编程技术、 对计算机了解 ——  对整个系统到底是如何run起来的), c++是java更适合
4. 深入了解c++之后, java只是小菜。 反之不亦然。


我确实很愤青, 看不惯许多商业书籍对人们的误导, 希望大家不要走上为sun或者ms卖命的道路,了解自己真正想学的是什么东西。
我想揭示java许多东西, 都是商业上的炒作, 吹嘘, java并不是大家想象中的那么好。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
149 [报告]
发表于 2009-03-25 17:59 |只看该作者
原帖由 艾斯尼勒 于 2009-3-25 17:30 发表
其次,你说追求“我想用就给我,不想用就别让我付出任何代价”。
请问C++在多重继承上是如何做到的?有几个搞C++的没在这里纠结过?何况继承本来就不是个多好的特性,本来就很容易让人滥用的,何况多重继承呢。就像你所说的,你用不好不代表别人用不好,但真正能用好的人有几个?我看更大的作用是让更多的学习者和使用者在这里迷茫吧?
这样看来,C++设计是追求大而全了?是不是“只有你用不到的,没有我没提供的”?学技术的搞技术的基本都是钻牛角尖的“只要你有,我就得搞明白”在初学者中还是绝大多数吧。
从这点上来说,我认为java的语法及其限制显然更人性化一些。


不用多重继承当然不会引起任何时空效率上的代价。
你说的代价, 是学习代价, 是吧?

那么我们看看两条路:

1  java的路。
可以很快入门,  但是想学更多东西的时候, 就顶到天花板了。

2. c++的路。
曲折。 但是你想学任何东西,比java多得多的东西, c++都尽量提供给你。

该选哪条路, 大家自己斟酌吧。


原帖由 艾斯尼勒 于 2009-3-25 17:30 发表
C++设计是追求大而全了?是不是“只有你用不到的,没有我没提供的”?

C++是一门通用程序设计语言。
并不是为任何特定领域。 所以只能尽量提供更多的东西。

一门语言要想做更多的事, 就必须更加复杂”。 java从出身到现在也是渐渐再变得复杂起来。


原帖由 艾斯尼勒 于 2009-3-25 17:30 发表
学技术的搞技术的基本都是钻牛角尖的“只要你有,我就得搞明白”在初学者中还是绝大多数吧。

确实是大多数。  这是C++教学上的一个误区

论坛徽章:
0
150 [报告]
发表于 2009-03-25 17:59 |只看该作者

回复 #149 OwnWaterloo 的帖子

好,我知道了。谢谢~

[ 本帖最后由 nbaloverme 于 2009-3-25 18:02 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP