现在主力是 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 25
还有一门 C++,据说是和 Java 对标的???
|
2
SuperMild 2019-04-09 15:21:13 +08:00
Rust 应该会比 C++好用一点,性能比 Go 高一丢丢。
|
3
chenqh 2019-04-09 15:21:51 +08:00 via Android 3
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 1
C++更难吧
|
7
rockdean 2019-04-09 15:39:46 +08:00
单纯的开发 rust 和 go 吧
|
8
q397064399 2019-04-09 15:41:57 +08:00 3
@whi147 #4 写挂的表示,没有这些骚操作,我就只能内嵌汇编了
|
9
zhengxiaowai 2019-04-09 15:44:26 +08:00 5
你应该选择一门脚本语言作为备用该语言,没见过 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 1
C 艹:我不要面子的啦
|
13
nanaw 2019-04-09 16:15:50 +08:00 via Android 1
这边建议用 Assembly Language 当备用语言哦
|
14
hhyvs111 2019-04-09 16:23:30 +08:00
c++都拿来当备胎了,楼主你飘了
|
15
zjyl1994 2019-04-09 16:24:19 +08:00 3
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 7
这是我有生以来见到的第一个
“以黑 PHP 的方式”黑 C 艹的帖子 |
20
zjsxwc 2019-04-09 16:35:23 +08:00
对 Go 这门语言,印象最深的是可以编译出 N 个 exe 执行文件,貌似性能也算不错。
蛤? |
21
misaka19000 2019-04-09 16:40:12 +08: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 2
别听上面的人瞎说,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 1
C/C++ .太多的基础库是用它们来写的. 比如数据库驱动,Java Python PHP 语言的实现.
不要求熟练,至少要能看懂. |
42
knowckx 2019-04-09 17:53:32 +08:00
go 和 java 在后端开发这块重合很多,没必要学了 java 再去搞 go
|
43
lqw3030 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
janus77 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
aaa5838769 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
|