请注意:不考虑生态是前提,也就是各种 framework,各种轮子都不算在内,单纯看语言和运行环境。
我觉得 JVM 毕竟隔了一个虚拟机,效率啥的比 Docker 还是差一截吧。而且 Go 毕竟这几年才发展起来,论历史沉淀确实比不上 Java,但考虑到 PHP 也是跟 C 一脉相承,按当初 C 转 PHP 的势头,如果都转 Go,前景可期。我站 Docker+Go,虽然个人不喜欢 Go 的语法。
利益相关:目前正在写 Java,没有写过任何 Go 项目。
请注意:不考虑生态是前提,也就是各种 framework,各种轮子都不算在内,单纯看语言和运行环境。
我觉得 JVM 毕竟隔了一个虚拟机,效率啥的比 Docker 还是差一截吧。而且 Go 毕竟这几年才发展起来,论历史沉淀确实比不上 Java,但考虑到 PHP 也是跟 C 一脉相承,按当初 C 转 PHP 的势头,如果都转 Go,前景可期。我站 Docker+Go,虽然个人不喜欢 Go 的语法。
利益相关:目前正在写 Java,没有写过任何 Go 项目。
|
1
你说的这有可比性嘛? docker 是啥先理解清楚吧。
|
|
TrumeetMay 18, 2019
2
建议楼主先搞清楚 Docker 是什么(
|
|
linhuaMay 18, 2019
3
JVM 的虚拟机 和 Docker 之类的虚拟机 不是一个概念
Go 不需要 Docker 呀 |
|
4
为啥要把 Docker 和 Go 绑定呢? Go 的项目可用 Docker 也可不用,反过来 Java、PHP、Python 也可以用 Docker 呀……
而且讨论趋势和潜力却不考虑生态这个影响最大(之一)的要素,就好像讨论投资不考虑收益一样奇怪 |
|
5
你的帖子让我对 docker 的理解产生了疑问
|
|
JasperWongMay 18, 2019
6
jvm 和 docker 不是一个维度的东西
|
|
wangfeng96May 18, 2019 via iPhone
7
Java 怎么可能说被取代就被取代呢
|
|
lonelygoMay 18, 2019
8
难道是这么理解的:
JVM ( JRE ) === Docker Java === Go 容我重新 Google 学习下 Docker 的概念去。 |
|
JerryChaMay 18, 2019
9
你的假设我不认为能成立。做决策是需要考虑成本和风险的。时间、成本、质量,Go 能做到显著提升这三者中的任意一个因素才有胜出的可能。
|
|
loadingMay 18, 2019
10
go 可以单文件搞定,并不需要 docker。
|
|
cookey39May 18, 2019 via Android
11
Java 日常被取代
|
|
arfaMay 18, 2019
12
如果 Oracle 再这样作死,那就真有可能会转向 go
|
|
13
额... 那请问不考虑框架的情况下,v2ex 能否取代高铁?
|
|
mritdMay 18, 2019 via iPhone
14
我曾经花费很久去跟新人谈 docker 不是虚拟机的问题... 但是你这个问题真的让我无从下手 贫僧甘拜下风
|
|
mrdemonsonMay 18, 2019 via Android
16
一脸懵逼进来,一脸懵逼出去,以为我对 docker 的理解错了+1
|
|
19
Docker 更接近虚拟化技术,和 Openvz 差不多,只不过 Openvz 虚拟操作系统,Docker 是用来简化部署的,可以直接打包各种依赖,同样的 jvm+web 容器+web 项目也能打包方便部署。go 语言又不是一定要跑在 Docker 里,直接跑 window,linux 都行,这样效率更高,现在哪有项目是追求那么点效率的,不如加配置来的直接,除非是性能严重影响业务,才会考虑优化性能,性能那么重要,移动端就不会 webview 遍地走,native 应用少的可怜了,各大公司包括 BAT 都在想办法简化开发简化部署,Docker 就是为了简化部署
|
|
20
java 写后台是很稳的,但是高并发的情况下,不如 c++,然而普通人写 c++容易出错,所以就有了 go,go 的语法比较简洁,但这并不意味着开发高并发的 web 程序是简单的。就像是 c 语言简单,但并不意味着你学会 c 就能开发 linux 内核。
而且国内除了大的公司的核心业务,是否高并发其实无关紧要.... |
|
wdlthMay 18, 2019
21
Go 的优势在于更好的支持云原生,不需要安装运行时。JVM 语言优势在于有好的开源基金会和厂商支持,类库丰富,也可以使用别的 JVM 语言编写的类库。
|
|
22
jvm 和 vm 和 docker 这是三个不同的概念好不好.....
jvm 实际上是个翻译, 把你的话翻译给建筑公司, 能做不能做建筑公司说了算。 vm 是个外包商二道贩子, 你问他就是什么都能做, 结果有些不好弄的他层层转包给垃圾施工队也能凑合弄。 docker 是个包工头, 手底下就这么些人, 大多数 vm 能我都能做,省得层层转包了,你还能明了一点,但有些东西确实做不了。 |
|
murmurMay 18, 2019
23
java 拼的就是生态你来个不考虑生态这讨论就没意义了
|
|
zpf124May 18, 2019
24
另外, “ JVM 毕竟隔了一个虚拟机,效率啥的比 Docker 还是差一截吧” 。
实际结论应该恰恰相反,JVM 叫 Java 虚拟机,然而和你说的虚拟机不是一个东西, 不会去虚拟化硬件的。 所以,应该是 docker 效率应该比 jvm 差一截。 |
|
25
楼主半年工作经验吧
|
|
luozicMay 18, 2019
27
呵呵
|
|
luozicMay 18, 2019
28
go 的核心問題是無法讓很多逗逼寫的代碼也能變成產品。
|
|
junnplusMay 18, 2019 via iPhone
29
楼主确实在开脑洞
|
|
slanternswMay 18, 2019 via Android
30
@zpf124 乱讲,容器又不是虚拟化
|
|
32
|
|
NaveeMay 18, 2019
33
送分题:没有
|
|
34
@blless
@slanternsw 容器化技术是不虚拟化硬件,但内核之上的 部分系统是虚拟化出来的。 docker 有个最大个好处 就是每个容器各自一套系统环境, 但因为这个好处,自然会有一些和你代码功能无关的基础服务要启动运行。 而且 java 运行效率一直在优化不是都已经无限接近二进制直接执行了吗? 另外 虽然我没学过 go, 但我也听说 go 有个 runtime, 不也和 jvm 差不多的东西吗? 那最好的情况也就是二者速度差不多吧? |
|
35
@shijingshijing 别人指出你的问题,你还在这跳脚,这种心态是做不了这一行的
|
|
bllessMay 18, 2019 via Android
36
@zpf124 go 的 runtime 是编译成机器码啊 而 jvm 一般都是字节码
按 linux 一切皆文件的哲学,其实 docker 里的系统也是文件隔离,执行代码的时候加载镜像文件而已,虽然网络或者 io 可能有一点影响,但是目前看来几乎是忽略的 |
|
loopljMay 18, 2019
37
用过 go 就知道写业务有多繁琐。。。
|
|
youxiachaiMay 18, 2019
38
docker 和 jvm 是一个东西????
现在新手是怎么入门计算机知识的...... |
|
lostberryzzMay 18, 2019
39
GraalVM 了解一下
|
|
guolaopiMay 18, 2019 via Android
40
JAVA + JVM
等于 C# + CLR 然后你懂的。。。 |
|
atonkuMay 18, 2019
41
你说的这几个东西我一样也不懂,但是我知道你说的对
|
|
wwqgtxxMay 18, 2019
42
@zpf124 “但我也听说 go 有个 runtime, 不也和 jvm 差不多的东西吗?”这句话就是错的,所以还是建议你稍微看一下 go 入门再做评论
|
|
acehowMay 18, 2019 via Android
43
和 docker 没关系。直接问 java 是否会被 go 取代就行了。从长远来看,我觉得会,因为 go 更简洁快速,也没 spring 框架那么臃肿。实际上 go 现在已经比较成熟了,有自身一套比较完整的生态支持,在 2.0 后之后也会支持泛型,IDE 的话用 jb 的 goland 也很爽,而且 go 的社区现在很活跃,如果没有旧项目负担的话,新项目都可以考虑用 go 来做。
|
|
44
可以 block 了
|
|
alamayaMay 18, 2019
45
啥都不了解,不知道你站个啥
|
|
46
@liprais 开心就好
|
|
mozutabaMay 18, 2019
48
搞不清虚拟机的意思吧。
精通 vc++ |
|
49
java 和 go 的领域有交叉但不能相互替代,go 现在这么火,尤其是前段时间各种公众号发文说 go 只能说在新兴(并不新了)语言下有自己的利益,除非超高并发要求,否则选哪个语言只是习惯的事,就像 不只是 java 能写 hadoop,也不只是 go 能写 docker,爽与不爽自己心里有数就成
ps: java 的 project loom 成了的话也能低成本高并发了,一定程度上能替代 go 了, [点我看 project loom]( https://cr.openjdk.java.net/~rpressler/loom/Loom-Proposal.html) |
|
sudozMay 18, 2019
50
你的脑洞瓦特了
|
|
zhyt1985May 18, 2019
51
暂时还是 Docker + Java 吧
|
|
ipwxMay 18, 2019
52
了解一下 JIT 谢谢。
|
|
zzzmodeMay 18, 2019 via Android
53
重新定义了 docker 和 jvm ??
|
|
yim7May 18, 2019
54
这俩组合有什么好对比的?
|
|
Q4h7388nR28s95faMay 18, 2019
55
日常 block + 1
|
|
implMay 18, 2019 via Android
56
坐等 oracle 把 Java 搞死
|
|
ardenMay 18, 2019
57
go 现在最大的劣势就是错误处理以有泛型不支持。
|
|
aodengMay 18, 2019 via Android
58
看戏
|
|
cctv1005s927May 18, 2019
59
JVM 和 QT 可以比一下~~
|
|
byfarMay 18, 2019
60
|
|
zqguoMay 18, 2019
61
楼主你在问啥???
|
|
vincelMay 18, 2019
62
请先搞清楚 docker 是啥 一群人帮你纠正你还死要面子当一个跳梁小丑贻笑大方,虚心接受有那么难吗
|
|
mamahahaMay 18, 2019
63
楼主想问 go 能取代 java 吗,因为害怕被喷,所以包装了一下。
|
|
ihciahMay 18, 2019
64
那些动不动就 Block 的,请 Block 我谢谢!想不通为什么看到新手就冷嘲热讽?
|
|
VegetableMay 18, 2019
65
jvm+java=go
jvm+java+docker = go+docker |
|
VegetableMay 18, 2019
66
@ihciah 这是新手的问题吗?
问问题不能出现最基本的谬误,关公战秦琼就算了,问秦叔宝和青龙偃月刀谁厉害就不合适了吧,这是对所有能看到问题的人的不尊重. |
|
67
不考虑生态,任何语言都可以取代 Java
|
|
EminemWMay 18, 2019
68
docker 不是 go 特有的吧。按我的理解 docker 是用来隔离环境的
|
|
ManjusakaLMay 18, 2019
69
Docker 怎么和 JVM 扯上关系的?
|
|
70
@shijingshijing 首先 我确实知道 CT 和 MRI 的区别,高中物理学的。 这两个 VM 是一回事吗?而且 Docker 不是 VM,JVM 也不是你说的 VM,多读书吧。
|
|
livnimasileidMay 18, 2019
71
楼主几年经验就这么跳了?
|
|
72
@jc89898
@livnimasileid @cctv1005s927 前面#32 说了不了解 Go,不知道 Go 的 runtime,错了就错了,解释了几句怎么就是你们说的跳了? 不了解一门语言,不了解一些细节,只是看了一些对比报告,提出了这个问题,觉得不合适可以 block 我,可以不回答。 本来就已经做好了被 diss 的准备。我心态好,平时见过的也多,无所谓。仔细看看你们的回帖,除了 diss 我有其他的有用信息没有?跳梁小丑我倒觉得你们这种抓住漏洞批判一番的更合适吧,标题就说了随便开脑洞的,错了不耻下问,回答比较多的我也感谢送硬币了,还要怎么样? 说到底层,你们未必比我知道的多,有几个完整看过 Linux 内核的,我感兴趣的是隔离,从 MMU 的分页机制,到 Linux 的进程隔离,再到各种 vm,再到 Docker,能看出针对一个问题的不同思路。可能是我表述有问题,发帖比较随意,diss 我也好,各自丰富 block 列表吧。 |
|
KuroNekoFanMay 19, 2019 via iPhone
73
哪儿跟哪儿
|
|
limoinkliMay 19, 2019 via iPhone
74
不耻下问😂
|
|
wo642436249May 20, 2019
75
@ZSeptember 说的好像 java 就简单一样,为了规范目录之类的,操作一个数据表居然需要写 5 个以上文件的代码
|