- 主题:试用Rust一个月之感想
我一直以为高效就是内存和cpu消耗少,不知道模板和这有啥关系,JAVA和go和c都没有template
【 在 hyperLee 的大作中提到: 】
: c++ 这么好用的,还说累,还到fortran你不死菜了。
: 高效跟用不用模板没什么必然关系。
: 高效跟你的数据结构,向量化程度有关系,你追求的编译期确定静态推导,跟高效风马牛不相关。
: ...................
--
FROM 221.222.21.*
三方库也不是问题,可以把c++库编译成动态库供rust 调用
--
FROM 123.119.103.*
模板的抽象程度高(相比纯C而言),同时又没有任何性能损失(相比虚函数/vtbl那种抽象而言)。
模板的坏处就是对码农的要求高了。
【 在 littleSram 的大作中提到: 】
: 我一直以为高效就是内存和cpu消耗少,不知道模板和这有啥关系,JAVA和go和c都没有template
--
修改:z16166 FROM 114.241.227.*
FROM 114.241.227.*
运行高效跟写代码高效的区别
【 在 littleSram (littleSram) 的大作中提到: 】
: 我一直以为高效就是内存和cpu消耗少,不知道模板和这有啥关系,JAVA和go和c都没有template
: 【 在 hyperLee 的大作中提到: 】
: : c++ 这么好用的,还说累,还到fortran你不死菜了。
: : 高效跟用不用模板没什么必然关系。
--
FROM 223.66.23.*
很好,我也打算学
【 在 blitz 的大作中提到: 】
: 我从2003年起基于原先的C语言基础学习了C++,并作为科学计算用户使用C++超过10年时间。期间写过C with class、OO、C++ template等风格的C++程序,多年以来一直觉得C++写起来非常累, i.e., 心智负担过重。曾经多次考察过转向其它语言的可能性,期间调研过scala, Haskell, OCaml, Scheme,F#等,它们当然各有优缺点,但是C++的两个主要特性:1) template(我用它来实现对不同数据类型的类似算法,起到了类似static duck typing的作用)和 2) 高运行效率使得之前转向其它语言的尝试均以失败告终。
: Scala的类型系统据说很牛逼,但是无法实现C++中基于template的static duck typing (经查,有structural type,但是用到了运行时反射,效率不太可能很高),运行效率不合格,运行时太大,无法用在集群上(以科学计算为目标配置的集群,多基于MPI),由于类型擦除的存在导致generic不完善。
: Haskell程序写起来非常简洁,但是有两个缺点我不喜欢:强行要求类型首字母必须大写、record语法的名字是全局的,而且要写出高效的程序,用户的水平必须非常高。同样没有static duck typing,即使它的类型系统非常牛逼。
: ...................
--
FROM 122.194.1.*
选语言主要是看它的库
--
FROM 124.64.127.*
可以 可以
--
FROM 1.202.7.*
你否说说Rust的错误处理?好像没有异常,有点不太习惯。
【 在 blitz 的大作中提到: 】
: 我从2003年起基于原先的C语言基础学习了C++,并作为科学计算用户使用C++超过10年时间。期间写过C with class、OO、C++ template等风格的C++程序,多年以来一直觉得C++写起来非常累, i.e., 心智负担过重。曾经多次考察过转向其它语言的可能性,期间调研过scala, Haskell, OCaml, Scheme,F#等,它们当然各有优缺点,但是C++的两个主要特性:1) template(我用它来实现对不同数据类型的类似算法,起到了类似static duck typing的作用)和 2) 高运行效率使得之前转向其它语言的尝试均以失败告终。
: Scala的类型系统据说很牛逼,但是无法实现C++中基于template的static duck typing (经查,有structural type,但是用到了运行时反射,效率不太可能很高),运行效率不合格,运行时太大,无法用在集群上(以科学计算为目标配置的集群,多基于MPI),由于类型擦除的存在导致generic不完善。
: Haskell程序写起来非常简洁,但是有两个缺点我不喜欢:强行要求类型首字母必须大写、record语法的名字是全局的,而且要写出高效的程序,用户的水平必须非常高。同样没有static duck typing,即使它的类型系统非常牛逼。
: ...................
--
FROM 58.101.55.*
当然有关系。
模板替代了void*,这就是为什么C++比C快
【 在 littleSram 的大作中提到: 】
: 我一直以为高效就是内存和cpu消耗少,不知道模板和这有啥关系,JAVA和go和c都没有template
--
FROM 76.126.252.*
不懂问一下,是因为void*进行类型转换的时候有性能消耗是么?
【 在 here080 的大作中提到: 】
: 当然有关系。
: 模板替代了void*,这就是为什么C++比C快
--
FROM 221.222.21.*