由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++是给神仙用的语言
相关主题
auto_ptr, algorithm 混用问题,大侠们救我。头疼死了!STL里怎样得到map的某个键值对(pair)的指针?
[新手]一直都把C++当Java写,有啥严重不妥?Linus Torvalds: Java A Horrible Language - YouTube
C++11里list迭代器判空仍然知道具体的list对象吗?黑客文化的精髓-by 王银
Linus Torvald有多少钱?c++如果调用没参数的函数不用加()就好了
STL iterator的疑问牛人就是拽:Linus Torvalds一直讨厌这11项技术
[合集] 如何得到一个指向STL元素的指针?difference between: char** p and char*p[] ??
容器里边放指针怎么办?C++ pointer problem
interview question: (RB tree vs. hash table)A C++ runtime type casting question
相关话题的讨论汇总
话题: c++话题: java话题: 指针话题: 代码话题: assembly
进入Programming版参与讨论
1 (共1页)
s*****n
发帖数: 5488
1
太不容易用对了。死了也好。
a****l
发帖数: 8211
2
真的神仙用其实也挺好,问题就处在谭浩强,让一大堆凡人都用,然后就玩火自焚了。
我觉得,没有十年以上的经验的人不要学C,能减少很多问题。

【在 s*****n 的大作中提到】
: 太不容易用对了。死了也好。
d****i
发帖数: 4809
3
他说的是C++, C还是挺容易的吧,谭浩强的书确实有点误人子弟,看看K&R的经典书足
够对付了。

【在 a****l 的大作中提到】
: 真的神仙用其实也挺好,问题就处在谭浩强,让一大堆凡人都用,然后就玩火自焚了。
: 我觉得,没有十年以上的经验的人不要学C,能减少很多问题。

a*w
发帖数: 4495
4
K&R里也有不少错误,估计科尼汉老汉也是萝卜快了不洗泥。例程
只在脑袋里推演一下,根本没在电脑上跑。
http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html
谭浩强抄袭了K&R,然后有些人就说那些错误也是他原创的。
我见过另一个人抄袭谭浩强的,只是把章节顺序改了。

【在 d****i 的大作中提到】
: 他说的是C++, C还是挺容易的吧,谭浩强的书确实有点误人子弟,看看K&R的经典书足
: 够对付了。

s*****n
发帖数: 5488
5
C语言啊。
C++里面陷阱太多了,一会引用一会指针的。在来来parent son cast一下,
很容易就出bug了。

【在 a*w 的大作中提到】
: K&R里也有不少错误,估计科尼汉老汉也是萝卜快了不洗泥。例程
: 只在脑袋里推演一下,根本没在电脑上跑。
: http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html
: 谭浩强抄袭了K&R,然后有些人就说那些错误也是他原创的。
: 我见过另一个人抄袭谭浩强的,只是把章节顺序改了。

r*******n
发帖数: 3020
6
C++向后兼容,当然也兼容之前的各种不好的设计。
像++,--之类的也应该剔除。
写c++时刻要清楚写的程序是在栈里还是在堆里运行

【在 s*****n 的大作中提到】
: 太不容易用对了。死了也好。
r*********r
发帖数: 3195
7
花街上神仙很多。
r*********r
发帖数: 3195
8
c++ 里指针被各种包装隐藏起来了,一般写写代码也不太用到指针。
W*******e
发帖数: 1268
9
C的指针也很多,GCC的代码往下走几层到处都是指针函数互相调用,以前Borland和VC
开放的部件代码很多也是这样的。好像用指针函数和指针对象除了灵活以外,同时能有
效的减少obj文件大小。我读过一些牛人写的程序,编译后的目标代码比源程序还小。

【在 r*********r 的大作中提到】
: c++ 里指针被各种包装隐藏起来了,一般写写代码也不太用到指针。
r*********r
发帖数: 3195
10
C 可以作为第二语言学。 学体系结构,操作系统这些课,指针是第一重要的。
也只有学过这些课,才有可能深刻理解指针。
相关主题
[合集] 如何得到一个指向STL元素的指针?STL里怎样得到map的某个键值对(pair)的指针?
容器里边放指针怎么办?Linus Torvalds: Java A Horrible Language - YouTube
interview question: (RB tree vs. hash table)黑客文化的精髓-by 王银
进入Programming版参与讨论
s*****n
发帖数: 5488
11
因为有了指针,可以随便改来该去。好吧,解决它,我们来定义const.
一堆const. non-const.你说把指针去了不就是完事大吉了?
const又引出一堆的问题,const-cast啊。
然后指针导致无法正确的回收,都是一堆的解决方案,smart pointer了什么啊。
所以我说,做加法永远不如做减法,咔嚓一刀,指针切掉,世界安静了。

【在 r*********r 的大作中提到】
: c++ 里指针被各种包装隐藏起来了,一般写写代码也不太用到指针。
S**I
发帖数: 15689
12
系统底层开发不用指针是不可能的。

【在 s*****n 的大作中提到】
: 因为有了指针,可以随便改来该去。好吧,解决它,我们来定义const.
: 一堆const. non-const.你说把指针去了不就是完事大吉了?
: const又引出一堆的问题,const-cast啊。
: 然后指针导致无法正确的回收,都是一堆的解决方案,smart pointer了什么啊。
: 所以我说,做加法永远不如做减法,咔嚓一刀,指针切掉,世界安静了。

d**********x
发帖数: 4083
13
机器人?

【在 s*****n 的大作中提到】
: 因为有了指针,可以随便改来该去。好吧,解决它,我们来定义const.
: 一堆const. non-const.你说把指针去了不就是完事大吉了?
: const又引出一堆的问题,const-cast啊。
: 然后指针导致无法正确的回收,都是一堆的解决方案,smart pointer了什么啊。
: 所以我说,做加法永远不如做减法,咔嚓一刀,指针切掉,世界安静了。

r*********r
发帖数: 3195
14
then it's not C++, it's C--, isn't it?

【在 s*****n 的大作中提到】
: 因为有了指针,可以随便改来该去。好吧,解决它,我们来定义const.
: 一堆const. non-const.你说把指针去了不就是完事大吉了?
: const又引出一堆的问题,const-cast啊。
: 然后指针导致无法正确的回收,都是一堆的解决方案,smart pointer了什么啊。
: 所以我说,做加法永远不如做减法,咔嚓一刀,指针切掉,世界安静了。

S**I
发帖数: 15689
15
no, it's Java.

【在 r*********r 的大作中提到】
: then it's not C++, it's C--, isn't it?
t*****n
发帖数: 4908
16
微软的无数开发都是C++的。

【在 s*****n 的大作中提到】
: 太不容易用对了。死了也好。
h*******s
发帖数: 8454
17
欲练神功

【在 s*****n 的大作中提到】
: 因为有了指针,可以随便改来该去。好吧,解决它,我们来定义const.
: 一堆const. non-const.你说把指针去了不就是完事大吉了?
: const又引出一堆的问题,const-cast啊。
: 然后指针导致无法正确的回收,都是一堆的解决方案,smart pointer了什么啊。
: 所以我说,做加法永远不如做减法,咔嚓一刀,指针切掉,世界安静了。

s*****n
发帖数: 5488
18
我软的程序我老也不是没有看过。
用C++写C程序和基于对象的语言而已。
真的全面对象化,要死人的。

【在 t*****n 的大作中提到】
: 微软的无数开发都是C++的。
s*****n
发帖数: 5488
19
现在看,面向对象的几大好处。第一封装,降低耦合,这个貌似不是很成立。因为类的
个数会因此爆炸,虽然降低了耦合,但是程序变得很难懂,很大,很长。也就更加难以
维护。特别是C++正确实现变得十分tricky.还不如大智若愚,就是用C.什么问题都摆在
台面上。
第二重用,这个更加搞笑,这应该是C++第一卖点了。事实上,由于技术的进步,几乎
没有见过那个包能用上20年的。特别是公司里面,总的有点事情做啊,于是C++程序整
个丢掉,改用java,C#不是少数。
所以我看来,C++面向对象编程的性价比实在太低了。真的不如改用C写底层,高层用
javascript, ruby,shell,什么的快速开发语言好了。
l*********s
发帖数: 5409
20
c is most likely going to be more cumbersome because you have to reinvent
stl container, exception, abstract data type etc. etc..

【在 s*****n 的大作中提到】
: 现在看,面向对象的几大好处。第一封装,降低耦合,这个貌似不是很成立。因为类的
: 个数会因此爆炸,虽然降低了耦合,但是程序变得很难懂,很大,很长。也就更加难以
: 维护。特别是C++正确实现变得十分tricky.还不如大智若愚,就是用C.什么问题都摆在
: 台面上。
: 第二重用,这个更加搞笑,这应该是C++第一卖点了。事实上,由于技术的进步,几乎
: 没有见过那个包能用上20年的。特别是公司里面,总的有点事情做啊,于是C++程序整
: 个丢掉,改用java,C#不是少数。
: 所以我看来,C++面向对象编程的性价比实在太低了。真的不如改用C写底层,高层用
: javascript, ruby,shell,什么的快速开发语言好了。

相关主题
c++如果调用没参数的函数不用加()就好了C++ pointer problem
牛人就是拽:Linus Torvalds一直讨厌这11项技术A C++ runtime type casting question
difference between: char** p and char*p[] ??C++ 科学计算中的常量
进入Programming版参与讨论
t*****n
发帖数: 4908
21
但是底层代码也不少。某30年的程序,C代码有1.5M。照你的方案,没有哪个公司愿意
花这个钱。只能是C->C++慢慢改。估计最后代码量在0.8M左右。
现实和理想差距很大。30年前根本就没java/javascipt啥的。
d****i
发帖数: 4809
22
纯C写不是不可以,但是就像楼上说的,C++提供了很多container, 你觉得你喜欢哪样
的函数?
pure C:
void foo(float **matrix, int M, int N)
还是
C++ style C:
void foo(vector>& matrix)

【在 s*****n 的大作中提到】
: 现在看,面向对象的几大好处。第一封装,降低耦合,这个貌似不是很成立。因为类的
: 个数会因此爆炸,虽然降低了耦合,但是程序变得很难懂,很大,很长。也就更加难以
: 维护。特别是C++正确实现变得十分tricky.还不如大智若愚,就是用C.什么问题都摆在
: 台面上。
: 第二重用,这个更加搞笑,这应该是C++第一卖点了。事实上,由于技术的进步,几乎
: 没有见过那个包能用上20年的。特别是公司里面,总的有点事情做啊,于是C++程序整
: 个丢掉,改用java,C#不是少数。
: 所以我看来,C++面向对象编程的性价比实在太低了。真的不如改用C写底层,高层用
: javascript, ruby,shell,什么的快速开发语言好了。

s***o
发帖数: 6934
23
比较practical的模式是限定一个很小的c++的scope来用,作为整个project的标准。
c++的问题是language很大但是程序员良莠不齐,thrust那样的难招到,也贵,人力资
源上难scale。所以Torvalds那个著名吐槽还是有一定道理的。

【在 d****i 的大作中提到】
: 纯C写不是不可以,但是就像楼上说的,C++提供了很多container, 你觉得你喜欢哪样
: 的函数?
: pure C:
: void foo(float **matrix, int M, int N)
: 还是
: C++ style C:
: void foo(vector>& matrix)

S**I
发帖数: 15689
24
大部分情况下前人一般都已经造好了轮子。

【在 l*********s 的大作中提到】
: c is most likely going to be more cumbersome because you have to reinvent
: stl container, exception, abstract data type etc. etc..

l*********s
发帖数: 5409
25
but they are certainly not as robust and expressive as C++.


【在 S**I 的大作中提到】
: 大部分情况下前人一般都已经造好了轮子。
d****i
发帖数: 4809
26
Linus的那个吐槽主要是他觉得C++不应该用来写kernel的代码,这个他是对的,我读了
一些RTOS的kernel代码以后觉得同意他的看法。

【在 s***o 的大作中提到】
: 比较practical的模式是限定一个很小的c++的scope来用,作为整个project的标准。
: c++的问题是language很大但是程序员良莠不齐,thrust那样的难招到,也贵,人力资
: 源上难scale。所以Torvalds那个著名吐槽还是有一定道理的。

s*****n
发帖数: 5488
27
我会选择方案1.
因为我知道我很危险。
如果是2的话,我以为很安全,其实到底怎么样?谁知道?
1.的话,我可以自己写一堆测试代码,而且是现成的检测内存泄露什么。fault
injection, trace,dump什么都简单。代码写得长点嘛,无所谓,好想还多干活了。
2.的话,我的所有代码必须改成c++,我不是自己给自己找麻烦。生活中修个bug还不是
随便找条狗就来,你知道刚招的小弟什么水平。

【在 d****i 的大作中提到】
: 纯C写不是不可以,但是就像楼上说的,C++提供了很多container, 你觉得你喜欢哪样
: 的函数?
: pure C:
: void foo(float **matrix, int M, int N)
: 还是
: C++ style C:
: void foo(vector>& matrix)

S**I
发帖数: 15689
28
这个基本上是共识吧;Windows和Mac OS X的内核基本上也都是C,有限地使用一些C++
的feature。若干年前微软的一篇研究文章也说不建议用C++做内核开发。

【在 d****i 的大作中提到】
: Linus的那个吐槽主要是他觉得C++不应该用来写kernel的代码,这个他是对的,我读了
: 一些RTOS的kernel代码以后觉得同意他的看法。

m*********t
发帖数: 527
29
You can ask the question:
Why the game industry switched to C++ (not idiomatic C)?

【在 s*****n 的大作中提到】
: 我会选择方案1.
: 因为我知道我很危险。
: 如果是2的话,我以为很安全,其实到底怎么样?谁知道?
: 1.的话,我可以自己写一堆测试代码,而且是现成的检测内存泄露什么。fault
: injection, trace,dump什么都简单。代码写得长点嘛,无所谓,好想还多干活了。
: 2.的话,我的所有代码必须改成c++,我不是自己给自己找麻烦。生活中修个bug还不是
: 随便找条狗就来,你知道刚招的小弟什么水平。

s*****n
发帖数: 5488
30
游戏业的未来是webgl+ js. 切切就是低耦合的跨语言的组合。
至于犯傻,那个行业没有发生过。没有java的话,微软可能还全转C++呢,跟风嘛。
后来还是从实践中反思。

【在 m*********t 的大作中提到】
: You can ask the question:
: Why the game industry switched to C++ (not idiomatic C)?

相关主题
问个C++中重复删除指针的问题[新手]一直都把C++当Java写,有啥严重不妥?
问一个关于C++指针的问题C++11里list迭代器判空仍然知道具体的list对象吗?
auto_ptr, algorithm 混用问题,大侠们救我。头疼死了!Linus Torvald有多少钱?
进入Programming版参与讨论
g*****g
发帖数: 34805
31
webgl做游戏的主要问题在于数据,数据现传再渲染可能来不及。

【在 s*****n 的大作中提到】
: 游戏业的未来是webgl+ js. 切切就是低耦合的跨语言的组合。
: 至于犯傻,那个行业没有发生过。没有java的话,微软可能还全转C++呢,跟风嘛。
: 后来还是从实践中反思。

m*********t
发帖数: 527
32
哇,指点江山啊。
我觉得呢,你抱怨难用不会用和一门语言在什么行业什么地方用是两回事。毕竟谁管你
说话算不算数啊。。。。

【在 s*****n 的大作中提到】
: 游戏业的未来是webgl+ js. 切切就是低耦合的跨语言的组合。
: 至于犯傻,那个行业没有发生过。没有java的话,微软可能还全转C++呢,跟风嘛。
: 后来还是从实践中反思。

d***a
发帖数: 13752
33
严格地说,能熟练地写汇编程序后,才能完全理解指针。
以前学程序语言的次序大致是这样的:Pascal, 汇编和机器语言,C,C++。

【在 r*********r 的大作中提到】
: C 可以作为第二语言学。 学体系结构,操作系统这些课,指针是第一重要的。
: 也只有学过这些课,才有可能深刻理解指针。

F********g
发帖数: 475
34
C,汇编,c++

【在 d***a 的大作中提到】
: 严格地说,能熟练地写汇编程序后,才能完全理解指针。
: 以前学程序语言的次序大致是这样的:Pascal, 汇编和机器语言,C,C++。

a****a
发帖数: 5763
35
STL是标准的垃圾。如果只是为了RAD和复用。不关心效率。那么完全可以用java之类的
语言。开发更快。如果是为了效率。那么很悲剧的一点是STL真正的运行时的资源开销
是不可控的
换句话说。STL只能用在那种需要快速开发但是对资源开销不太关心的中小型项目才有用
问题是这种的抄个别的旧代码也不是多难的事情
b***i
发帖数: 3043
36
BASIC,机器语言,C

【在 F********g 的大作中提到】
: C,汇编,c++
k**********g
发帖数: 989
37

没有GameTools的八十後人生是不完整滴
BBC MICRO BASIC
LOGO
KOEI games ... (SANGOKU3)
GWBASIC
GameTools V3.23 <-----------------
x86 assembly <---
Turbo Pascal 6.0
FreePascal 0.99.8 - 1.0
C (used ACM UVa online judge to compile)
Java
Verilog
Perl
C++

【在 b***i 的大作中提到】
: BASIC,机器语言,C
r****y
发帖数: 26819
38
Gamebuster,PCTools和FPE呢?

【在 k**********g 的大作中提到】
:
: 没有GameTools的八十後人生是不完整滴
: BBC MICRO BASIC
: LOGO
: KOEI games ... (SANGOKU3)
: GWBASIC
: GameTools V3.23 <-----------------
: x86 assembly <---
: Turbo Pascal 6.0
: FreePascal 0.99.8 - 1.0

c****r
发帖数: 576
39
My case, engineering major: C, Assembly, C++

【在 d***a 的大作中提到】
: 严格地说,能熟练地写汇编程序后,才能完全理解指针。
: 以前学程序语言的次序大致是这样的:Pascal, 汇编和机器语言,C,C++。

t********e
发帖数: 880
40
u know nothing about stl

有用

【在 a****a 的大作中提到】
: STL是标准的垃圾。如果只是为了RAD和复用。不关心效率。那么完全可以用java之类的
: 语言。开发更快。如果是为了效率。那么很悲剧的一点是STL真正的运行时的资源开销
: 是不可控的
: 换句话说。STL只能用在那种需要快速开发但是对资源开销不太关心的中小型项目才有用
: 问题是这种的抄个别的旧代码也不是多难的事情

相关主题
Linus Torvald有多少钱?容器里边放指针怎么办?
STL iterator的疑问interview question: (RB tree vs. hash table)
[合集] 如何得到一个指向STL元素的指针?STL里怎样得到map的某个键值对(pair)的指针?
进入Programming版参与讨论
r****r
发帖数: 1693
41
Verilog这硬件描述语言怎么也混进来了?

【在 k**********g 的大作中提到】
:
: 没有GameTools的八十後人生是不完整滴
: BBC MICRO BASIC
: LOGO
: KOEI games ... (SANGOKU3)
: GWBASIC
: GameTools V3.23 <-----------------
: x86 assembly <---
: Turbo Pascal 6.0
: FreePascal 0.99.8 - 1.0

k**********g
发帖数: 989
42

These don't allow one to edit the assembly in a running program. GameTools
is what motivated me to learn x86 assembly.

【在 r****y 的大作中提到】
: Gamebuster,PCTools和FPE呢?
k**********g
发帖数: 989
43

Most of bit twiddling (e.g. Hacker's delight) is trivial knowledge (either
that, or new research area) to those who have taken 2-3 years of logic
design courses.

【在 r****r 的大作中提到】
: Verilog这硬件描述语言怎么也混进来了?
m********5
发帖数: 17667
44
much much higher productivity
for non-kernel, performance critical project, I'd rather use C++ + ASM.
For non-critical project, I'd rather use Python/Java + C++
But they were right, for legacy project maintenance, it is better to stick
with original language. And most of them were using C, that is why C is more
popular in some companies.


【在 m*********t 的大作中提到】
: You can ask the question:
: Why the game industry switched to C++ (not idiomatic C)?

1 (共1页)
进入Programming版参与讨论
相关主题
A C++ runtime type casting questionSTL iterator的疑问
C++ 科学计算中的常量[合集] 如何得到一个指向STL元素的指针?
问个C++中重复删除指针的问题容器里边放指针怎么办?
问一个关于C++指针的问题interview question: (RB tree vs. hash table)
auto_ptr, algorithm 混用问题,大侠们救我。头疼死了!STL里怎样得到map的某个键值对(pair)的指针?
[新手]一直都把C++当Java写,有啥严重不妥?Linus Torvalds: Java A Horrible Language - YouTube
C++11里list迭代器判空仍然知道具体的list对象吗?黑客文化的精髓-by 王银
Linus Torvald有多少钱?c++如果调用没参数的函数不用加()就好了
相关话题的讨论汇总
话题: c++话题: java话题: 指针话题: 代码话题: assembly