都说 c++难学,为什么我觉得大部分概念都能在 Python 中找到对应,只是要记的东西略多

2015-07-11 12:28:15 +08:00
 kevinyoung
如题。有Python和c基础,最近在看c++,坊间传闻c++非常难学,我也是提起了十二分的精神,结果看下来觉得除了语法以外没什么新东西,基本上每个概念都能在Python中找到对应,看了几个小时已经可以开始写项目了...这样科学吗?

哦对了,模板那块儿还没看,但想来也不过是为了用静态语言实现动态语言的特性而创造出来的东西,用好可能不容易,但概念上确实不新鲜..
12573 次点击
所在节点    Python
87 条回复
kevinyoung
2015-07-12 01:12:04 +08:00
@JeffreyLau 嗯,我平时也就写一些模型的模拟,几千行就撑死了,确实算不上项目。

比较好奇,如果真是在写项目的话会用到那些特性?
ChangxuBlack
2015-07-12 01:12:32 +08:00
@kevinyoung 不是,这个和模板元编程不一样。。。模板元编程可以在编译时期完成类型推导乃至数值计算,以提升程序执行效率。。。模板元编程博大精深,最经典的应用是eigen和boost。。。目前没有其他语言有C++这么强大的模板元编程吧?
ChangxuBlack
2015-07-12 01:14:03 +08:00
@typcn boost的spirit和mpl你觉得如何呢?
ChangxuBlack
2015-07-12 01:17:20 +08:00
@kevinyoung 模板的作用更多的体现在编译,而不是执行。。。可以看看《C++ Templates》
rcmerci
2015-07-12 01:18:22 +08:00
lz去看看modern c++ design这本书试试把。
msg7086
2015-07-12 01:20:57 +08:00
@kevinyoung 是的。

@kevinyoung 比如这样。

当然一般只用在比较短的回复上,不至于把页面拉得很长,看起来轻松点。
长回复还是放单条好。
kevinyoung
2015-07-12 01:24:21 +08:00
@ChangxuBlack 我明白你的意思。模板元编程无非就是为了让c++这种静态语言也具备多态以及元编程能力,只不过到底还是静态语言,所以很多工作要在编译期完成,但不管怎么样写起来和动态语言很像了目的就达到了。
kevinyoung
2015-07-12 01:25:56 +08:00
@rcmerci 书单一大堆,但这两年都不确定有时间看了...毕竟主业还是看论文发论文....但还是谢谢
sinxccc
2015-07-12 01:30:12 +08:00
@JeffreyLau 以语言论项目大小是个很没意义的事儿。
ChangxuBlack
2015-07-12 01:30:13 +08:00
kevinyoung
2015-07-12 01:33:54 +08:00
@ChangxuBlack 受教了。这样提前就算好的做法确实跟作弊一般,嘿嘿。
ncwhale
2015-07-12 04:58:52 +08:00
@endrollex 什么鬼喵…我这里早就C++做基础可以跑Webkit做界面再底层HTTP Push各种视频音频照片控制机器人了喵…说不能的是等着脸肿喵?
loading
2015-07-12 06:39:31 +08:00
难是相对的,你也说了要记的东西多了,用起来就更复杂了,只有到真正用到的特性时,你才会明白的,光看语法那是小学生。
Taojun0714
2015-07-12 07:39:09 +08:00
@msg7086 就跟python没有函数式编程似得,好像支持的比C++还早还好吧
linux40
2015-07-12 07:51:06 +08:00
auto和static都不同
linux40
2015-07-12 07:52:03 +08:00
表达式也不同
linux40
2015-07-12 07:53:14 +08:00
数组也不同。。。
msg7086
2015-07-12 08:44:12 +08:00
@Taojun0714 我就是拿python的函数式和lambda举例子的啊?
我说现在连C++也开始支持了,有什么问题么……
lijianying10
2015-07-12 09:14:26 +08:00
其实楼主想多了。
问题不在语言上,你没有实际业务来考量两个语言当然是从语法上啊。

当你处理高并发环境下的TCP连接问题时。眼看着连接服务器就要扛不住了的时候。
当你处理信号,大规模加密解密,视频,图形,矩阵,(Intel IPP 可针对CPU型号优化,虽然有SciPY依然酸爽)
当你处理HTTP业务时。C++就会变得很酸爽。
当你做数据可视化的时候(Python各种方案,各种方便各种爽,但是C++我只了解Cern ROOT晦涩难懂)
当你了解ICPC的时候,当你知道MIC这种性能怪物的时候。

这两种语言的区别就是各花入各眼了。
不必纠结,多做了解,多跟实战工程师聊聊Case你就不会这么纠结了。

比如说银行用的TCP连接是怎么做的技术细节这些,别人集群都干什么了。
海尔等这种大公司的企业级应用是中心化的还是分布式的?怎么处理的?

接触语言时千万不要忘记业务。
希望能帮到楼主,祝楼主武运昌盛。
benjiam
2015-07-12 09:38:38 +08:00
可以去看effect 系列,了解各种坑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/204940

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX