
现在主力是 Java,不得不说 Java 真的很强悍,跨平台而且库多,可以搞定 CRUD 的 95%需求。
然而我有时候觉得 Java 处理效率太慢了,想写一些计算机网络底层的貌似也比较受限(比如发个 icmp 包之类的,只看到官方实现了 UDP 和 TCP)。
经过一番搜寻,比较满意的是 Golang 和 C++。对 Go 这门语言,印象最深的是可以编译出 N 个 exe 执行文件,貌似性能也算不错。
还有一门 C++,据说是和 Java 对标的,但是感觉会不会性能提升上去开发效率却降下来了,库又不多。。。 萌新求指教,谢谢大佬!
1 AngryPanda 2019-04-09 15:20:43 +08:00 还有一门 C++,据说是和 Java 对标的??? |
2 SuperMild 2019-04-09 15:21:13 +08:00 Rust 应该会比 C++好用一点,性能比 Go 高一丢丢。 |
3 simple2025 2019-04-09 15:21:51 +08:00 via Android java 处理效率还低? |
4 whi147 2019-04-09 15:25:08 +08:00 C++是在内存上动手术刀,不小心就空指针崩溃。GO 解决了这些问题,不用担心指针问题 |
5 whi147 2019-04-09 15:26:19 +08:00 当初要是有选择,我也选择 java,C++真是太难了。 |
6 junjieyuanxiling 2019-04-09 15:30:18 +08:00 via Android C++更难吧 |
7 rockdean 2019-04-09 15:39:46 +08:00 单纯的开发 rust 和 go 吧 |
8 q397064399 2019-04-09 15:41:57 +08:00 @whi147 #4 写挂的表示,没有这些骚操作,我就只能内嵌汇编了 |
9 zhengxiaowai 2019-04-09 15:44:26 +08:00 你应该选择一门脚本语言作为备用该语言,没见过 java 和 go 和 c++ 三个非用不可的地方 |
10 SeaRecluse 2019-04-09 15:47:49 +08:00 还有一门 C++...... |
11 nmap 2019-04-09 16:08:05 +08:00 还有一门 C++,据说是和 Java 对标的 |
12 baicheng10 2019-04-09 16:11:07 +08:00 C 艹:我不要面子的啦 |
13 nanaw 2019-04-09 16:15:50 +08:00 via Android 这边建议用 Assembly Language 当备用语言哦 |
14 hhyvs111 2019-04-09 16:23:30 +08:00 c++都拿来当备胎了,楼主你飘了 |
15 zjyl1994 2019-04-09 16:24:19 +08:00 hmmm,去学 go 吧,好歹带 GC 的。 C++难度很大,我认识好几个立志写 c++的写了几年就跑出来做别的了,太累。 而且 C++需要手动管理内存,一个处理不好就是内存泄露浑身漏洞。没事别找事。 |
16 mattx 2019-04-09 16:25:34 +08:00 via iPhone c++ 属于修炼内功 |
17 sryanyuan 2019-04-09 16:29:00 +08:00 看你干什么的了 go 和 c++的学习成本完全不是一个等级的 假设你有操作底层的需求 或者写各种计算密集型应用 那 c++还是很强大的 |
18 Kiota 2019-04-09 16:29:44 +08:00 还有一门 C++,据说是和 Java 对标的,没毛病 2333 |
19 GeruzoniAnsasu 2019-04-09 16:34:54 +08:00 这是我有生以来见到的第一个 “以黑 PHP 的方式”黑 C 艹的帖子 |
20 zjsxwc 2019-04-09 16:35:23 +08:00 对 Go 这门语言,印象最深的是可以编译出 N 个 exe 执行文件,貌似性能也算不错。 蛤? |
21 misaka19000 2019-04-09 16:40:12 +8:00 楼主黑 Java 慢显然没黑到点子上,而且发 ICMP 这种包显然需要操作系统的支持 |
22 HackerPainter 2019-04-09 16:40:15 +08:00 当 C++莫名其妙的 coredump 了,你就会发现 C++真操蛋; 当 C++莫名其妙的内存泄漏了,你就会发现 C++真蛋疼; |
23 halk 2019-04-09 16:40:19 +08:00 推荐下一个是脚本语言,例如 Python 更实用,写个小工具,日志处理什么的很方便 |
24 PureWhiteWu 2019-04-09 16:41:29 +08:00 还有一门 C++,据说是和 Java 对标的 |
25 bp0 2019-04-09 17:12:25 +08:00 我怎么感觉你们说的是 C,不是 C++。C++11 以后的智能指针基本能解决内存泄漏的问题。问题是大家都不怎么用 2333。 另外,不知道谁对标谁。不过,C++是 1985 年的,Java 是 1995 年。 |
26 iszero 2019-04-09 17:17:29 +08:00 via Android 为什么不是 C 啊,多简单,越来越不认识庞大复杂的 c++了 |
27 q397064399 2019-04-09 17:18:46 +08:00 C++ 自己手动管理内存,顺带了解下引用计数 有向图分析 等各类 GC 算法,有兴趣的自己搞一套协程 + 消息同步机制 就差不多是半个 Golang 了, 这还是自带模板的。 学语言就两门 C/C++ 这种直接操作内存(各种骚操作 内联汇编啥的) 跟 其它各类有高层抽象封装的语言。 |
28 marsgt 2019-04-09 17:19:20 +08:00 为啥要编译出这么多的 EXE 文件捏? |
29 BCy66drFCvk1Ou87 2019-04-09 17:19:34 +08:00 C++从入门到放弃……那一大堆标准库就要耗费大量的时间 |
30 mscb 2019-04-09 17:19:47 +08:00 via Android 字里行间,你不说写 Java 的我还以为你是写 PHP 的 |
31 waising 2019-04-09 17:19:49 +08:00 我也是主 java 的 最近在看 golang |
32 BCy66drFCvk1Ou87 2019-04-09 17:20:24 +08:00 @junjieyuanxiling 没见过敢说自己精通 C++的,比 java 难多了 |
33 lilpig 2019-04-09 17:22:03 +08:00 via Android 用 C++当备用语言?? |
34 maxmin 2019-04-09 17:30:38 +08:00 人家需求这么明显,想设计一些底层的网络 那考虑啥。只有用 c/c++你才能看到里面的花花世界。 还有那些说 c++莫名其妙的 crash,就觉得 c++操蛋? 这 tm 也能怪到语言上面来? 自己懒,还都不谈 gc 的消耗。 |
35 mamahaha 2019-04-09 17:34:53 +08:00 不要学狗熊掰棒子,到头来全都没掌握。 |
36 webjin1 2019-04-09 17:36:43 +08:00 没人说易语言吗? |
37 missdeer 2019-04-09 17:37:56 +08:00 别听上面的人瞎说,C++是有点难有不少问题,但是你照 C++17,最次也是 C++14 的标准去用,几乎不会遇到上面的人说的这些情况,上面的人说的都是 C++98/03 那些 15~20 年前的标准才会有的事了 |
38 pursuer 2019-04-09 17:41:03 +08:00 用 java 迟早要学写 jni 的。所以还用选吗?当然 C/C++啦 |
39 ivechan 2019-04-09 17:42:44 +08:00 C++ 不适合备用吧,这玩意不经常写,肯定蒙蔽。。 |
40 ebony0319 2019-04-09 17:44:35 +08:00 这是 c++在 v 站 黑得最惨的一次. |
41 cxh116 2019-04-09 17:50:49 +08:00 C/C++ .太多的基础库是用它们来写的. 比如数据库驱动,Java Python PHP 语言的实现. 不要求熟练,至少要能看懂. |
42 knowckx 2019-04-09 17:53:32 +08:00 go 和 java 在后端开发这块重合很多,没必要学了 java 再去搞 go |
43 xyooyx 2019-04-09 17:57:25 +08:00 via iPhone 为什么会有备用语言的想法,不是应该深入吗。。 |
44 across 2019-04-09 17:58:43 +08:00 看底层只有 C 和 C++(啥,什么汇编?) 根据你的要求,Go 和 C++没法对标啊 |
45 lostberryzz 2019-04-09 18:04:42 +08:00 via iPhone 推荐 Rust |
46 Yoock 2019-04-09 18:51:21 +08:00 via iPhone Puthon 吧 |
47 Yoock 2019-04-09 18:51:40 +08:00 via iPhone Python 吧,打错了 |
48 12101111 2019-04-09 19:12:37 +08:00 via Android rust 吧,学会了有效的提升对编程语言的理解 |
49 CTO 2019-04-09 19:29:18 +08:00 真要搞高性能的时候,恕我直言,带 gc 的一个能打的都没有 |
50 eret9616 2019-04-09 20:39:06 +08:00 学 C++把 我也在学,已经学半年了 目前工作是前端,我们一起学 |
51 iceheart 2019-04-09 20:53:39 +08:00 via Android 如果你以学习为乐趣,那 C++是好朋友,你的乐趣会一直在 |
52 ae86 2019-04-09 21:02:53 +08:00 有空的话,c++值得一学,但是人家可不是用来当作备用的语言的呢 |
53 sunny352787 2019-04-09 22:01:33 +08:00 这萌新也太新了吧♂ |
54 chinafu 2019-04-09 22:10:26 +08:00 c++值得一学........... |
55 murmur 2019-04-09 22:14:23 +08:00 当然是 c++ 以后越来越多的胶水语言涉及到底层还得是 c |
56 byteli 2019-04-09 22:24:40 +08:00 via Android 别 cpp,花几年可能都理不清楚,生命有限,感觉我这辈子已经花了不少时间处理内存泄漏和空指针了,还有堆栈被破坏的情况,那点时间留给 gc 调优以及申请机器多好,调优 gc 起码还能写文章分享经验 |
57 q397064399 2019-04-09 22:30:22 +08:00 @byteli #56 人家是想了解底层拿 CPP 当研究底层技术的手段,你那是拿 CPP 当饭吃 能一样吗 出于技术研究跟爱好 C/C++ 基本上是避不开的 |
58 q397064399 2019-04-09 22:32:30 +08:00 @byteli #56 而且真的写底层的,不用智能指针,早些年泄露那都是家常便饭,但是一个小的 http 服务器 或者研究性质的代码 泄漏就泄露了反正又跑不了几分钟,现在好多写编译器演示的,直接略过了内存回收,泄漏就泄露了 反正又跑不了几分钟 |
59 yujincheng08 2019-04-09 23:14:55 +08:00 via Android c++什么时候这么惨了 |
60 VEEX6 2019-04-09 23:38:34 +08:00 via Android @whi147 go 是为了实现垃圾收集才取消指针操作的,手动傻瓜化,鱼熊掌不兼得,操作空间大不可预测是 c 的优点而不是缺点。 |
61 Vegetable 2019-04-09 23:46:40 +08:00 备用首选 python,其次我觉得 lua 都比 c++强,这两个各有特色. 真的,要不看看 shell?你要的是备用语言,不是为了受虐,也不是为了补全自己的知识,起码这玩意得用得上是吧 |
62 wth123456 2019-04-10 00:03:05 +08:00 网页开发 js,数据开发 python。。。 |
63 rb6221 2019-04-10 00:07:31 +08:00 via iPhone rust 和 go,你喜欢哪个就随便用吧 c++肯定写的不快,图方便不用考虑他了 |
64 Arnie97 2019-04-10 00:10:07 +08:00 via Android 小孩子才做选择,大人全都要 反正你不是作为第一语言来深入细节,不如都看看 |
65 beordle 2019-04-10 02:18:11 +08:00 via Android 你来说,最好的是学习 jvm 本身和 jvm 的扩展 jni,没有之一。所以选最正统的语言,c++ |
66 beordle 2019-04-10 02:27:22 +08:00 via Android 简而言之 java 的技术栈最成熟,足够你干一辈子,所以怎么专注才是你要考虑的主要内容,你去大公司譬如阿里,肯定会面试到 jvm 或者其实现,这个时候会深挖 java 相关技术,你就知道为啥要学这个个东西了。jni 也可以满足你提高 java 性能的要求,所以选择 c++ 没有错的,大多数情况不用去 write,但要足够熟练的 read。毕竟 read 的时候可以忽略内存管理相关的细节。 golang 这个语言本质上就是另一个 java,没有和 java 一起学的意义,当然作为一个从业者还是要理解其核心思想概念 但没必要去大量尝试。 |
67 brainfxxk 2019-04-10 02:49:32 +08:00 后悔十年前没学 c++ 不然现在可能就会 c++了... |
68 halo117 2019-04-10 03:46:43 +08:00 via iPhone cpp 现在普遍应用场景和 java 不太一样,你当然会觉得 curd 的库不多,兴趣了解而不深入语言是两门选谁都无所谓, 还想吐槽下先确定是不是没有再来说,java 实现 icmp 发包困难,真的有用搜索引擎搜过那么难实现吗?算了无知者无畏 |
69 Cbdy 2019-04-10 04:29:38 +08:00 via Android Golang 就是重新发明 Java |
70 waruqi 2019-04-10 04:48:56 +08:00 via Android c/lua |
71 banbishan 2019-04-10 08:15:01 +08:00 via Android 现在不是都 c++11 了吗,都智能指针了吗,auto_ptr、unique_ptr、shared_ptr、weak_ptr。还有 boost::scoped_ptr、boost::scoped_array、boost::intrusive_ptr。咋个还有严重的内存泄露问题。。。。 |
72 ThomasZ 2019-04-10 08:19:12 +08:00 via Android @AngryPanda 看到这句话的时候我基本已经不想再看这贴了 |
73 qilishasha 2019-04-10 08:39:56 +08:00 觉得 C++是一个大的分类,该死的 GCC,编译起来脑壳痛的感觉记忆犹新…… |
74 zonga 2019-04-10 08:50:45 +08:00 via iPhone 萌新新的让我想起了当年打刀塔遇到的新手队友,游戏打字问队友假腿怎么出 |
75 345161974 2019-04-10 09:01:10 +08:00 如果是为了快速原型,建议你 Go,Python,算瑞士军刀。 |
76 king1101 2019-04-10 09:04:14 +08:00 和 java 对标的那个,叫 C#吧 |
77 wweir 2019-04-10 09:26:38 +08:00 via Android 强烈建议上 Python 之类脚本语言。 C++ 难度在那,不用说。 golang 的话,至今没见到自我评价为 JAVA 程序猿的人,能把 golang 写好。两个语言描述世界的方式就不一样,一个继承、一个组合,文化冲突强烈。 |
78 MilkShake 2019-04-10 09:56:45 +08:00 膜拜大佬,备用语言敢学 c++ 应该不是科班出身的吧。 |
79 zarte 2019-04-10 09:57:23 +08:00 全都要,小孩子才做选择 |
80 daodao116 2019-04-10 09:57:40 +08:00 还有一门 C++,据说是和 Java 对标的??? |
81 weiweicat123 2019-04-10 10:43:41 +08:00 还有一门 C++,据说是和 Java 对标的 |
82 wolfie 2019-04-10 11:06:18 +08:00 写过 Java 好歹也听过 C++吧。。。 |
83 vanxy 2019-04-10 11:12:50 +08:00 备用语言这个概念太奇怪了, 只有根据需求选语言的。 比如楼主这 ICMP 的需求,Google 一下,http://www.icmp4j.org/d/index.html 就能找到 Java 的库。 > 有时候觉得 Java 处理效率太慢了 看下来楼主貌似只用了 Java 一门语言,如何得出效率慢的结论的? |
84 wind3110991 2019-04-10 11:21:33 +08:00 “然而我有时候觉得 Java 处理效率太慢了” 你让成天和 OLAP、Hbase 等等大数据处理相关打交道的人情何以堪 = =。Java 是框架和各种 SDK 封装的会比较重,但是原生的 JDK 绝对不存在所谓的“处理效率太慢”的问题。 更何况你要知道,横向扩容的成本,远远比纵向提升语言性能和开发效率的成本要低,所以不管你学什么语言作为备用,你对主语言 Java 的理解是远远不够的 |
85 raptor 2019-04-10 11:35:44 +08:00 够浪吧,C++是大坑 |
86 ZiLong 2019-04-10 11:41:20 +08:00 太萌了 |
87 slince 2019-04-10 11:46:44 +08:00 @knowckx go/c/c++是系统级别语言,可以开发服务端应用也可以开发服务端应用,开发的应用可以只发行一个 exe 文件,你用 java 写还要你的用户先去下载一个 jre 吗; java 只是服务端语言,谁给你的自信 java 可以和他们重合 |
89 wafm 2019-04-10 12:21:22 +08:00 @q397064399 握手,同行 |
91 lithiumii 2019-04-10 12:31:09 +08:00 C++不是跟 Java 对标的吧,C++++才是(滑稽[后俩+要换行{# |
92 impl 2019-04-10 13:25:58 +08:00 via Android 80 岁以后可以学点 cxx,go 可以不用学,用就行。 |
93 kwanCCC 2019-04-10 14:54:29 +08:00 1.choose Cplusplus 2.Keep moving 3.End of life C++三部曲,一直在逼近 3 |
94 Katrol 2019-04-10 16:31:19 +08:00 Golang 吧,C++学好不容易 |
95 msaionyc 2019-04-10 16:38:40 +08:00 楼主你真的是萌新啊,c++是和 java 对标的,谁跟你说的啊 |
96 mritd 2019-04-10 19:30:10 +08:00 via iPhone 如果你是 java,从发展方向上看,你未来巴不成得碰 docker 容器啥的,那么你应该选择 go |
97 fancyhan 2019-04-11 10:47:29 +08:00 C++备用不了,要学就学几年,备用请用 golang |