由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C#转C++可行否?
相关主题
C++11痛并快乐着关于用 Eclipse 开发C++ 程序
C++ IDE under Linuxruby,python有没有自己的ide?
java是个骗人的语言vim值得学吗?
现在来这个版都是来调戏一些java黑的关于语言的争论总结一下
问一下,scala之父的那本教程怎么样?值得看么?type inferience 好处是什么
这个go的吐槽很客观请推荐linux下c++的IDE
郁闷用vim/emacs相当于开手动车
编程语言选择问题用linux真费劲,经常出现莫名其妙的问题
相关话题的讨论汇总
话题: c++话题: java话题: c#话题: python话题: ms
进入Programming版参与讨论
1 (共1页)
d******a
发帖数: 32122
1
感觉C#逼格不够
不知道用C++干活会增加多少麻烦
主要就是计算+数据库读写
h*******u
发帖数: 15326
2
这两样C#够了

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

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

http://numerics.mathdotnet.com/

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

d******a
发帖数: 32122
4
我知道C#能干那些
我说的是C#的逼格不够
C++比C#麻烦多少?

【在 k**********g 的大作中提到】
:
: http://numerics.mathdotnet.com/

d****i
发帖数: 4809
5
C++, Java, C# they are all in the same big C family languages. No big
difference in terms of syntax, the only big difference is: C++ is native
while C# and Java are VM based languages. The big diff between C# and Java
is: C# is Microsoft and Windows specific and Java is more general and
commonly used on Unix/Linux systems.

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

w***g
发帖数: 5958
6
数据库是C++的弱项。

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

T********i
发帖数: 2416
7
也不算了。就那么几个query, result的data binding。手写又能花多少时间?
C++真正的问题是,即使做科学计算,比java, .net之类的也没啥优势。速度差异基本
可以忽略。
真正巨大优势的应用,说实话离本版码农还是太远太远。

【在 w***g 的大作中提到】
: 数据库是C++的弱项。
w***g
发帖数: 5958
8
你这个巨大优势有神棍的嫌疑。
话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
我同时用C++和python,就发现同样的程序C++代码量并不比python多。
而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
代码量发明的。)
其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。
不过我自己有个处理大文本的轮子,可以一面用足sequential read的
带宽,一面用足所有的core并行处理。

【在 T********i 的大作中提到】
: 也不算了。就那么几个query, result的data binding。手写又能花多少时间?
: C++真正的问题是,即使做科学计算,比java, .net之类的也没啥优势。速度差异基本
: 可以忽略。
: 真正巨大优势的应用,说实话离本版码农还是太远太远。

e*******o
发帖数: 4654
9
大牛有没有试过D?跑得快 编译也快
cpp 想学 但觉得坑太多
Python 我用用pool 来并行 感觉还行啊 开销可能大一些

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

T********i
发帖数: 2416
10
这个巨大优势其实和C++无关。但是能利用到也就是C和C++了。赵策说卖机器的也没全
错。基本和算法之类关系也不大。
python就别说了。这玩意儿就能起duct tape作用。
处理文件用Java,C#一样够用。即使边处理边计算也一样。trick就是永远只有一个线
程sequential读。读完了,扔给另外一个线程处理。然后继续读。把磁盘I/O用满。
超过一个线程同时读写大文件,即使SSD,性能下降也是非线性的。
很多情况下,不但是单机,而且还是单线程最优。

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

相关主题
这个go的吐槽很客观关于用 Eclipse 开发C++ 程序
郁闷ruby,python有没有自己的ide?
编程语言选择问题vim值得学吗?
进入Programming版参与讨论
w***g
发帖数: 5958
11
编译成机器码的语言,要么你就别学。如果真要学,
第一件事情是把C++学好。至于要不要机器吗,还是
字节码就足够好了这个另说。

【在 e*******o 的大作中提到】
: 大牛有没有试过D?跑得快 编译也快
: cpp 想学 但觉得坑太多
: Python 我用用pool 来并行 感觉还行啊 开销可能大一些

e*******o
发帖数: 4654
12
谢大牛
接下来着手把手头的Python 用cpp 重写一下 练练手

【在 w***g 的大作中提到】
: 编译成机器码的语言,要么你就别学。如果真要学,
: 第一件事情是把C++学好。至于要不要机器吗,还是
: 字节码就足够好了这个另说。

d****i
发帖数: 4809
13
Exactly, for native compiled language, the only thing you want to learn is C
and C++, no other languages can beat them in speed and generated machine
code. You always sacrifice performance when you add more advanced features
which is absolutely unnecessary for system programming.

【在 w***g 的大作中提到】
: 编译成机器码的语言,要么你就别学。如果真要学,
: 第一件事情是把C++学好。至于要不要机器吗,还是
: 字节码就足够好了这个另说。

J*****n
发帖数: 4859
14

It is not true. C# can also be programmed on other system. You can google "
Mono".
I personally think C#'s design is better than JAVA. But, silicon valley's
guys don't like it, because it is MS product.
To my mind, unless you need very very speed-efficient code, C# is a much
better choice than C++.

【在 d****i 的大作中提到】
: C++, Java, C# they are all in the same big C family languages. No big
: difference in terms of syntax, the only big difference is: C++ is native
: while C# and Java are VM based languages. The big diff between C# and Java
: is: C# is Microsoft and Windows specific and Java is more general and
: commonly used on Unix/Linux systems.

l*********s
发帖数: 5409
15
C# is a better language, 然并軟,its fate has been tied to windows and Mono
won't be able to save it.
J*****n
发帖数: 4859
16

Mono
Well, in past 20 year, we see huge amount of IT/high tech firms shut down or
got merged. MS is still over there. Its Visual Studio, Windows and Office
are still widely used by many people/corps. Whatever you say, unless MS dump
.NET, C# will be one of the most reliable programming languages we can
trust.

【在 l*********s 的大作中提到】
: C# is a better language, 然并軟,its fate has been tied to windows and Mono
: won't be able to save it.

l*********s
发帖数: 5409
17
not many softwares nowadays are windows-only. Games are notable exceptions,
but it is an industry dominated by c++.

or
dump

【在 J*****n 的大作中提到】
:
: Mono
: Well, in past 20 year, we see huge amount of IT/high tech firms shut down or
: got merged. MS is still over there. Its Visual Studio, Windows and Office
: are still widely used by many people/corps. Whatever you say, unless MS dump
: .NET, C# will be one of the most reliable programming languages we can
: trust.

m**u
发帖数: 541
18
不要听人吓罗罗,这里大多数都是把人往沟里带的主。
老老实实把C/C++当作语言学了,其它的都是菜渣。
J*****n
发帖数: 4859
19

Well, learning C++ is a really time costing process, meanwhile, you need a
really time-sensitive project to really grasp the C++'s unique features(like
memory management, multi-thread). I learned C++ from a C++ veteran, but I
still only know very little about its advanced feature.
My suggest is to learn it when u really need it, then it will save lots of
time.

【在 m**u 的大作中提到】
: 不要听人吓罗罗,这里大多数都是把人往沟里带的主。
: 老老实实把C/C++当作语言学了,其它的都是菜渣。

w***x
发帖数: 105
20
其实很多情况下性能都是和OS/HW相关的,JAVA之类的语言活在虚拟的os中,适合懒惰
的程序员,性能好不好得靠祈祷;c/c++类的语言提供了接触真实OS的界面,性能还写
不好是因为对系统知识不了解,如此而已。

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

相关主题
关于语言的争论总结一下用vim/emacs相当于开手动车
type inferience 好处是什么用linux真费劲,经常出现莫名其妙的问题
请推荐linux下c++的IDEnode.js快,到底什么是根本的原因?
进入Programming版参与讨论
b***i
发帖数: 3043
21
C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
成异步。
前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最
多乘方,连三角函数都不用的。还有,主要是字符串查找,员工工资,姓名,等数据库
操作,甚至普通的互联网操作,这些都不适合C++,能不用就不用,而用Java会非常方
便。从这个角度说,Java是互联网商业的编程语言。
而在电子工程方面,和硬件打交道,比如我要和FPGA里面的10个串口通信,现在Java还
搞不定,而C#还没有在Linux上,所以还得搞C++。但是一有机会,我就不用C++,比如
我们有一个软件要和工业设备进行通信,我都直接用Java了。

【在 d******a 的大作中提到】
: 我知道C#能干那些
: 我说的是C#的逼格不够
: C++比C#麻烦多少?

L****8
发帖数: 3938
22
你个弱智贱逼 还是老老实实干你本行

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

b*******s
发帖数: 5216
23
科学计算算矩阵优势明显

【在 T********i 的大作中提到】
: 也不算了。就那么几个query, result的data binding。手写又能花多少时间?
: C++真正的问题是,即使做科学计算,比java, .net之类的也没啥优势。速度差异基本
: 可以忽略。
: 真正巨大优势的应用,说实话离本版码农还是太远太远。

b*******s
发帖数: 5216
24
rust有机会,不过可能比c有点远了,你未必能接受

C

【在 d****i 的大作中提到】
: Exactly, for native compiled language, the only thing you want to learn is C
: and C++, no other languages can beat them in speed and generated machine
: code. You always sacrifice performance when you add more advanced features
: which is absolutely unnecessary for system programming.

b*******s
发帖数: 5216
25
学好c++,在工程实践中能不用就不要用,这是我的看法
但是如果是写性能有关的app,与其用c,不如c++,起码写算法简单得多
S****8
发帖数: 401
26
都是C++ metatemplating的功劳了

【在 b*******s 的大作中提到】
: 科学计算算矩阵优势明显
n*******7
发帖数: 181
27
这是在给本版码农挣脸吗?:)
t*****n
发帖数: 4908
28
无知者无畏。
Q 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名
字。很多情况下,一个函数要分开写在.h, .cpp里,
你没有用过eclipse的refactor功能。当然费力了。
Q 而且,.h里如果用static修饰类的函数居然在.cpp里必须没有static。还有就是模板
搞得编译出错的解释很不清楚。找函数在哪用的,找到的有一大堆字符串和注释出现的
,这也算。
你还没走好就开始跑。没事干搞一堆模板干嘛?
Q 最普通的互联网的操作比如sha, base64, json都不在标准里面,要自己找第三方的
代码。到现在微软VS2015都不能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理
(线程里)加个超时居然要改成异步。
没玩过。google一下有很多库。jsoncpp用过,不错。

【在 b***i 的大作中提到】
: C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
: 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
: 。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
: 数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
: 在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
: sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
: 能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
: 成异步。
: 前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
: 比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最

t*****n
发帖数: 4908
29
C++不会过时。只有学不会的人。

【在 b***i 的大作中提到】
: C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
: 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
: 。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
: 数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
: 在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
: sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
: 能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
: 成异步。
: 前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
: 比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最

t*****n
发帖数: 4908
30
C++不会过时。只有学不会的人。

【在 b***i 的大作中提到】
: C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
: 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
: 。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
: 数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
: 在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
: sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
: 能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
: 成异步。
: 前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
: 比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最

相关主题
谁能推荐一个支持Cmake的C++ IDEC++ IDE under Linux
现在哪个C++ IDE比较好?java是个骗人的语言
C++11痛并快乐着现在来这个版都是来调戏一些java黑的
进入Programming版参与讨论
t*******l
发帖数: 3662
31
@bihai
你static header 和 cplusplus 文件重复定义的问题那是你理解问题 不是c+的问题。
头文件是要包括在源代码里面。本来static 的概念就是全局分, 局部可见。所以你当
然不能重复定yi
b***i
发帖数: 3043
32
这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
.h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
定义函数,没有重复。这才叫编程序。
前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的
using都改名了。Eclipse这种就不配叫Refactor,还是应该学VS2015,叫rename。
第二个,即使你不定义模板,你能不使用吗?随便一个asio都要传入用模板的变量。我
如果写错了类别,编译器出错那是一大堆无关的,连系统的头文件都说错了。难道不能
直接指向我的程序里哪错了吗?前面一大堆啰里啰唆干什么,就是编译器没有能力指出
到底哪里错了。
我上面说的问题,都是C++不完美的地方,是可以做更好的。另外去年C++11才整合到G+
+里面,还有Visual Studio,终于跨平台了。可是asio还没有在C++11里面,还有很多
我说的公认的库不在标准里面。就是慢。看Java,15年前就都有了。
总的来说,主流纯软件编程已经不用C++了,除了游戏,还有高性能的领域。不过,C++
11算是给C++整了容,所以现在缓过来了一下。要不然真要捂着鼻子用。
不管怎么说,楼主是不应该学C++的。

【在 t*******l 的大作中提到】
: @bihai
: 你static header 和 cplusplus 文件重复定义的问题那是你理解问题 不是c+的问题。
: 头文件是要包括在源代码里面。本来static 的概念就是全局分, 局部可见。所以你当
: 然不能重复定yi

N********n
发帖数: 8363
33

数据库操作C#强于C++。后者适合做系统或者协议级别的编程。

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

m********5
发帖数: 17667
34
The performance is usually far better in C/C++, if you need to implement
your algorithm from scratch. In most cases, maintaining the C and python
projects is pure torment. Normally I would have the impulsion to re-write
them instead of digging into the giant calling trees to figure out what the
arguments mean.
Still I prefer python + C over C++. If you have run-time error in C++, it is
almost not debug-able. Among the few better things in C++ comparing to C,
the template is definitely the best. However, interfacing C++ is the pain in
the ass, I'd rather use C if possible. I knew lots of people try to use
customized tool chains to solve this problem. But it is still very very
difficult to automate them and not really portable.
BTW: I had used the python to process 1TB/single file, never met any
performance trap. I/O of python is mostly C.

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

m********5
发帖数: 17667
35
rust is definitely teh future. Just need more libraries, which might be
difficult in 10 years.

【在 b*******s 的大作中提到】
: rust有机会,不过可能比c有点远了,你未必能接受
:
: C

t*****n
发帖数: 4908
36
Q 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一
个文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即
使我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。
C/C++的程序员不会在意这些的。C/C++没有IDE可以做这个,也不需要。有find+sed,
没有改不了的东西。
Q 第二个,即使你不定义模板,你能不使用吗?随便一个asio都要传入用模板的变量。
我如果写错了类别,编译器出错那是一大堆无关的,连系统的头文件都说错了。难道不
能直接指向我的程序里哪错了吗?前面一大堆啰里啰唆干什么,就是编译器没有能力指
出到底哪里错了。
你应该去问asio的人,而不是发C++的牢骚。STL用了10多年了,没觉得不好用。有事可
以google。你不能因为水脏了就把孩子也泼掉吧。
Q 总的来说,主流纯软件编程已经不用C++了,除了游戏,还有高性能的领域。不过,C
++11算是给C++整了容,所以现在缓过来了一下。要不然真要捂着鼻子用。
没这回事。只有backbend和对IO要求比较低的,JAVA有用处。其他的没戏。而且在
backend的空间一天一天被挤压。

【在 b***i 的大作中提到】
: 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
: 问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
: .h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
: 定义函数,没有重复。这才叫编程序。
: 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
: 文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
: 我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
: 就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
: 地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
: 这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的

t*****n
发帖数: 4908
37
你要觉得java好,就学好了。没必要说C++不好。可怜java版无比萧条。。。。。

【在 b***i 的大作中提到】
: 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
: 问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
: .h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
: 定义函数,没有重复。这才叫编程序。
: 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
: 文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
: 我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
: 就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
: 地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
: 这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的

p******g
发帖数: 347
38

separated header/source for declaration/definition is a very good design.
Java also doesn't have it but i bet it regretted it that's why they need
javadoc, which IS effectively header files.
Plus, there are tools to create header files from sources automatically. but
writing declarations in headers is always the first step for me before i
actually write the source. that's the way to design software.
of course a decent c++ IDE will update the includes when you rename your
files. i always do that with NetBeans. i bet eclipse/msvs will do that, too.
and if you don't want template, you can always write your own wrapper class
to get rid of template.
as for UTF-8, that's a windows OS problem. it simply because MS doesn't want
utf-8.
even though u've been using c++ all the time, i think you should really get
a c++ guru to brush up your c++ knowledge.

【在 b***i 的大作中提到】
: 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
: 问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
: .h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
: 定义函数,没有重复。这才叫编程序。
: 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
: 文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
: 我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
: 就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
: 地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
: 这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的

b***i
发帖数: 3043
39
不用多说, 你居然觉得javadoc是header?
C的头文件是给编译器看的,javadoc是给人看的,象参考书一样。现在vs也是这样吧注
释内容现实出来,就是抄java的。
另外, 你又假定java设计者后悔了,其实c++/c的 include是短板,恰恰和你想的相反
,是c始祖设计的不足。java设计比c++晚了好几年,很多高手研究了c++的不足才设计
出java。我一开始也是瞧不起java,知道写了几万行java才发现是我错了。你要是Java
没写到几万行,还是不配评论这两个语言优劣的
还有, eclipse.msvc都做不到你说的自动更改文件名
再说了, c++学好有啥用,浪费时间,不如学java

but
too.
class

【在 p******g 的大作中提到】
:
: separated header/source for declaration/definition is a very good design.
: Java also doesn't have it but i bet it regretted it that's why they need
: javadoc, which IS effectively header files.
: Plus, there are tools to create header files from sources automatically. but
: writing declarations in headers is always the first step for me before i
: actually write the source. that's the way to design software.
: of course a decent c++ IDE will update the includes when you rename your
: files. i always do that with NetBeans. i bet eclipse/msvs will do that, too.
: and if you don't want template, you can always write your own wrapper class

b*******s
发帖数: 5216
40
c++ may have compiler time gc and module import before long

Java

【在 b***i 的大作中提到】
: 不用多说, 你居然觉得javadoc是header?
: C的头文件是给编译器看的,javadoc是给人看的,象参考书一样。现在vs也是这样吧注
: 释内容现实出来,就是抄java的。
: 另外, 你又假定java设计者后悔了,其实c++/c的 include是短板,恰恰和你想的相反
: ,是c始祖设计的不足。java设计比c++晚了好几年,很多高手研究了c++的不足才设计
: 出java。我一开始也是瞧不起java,知道写了几万行java才发现是我错了。你要是Java
: 没写到几万行,还是不配评论这两个语言优劣的
: 还有, eclipse.msvc都做不到你说的自动更改文件名
: 再说了, c++学好有啥用,浪费时间,不如学java
:

相关主题
现在来这个版都是来调戏一些java黑的郁闷
问一下,scala之父的那本教程怎么样?值得看么?编程语言选择问题
这个go的吐槽很客观关于用 Eclipse 开发C++ 程序
进入Programming版参与讨论
d******a
发帖数: 32122
41
感觉C#逼格不够
不知道用C++干活会增加多少麻烦
主要就是计算+数据库读写
h*******u
发帖数: 15326
42
这两样C#够了

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

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

http://numerics.mathdotnet.com/

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

d******a
发帖数: 32122
44
我知道C#能干那些
我说的是C#的逼格不够
C++比C#麻烦多少?

【在 k**********g 的大作中提到】
:
: http://numerics.mathdotnet.com/

d****i
发帖数: 4809
45
C++, Java, C# they are all in the same big C family languages. No big
difference in terms of syntax, the only big difference is: C++ is native
while C# and Java are VM based languages. The big diff between C# and Java
is: C# is Microsoft and Windows specific and Java is more general and
commonly used on Unix/Linux systems.

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

w***g
发帖数: 5958
46
数据库是C++的弱项。

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

T********i
发帖数: 2416
47
也不算了。就那么几个query, result的data binding。手写又能花多少时间?
C++真正的问题是,即使做科学计算,比java, .net之类的也没啥优势。速度差异基本
可以忽略。
真正巨大优势的应用,说实话离本版码农还是太远太远。

【在 w***g 的大作中提到】
: 数据库是C++的弱项。
w***g
发帖数: 5958
48
你这个巨大优势有神棍的嫌疑。
话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
我同时用C++和python,就发现同样的程序C++代码量并不比python多。
而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
代码量发明的。)
其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。
不过我自己有个处理大文本的轮子,可以一面用足sequential read的
带宽,一面用足所有的core并行处理。

【在 T********i 的大作中提到】
: 也不算了。就那么几个query, result的data binding。手写又能花多少时间?
: C++真正的问题是,即使做科学计算,比java, .net之类的也没啥优势。速度差异基本
: 可以忽略。
: 真正巨大优势的应用,说实话离本版码农还是太远太远。

e*******o
发帖数: 4654
49
大牛有没有试过D?跑得快 编译也快
cpp 想学 但觉得坑太多
Python 我用用pool 来并行 感觉还行啊 开销可能大一些

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

T********i
发帖数: 2416
50
这个巨大优势其实和C++无关。但是能利用到也就是C和C++了。赵策说卖机器的也没全
错。基本和算法之类关系也不大。
python就别说了。这玩意儿就能起duct tape作用。
处理文件用Java,C#一样够用。即使边处理边计算也一样。trick就是永远只有一个线
程sequential读。读完了,扔给另外一个线程处理。然后继续读。把磁盘I/O用满。
超过一个线程同时读写大文件,即使SSD,性能下降也是非线性的。
很多情况下,不但是单机,而且还是单线程最优。

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

相关主题
ruby,python有没有自己的ide?type inferience 好处是什么
vim值得学吗?请推荐linux下c++的IDE
关于语言的争论总结一下用vim/emacs相当于开手动车
进入Programming版参与讨论
w***g
发帖数: 5958
51
编译成机器码的语言,要么你就别学。如果真要学,
第一件事情是把C++学好。至于要不要机器吗,还是
字节码就足够好了这个另说。

【在 e*******o 的大作中提到】
: 大牛有没有试过D?跑得快 编译也快
: cpp 想学 但觉得坑太多
: Python 我用用pool 来并行 感觉还行啊 开销可能大一些

e*******o
发帖数: 4654
52
谢大牛
接下来着手把手头的Python 用cpp 重写一下 练练手

【在 w***g 的大作中提到】
: 编译成机器码的语言,要么你就别学。如果真要学,
: 第一件事情是把C++学好。至于要不要机器吗,还是
: 字节码就足够好了这个另说。

d****i
发帖数: 4809
53
Exactly, for native compiled language, the only thing you want to learn is C
and C++, no other languages can beat them in speed and generated machine
code. You always sacrifice performance when you add more advanced features
which is absolutely unnecessary for system programming.

【在 w***g 的大作中提到】
: 编译成机器码的语言,要么你就别学。如果真要学,
: 第一件事情是把C++学好。至于要不要机器吗,还是
: 字节码就足够好了这个另说。

J*****n
发帖数: 4859
54

It is not true. C# can also be programmed on other system. You can google "
Mono".
I personally think C#'s design is better than JAVA. But, silicon valley's
guys don't like it, because it is MS product.
To my mind, unless you need very very speed-efficient code, C# is a much
better choice than C++.

【在 d****i 的大作中提到】
: C++, Java, C# they are all in the same big C family languages. No big
: difference in terms of syntax, the only big difference is: C++ is native
: while C# and Java are VM based languages. The big diff between C# and Java
: is: C# is Microsoft and Windows specific and Java is more general and
: commonly used on Unix/Linux systems.

l*********s
发帖数: 5409
55
C# is a better language, 然并軟,its fate has been tied to windows and Mono
won't be able to save it.
J*****n
发帖数: 4859
56

Mono
Well, in past 20 year, we see huge amount of IT/high tech firms shut down or
got merged. MS is still over there. Its Visual Studio, Windows and Office
are still widely used by many people/corps. Whatever you say, unless MS dump
.NET, C# will be one of the most reliable programming languages we can
trust.

【在 l*********s 的大作中提到】
: C# is a better language, 然并軟,its fate has been tied to windows and Mono
: won't be able to save it.

l*********s
发帖数: 5409
57
not many softwares nowadays are windows-only. Games are notable exceptions,
but it is an industry dominated by c++.

or
dump

【在 J*****n 的大作中提到】
:
: Mono
: Well, in past 20 year, we see huge amount of IT/high tech firms shut down or
: got merged. MS is still over there. Its Visual Studio, Windows and Office
: are still widely used by many people/corps. Whatever you say, unless MS dump
: .NET, C# will be one of the most reliable programming languages we can
: trust.

m**u
发帖数: 541
58
不要听人吓罗罗,这里大多数都是把人往沟里带的主。
老老实实把C/C++当作语言学了,其它的都是菜渣。
J*****n
发帖数: 4859
59

Well, learning C++ is a really time costing process, meanwhile, you need a
really time-sensitive project to really grasp the C++'s unique features(like
memory management, multi-thread). I learned C++ from a C++ veteran, but I
still only know very little about its advanced feature.
My suggest is to learn it when u really need it, then it will save lots of
time.

【在 m**u 的大作中提到】
: 不要听人吓罗罗,这里大多数都是把人往沟里带的主。
: 老老实实把C/C++当作语言学了,其它的都是菜渣。

w***x
发帖数: 105
60
其实很多情况下性能都是和OS/HW相关的,JAVA之类的语言活在虚拟的os中,适合懒惰
的程序员,性能好不好得靠祈祷;c/c++类的语言提供了接触真实OS的界面,性能还写
不好是因为对系统知识不了解,如此而已。

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

相关主题
用linux真费劲,经常出现莫名其妙的问题现在哪个C++ IDE比较好?
node.js快,到底什么是根本的原因?C++11痛并快乐着
谁能推荐一个支持Cmake的C++ IDEC++ IDE under Linux
进入Programming版参与讨论
b***i
发帖数: 3043
61
C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
成异步。
前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最
多乘方,连三角函数都不用的。还有,主要是字符串查找,员工工资,姓名,等数据库
操作,甚至普通的互联网操作,这些都不适合C++,能不用就不用,而用Java会非常方
便。从这个角度说,Java是互联网商业的编程语言。
而在电子工程方面,和硬件打交道,比如我要和FPGA里面的10个串口通信,现在Java还
搞不定,而C#还没有在Linux上,所以还得搞C++。但是一有机会,我就不用C++,比如
我们有一个软件要和工业设备进行通信,我都直接用Java了。

【在 d******a 的大作中提到】
: 我知道C#能干那些
: 我说的是C#的逼格不够
: C++比C#麻烦多少?

b*******s
发帖数: 5216
62
科学计算算矩阵优势明显

【在 T********i 的大作中提到】
: 也不算了。就那么几个query, result的data binding。手写又能花多少时间?
: C++真正的问题是,即使做科学计算,比java, .net之类的也没啥优势。速度差异基本
: 可以忽略。
: 真正巨大优势的应用,说实话离本版码农还是太远太远。

b*******s
发帖数: 5216
63
rust有机会,不过可能比c有点远了,你未必能接受

C

【在 d****i 的大作中提到】
: Exactly, for native compiled language, the only thing you want to learn is C
: and C++, no other languages can beat them in speed and generated machine
: code. You always sacrifice performance when you add more advanced features
: which is absolutely unnecessary for system programming.

b*******s
发帖数: 5216
64
学好c++,在工程实践中能不用就不要用,这是我的看法
但是如果是写性能有关的app,与其用c,不如c++,起码写算法简单得多
S****8
发帖数: 401
65
都是C++ metatemplating的功劳了

【在 b*******s 的大作中提到】
: 科学计算算矩阵优势明显
n*******7
发帖数: 181
66
这是在给本版码农挣脸吗?:)
t*****n
发帖数: 4908
67
无知者无畏。
Q 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名
字。很多情况下,一个函数要分开写在.h, .cpp里,
你没有用过eclipse的refactor功能。当然费力了。
Q 而且,.h里如果用static修饰类的函数居然在.cpp里必须没有static。还有就是模板
搞得编译出错的解释很不清楚。找函数在哪用的,找到的有一大堆字符串和注释出现的
,这也算。
你还没走好就开始跑。没事干搞一堆模板干嘛?
Q 最普通的互联网的操作比如sha, base64, json都不在标准里面,要自己找第三方的
代码。到现在微软VS2015都不能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理
(线程里)加个超时居然要改成异步。
没玩过。google一下有很多库。jsoncpp用过,不错。

【在 b***i 的大作中提到】
: C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
: 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
: 。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
: 数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
: 在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
: sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
: 能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
: 成异步。
: 前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
: 比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最

t*****n
发帖数: 4908
68
C++不会过时。只有学不会的人。

【在 b***i 的大作中提到】
: C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
: 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
: 。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
: 数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
: 在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
: sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
: 能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
: 成异步。
: 前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
: 比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最

t*****n
发帖数: 4908
69
C++不会过时。只有学不会的人。

【在 b***i 的大作中提到】
: C++是一个过时的语言,很大的局限性,主要体现在它阻碍生产效率。
: 我要复制一个项目,搞半天。要重命名一个类,结果要自己手动改#include里面的名字
: 。很多情况下,一个函数要分开写在.h, .cpp里,而且,.h里如果用static修饰类的函
: 数居然在.cpp里必须没有static。还有就是模板搞得编译出错的解释很不清楚。找函数
: 在哪用的,找到的有一大堆字符串和注释出现的,这也算。最普通的互联网的操作比如
: sha, base64, json都不在标准里面,要自己找第三方的代码。到现在微软VS2015都不
: 能完美支持UTF-8。处理个TCP/IP麻烦要死,要同步处理(线程里)加个超时居然要改
: 成异步。
: 前面有人说过了,C++是电子工程师的工具,是用来和硬件打交道的。另外,某些方面
: 比如游戏产业用它追求效率。而商业软件就是算账,进货出货,订机票,加减乘除,最

t*******l
发帖数: 3662
70
@bihai
你static header 和 cplusplus 文件重复定义的问题那是你理解问题 不是c+的问题。
头文件是要包括在源代码里面。本来static 的概念就是全局分, 局部可见。所以你当
然不能重复定yi
相关主题
C++ IDE under Linux问一下,scala之父的那本教程怎么样?值得看么?
java是个骗人的语言这个go的吐槽很客观
现在来这个版都是来调戏一些java黑的郁闷
进入Programming版参与讨论
b***i
发帖数: 3043
71
这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
.h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
定义函数,没有重复。这才叫编程序。
前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的
using都改名了。Eclipse这种就不配叫Refactor,还是应该学VS2015,叫rename。
第二个,即使你不定义模板,你能不使用吗?随便一个asio都要传入用模板的变量。我
如果写错了类别,编译器出错那是一大堆无关的,连系统的头文件都说错了。难道不能
直接指向我的程序里哪错了吗?前面一大堆啰里啰唆干什么,就是编译器没有能力指出
到底哪里错了。
我上面说的问题,都是C++不完美的地方,是可以做更好的。另外去年C++11才整合到G+
+里面,还有Visual Studio,终于跨平台了。可是asio还没有在C++11里面,还有很多
我说的公认的库不在标准里面。就是慢。看Java,15年前就都有了。
总的来说,主流纯软件编程已经不用C++了,除了游戏,还有高性能的领域。不过,C++
11算是给C++整了容,所以现在缓过来了一下。要不然真要捂着鼻子用。
不管怎么说,楼主是不应该学C++的。

【在 t*******l 的大作中提到】
: @bihai
: 你static header 和 cplusplus 文件重复定义的问题那是你理解问题 不是c+的问题。
: 头文件是要包括在源代码里面。本来static 的概念就是全局分, 局部可见。所以你当
: 然不能重复定yi

N********n
发帖数: 8363
72

数据库操作C#强于C++。后者适合做系统或者协议级别的编程。

【在 d******a 的大作中提到】
: 感觉C#逼格不够
: 不知道用C++干活会增加多少麻烦
: 主要就是计算+数据库读写

m********5
发帖数: 17667
73
The performance is usually far better in C/C++, if you need to implement
your algorithm from scratch. In most cases, maintaining the C and python
projects is pure torment. Normally I would have the impulsion to re-write
them instead of digging into the giant calling trees to figure out what the
arguments mean.
Still I prefer python + C over C++. If you have run-time error in C++, it is
almost not debug-able. Among the few better things in C++ comparing to C,
the template is definitely the best. However, interfacing C++ is the pain in
the ass, I'd rather use C if possible. I knew lots of people try to use
customized tool chains to solve this problem. But it is still very very
difficult to automate them and not really portable.
BTW: I had used the python to process 1TB/single file, never met any
performance trap. I/O of python is mostly C.

【在 w***g 的大作中提到】
: 你这个巨大优势有神棍的嫌疑。
: 话说C++确实性能上没太大优势,不过在可写性上也没太大劣势。
: 我同时用C++和python,就发现同样的程序C++代码量并不比python多。
: 而且静态编译能省很多事。我最痛恨python的一点就是等好几个小时
: 然后都快跑完了出一个语法错误。然后就是C++里openmp + parallel mode
: 的几乎免费的并行计算。C++对比python的劣势是python ecosystem阵容
: 太强大了。(java我就不说了,java这个语言似乎专门就是为了增加
: 代码量发明的。)
: 其实C++日常数据处理的性能上还是有优势的。比如处理一个10G的文本
: 文件,如果用python的话我基本上就不能忍了。其实用iostream也不行。

m********5
发帖数: 17667
74
rust is definitely teh future. Just need more libraries, which might be
difficult in 10 years.

【在 b*******s 的大作中提到】
: rust有机会,不过可能比c有点远了,你未必能接受
:
: C

t*****n
发帖数: 4908
75
Q 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一
个文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即
使我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。
C/C++的程序员不会在意这些的。C/C++没有IDE可以做这个,也不需要。有find+sed,
没有改不了的东西。
Q 第二个,即使你不定义模板,你能不使用吗?随便一个asio都要传入用模板的变量。
我如果写错了类别,编译器出错那是一大堆无关的,连系统的头文件都说错了。难道不
能直接指向我的程序里哪错了吗?前面一大堆啰里啰唆干什么,就是编译器没有能力指
出到底哪里错了。
你应该去问asio的人,而不是发C++的牢骚。STL用了10多年了,没觉得不好用。有事可
以google。你不能因为水脏了就把孩子也泼掉吧。
Q 总的来说,主流纯软件编程已经不用C++了,除了游戏,还有高性能的领域。不过,C
++11算是给C++整了容,所以现在缓过来了一下。要不然真要捂着鼻子用。
没这回事。只有backbend和对IO要求比较低的,JAVA有用处。其他的没戏。而且在
backend的空间一天一天被挤压。

【在 b***i 的大作中提到】
: 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
: 问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
: .h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
: 定义函数,没有重复。这才叫编程序。
: 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
: 文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
: 我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
: 就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
: 地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
: 这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的

t*****n
发帖数: 4908
76
你要觉得java好,就学好了。没必要说C++不好。可怜java版无比萧条。。。。。

【在 b***i 的大作中提到】
: 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
: 问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
: .h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
: 定义函数,没有重复。这才叫编程序。
: 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
: 文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
: 我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
: 就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
: 地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
: 这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的

p******g
发帖数: 347
77

separated header/source for declaration/definition is a very good design.
Java also doesn't have it but i bet it regretted it that's why they need
javadoc, which IS effectively header files.
Plus, there are tools to create header files from sources automatically. but
writing declarations in headers is always the first step for me before i
actually write the source. that's the way to design software.
of course a decent c++ IDE will update the includes when you rename your
files. i always do that with NetBeans. i bet eclipse/msvs will do that, too.
and if you don't want template, you can always write your own wrapper class
to get rid of template.
as for UTF-8, that's a windows OS problem. it simply because MS doesn't want
utf-8.
even though u've been using c++ all the time, i think you should really get
a c++ guru to brush up your c++ knowledge.

【在 b***i 的大作中提到】
: 这个static呢,是因为.h/.cpp就是破烂补丁。类全部放在cpp文件没有.h也是可以解决
: 问题的。比如,定义一个keyword叫import "test.cpp"就让编译器来动态导出一个类似
: .h的文件出来。但是C++没有这样做。你看Java怎么解决的,那叫完美,只有一个地方
: 定义函数,没有重复。这才叫编程序。
: 前面tjhaven说的问题,解释一下。C++为了兼容以前的C,导致了不方便。比如,一个
: 文件可以定义多个类。这样,你改了类的名字,文件名不自动改,也没法自动改,即使
: 我文件里面就一个类,即使我文件名和类名一样,IDE也改不了。这些都是历史问题,
: 就是我说C++过时的原因。好,我手动改文件名行吗?改完了,所有include这个文件的
: 地方都不能自动改。也不是说我做了什么字符串运算,那些都是文件名,改起来难吗?
: 这些在楼主的C#里面都不是事,改了类名,文件名也改了,所有引用该类的地方的

b***i
发帖数: 3043
78
不用多说, 你居然觉得javadoc是header?
C的头文件是给编译器看的,javadoc是给人看的,象参考书一样。现在vs也是这样吧注
释内容现实出来,就是抄java的。
另外, 你又假定java设计者后悔了,其实c++/c的 include是短板,恰恰和你想的相反
,是c始祖设计的不足。java设计比c++晚了好几年,很多高手研究了c++的不足才设计
出java。我一开始也是瞧不起java,知道写了几万行java才发现是我错了。你要是Java
没写到几万行,还是不配评论这两个语言优劣的
还有, eclipse.msvc都做不到你说的自动更改文件名
再说了, c++学好有啥用,浪费时间,不如学java

but
too.
class

【在 p******g 的大作中提到】
:
: separated header/source for declaration/definition is a very good design.
: Java also doesn't have it but i bet it regretted it that's why they need
: javadoc, which IS effectively header files.
: Plus, there are tools to create header files from sources automatically. but
: writing declarations in headers is always the first step for me before i
: actually write the source. that's the way to design software.
: of course a decent c++ IDE will update the includes when you rename your
: files. i always do that with NetBeans. i bet eclipse/msvs will do that, too.
: and if you don't want template, you can always write your own wrapper class

b*******s
发帖数: 5216
79
c++ may have compiler time gc and module import before long

Java

【在 b***i 的大作中提到】
: 不用多说, 你居然觉得javadoc是header?
: C的头文件是给编译器看的,javadoc是给人看的,象参考书一样。现在vs也是这样吧注
: 释内容现实出来,就是抄java的。
: 另外, 你又假定java设计者后悔了,其实c++/c的 include是短板,恰恰和你想的相反
: ,是c始祖设计的不足。java设计比c++晚了好几年,很多高手研究了c++的不足才设计
: 出java。我一开始也是瞧不起java,知道写了几万行java才发现是我错了。你要是Java
: 没写到几万行,还是不配评论这两个语言优劣的
: 还有, eclipse.msvc都做不到你说的自动更改文件名
: 再说了, c++学好有啥用,浪费时间,不如学java
:

J**********r
发帖数: 508
80
agree

【在 m**u 的大作中提到】
: 不要听人吓罗罗,这里大多数都是把人往沟里带的主。
: 老老实实把C/C++当作语言学了,其它的都是菜渣。

相关主题
编程语言选择问题vim值得学吗?
关于用 Eclipse 开发C++ 程序关于语言的争论总结一下
ruby,python有没有自己的ide?type inferience 好处是什么
进入Programming版参与讨论
J**********r
发帖数: 508
81
你去高盛,摩根斯坦利去问问,不会C++,你就做做developer的工作,核心你是触摸不
到的。
对于高频交易,必须C++

Java

【在 b***i 的大作中提到】
: 不用多说, 你居然觉得javadoc是header?
: C的头文件是给编译器看的,javadoc是给人看的,象参考书一样。现在vs也是这样吧注
: 释内容现实出来,就是抄java的。
: 另外, 你又假定java设计者后悔了,其实c++/c的 include是短板,恰恰和你想的相反
: ,是c始祖设计的不足。java设计比c++晚了好几年,很多高手研究了c++的不足才设计
: 出java。我一开始也是瞧不起java,知道写了几万行java才发现是我错了。你要是Java
: 没写到几万行,还是不配评论这两个语言优劣的
: 还有, eclipse.msvc都做不到你说的自动更改文件名
: 再说了, c++学好有啥用,浪费时间,不如学java
:

c*********e
发帖数: 16335
82
迅雷之类的快速下载,只有一个线程sequential读文件?

【在 T********i 的大作中提到】
: 这个巨大优势其实和C++无关。但是能利用到也就是C和C++了。赵策说卖机器的也没全
: 错。基本和算法之类关系也不大。
: python就别说了。这玩意儿就能起duct tape作用。
: 处理文件用Java,C#一样够用。即使边处理边计算也一样。trick就是永远只有一个线
: 程sequential读。读完了,扔给另外一个线程处理。然后继续读。把磁盘I/O用满。
: 超过一个线程同时读写大文件,即使SSD,性能下降也是非线性的。
: 很多情况下,不但是单机,而且还是单线程最优。

w***g
发帖数: 5958
83
建议你在网络处理这块不要挑战魏老师. 据我的观察, 本版近几年发过贴
的应该没有在这方面技术上比魏老师更明白的. 你可以去看眼DPDK的文档,
大致应该就知道是怎么回事了. 迅雷和魏老师说的不是一个层次的技术.

【在 c*********e 的大作中提到】
: 迅雷之类的快速下载,只有一个线程sequential读文件?
1 (共1页)
进入Programming版参与讨论
相关主题
用linux真费劲,经常出现莫名其妙的问题问一下,scala之父的那本教程怎么样?值得看么?
node.js快,到底什么是根本的原因?这个go的吐槽很客观
谁能推荐一个支持Cmake的C++ IDE郁闷
现在哪个C++ IDE比较好?编程语言选择问题
C++11痛并快乐着关于用 Eclipse 开发C++ 程序
C++ IDE under Linuxruby,python有没有自己的ide?
java是个骗人的语言vim值得学吗?
现在来这个版都是来调戏一些java黑的关于语言的争论总结一下
相关话题的讨论汇总
话题: c++话题: java话题: c#话题: python话题: ms