自己有三年 android 开发经验,对 java 很熟。又做了一年 rn,前端相关,nodejs 也在用,所以在考虑深入这两种后端技术哪一个好点?
1
karottc 2019-06-01 10:32:03 +08:00 via iPhone 8
Java,( nodejs 也能叫后端吗?
|
2
RYAN0UP 2019-06-01 10:35:43 +08:00 via Android
建议 Java,生态好点。
|
3
cjh1095358798 OP @karottc 为啥不能?现在公司团队技术栈都迁移到依赖 js 技术栈了。招人都招 js 全栈,后端用 node.js 一点问题没有
|
4
wxsm 2019-06-01 10:36:33 +08:00 2
目前基本没有人用 Node 作后端,不过它在“中端”倒是有很广阔的使用场景。
|
5
cjh1095358798 OP 考虑到 java 生态很成熟,node.js 的坑我也不太清楚,但是 typescript 写的很爽啊。。ps:不想写 java 了,现在能用 kotlin 就不用 java,如果学习 java 技术栈我也用 kotlin
|
6
oneisall8955 2019-06-01 10:47:09 +08:00 via Android
java 毋容置疑
|
7
oneisall8955 2019-06-01 10:48:33 +08:00 via Android
java,封装继承多态,设计模式玩起来贼有意思
|
8
love 2019-06-01 10:58:45 +08:00 via Android
为啥都这么歧视我大 js,写起来比 java 舒服多了,生态也很不错
|
9
birdrally 2019-06-01 10:59:29 +08:00 via iPhone
主力 node 没有,还是打辅助
|
10
javaWeber 2019-06-01 11:00:16 +08:00
后端选 java 吧。分布式,微服务,容器。
|
11
ysweics 2019-06-01 11:04:58 +08:00
这都不用选吧,二者在后端的生态级别应该相差几个数量级
|
12
amon 2019-06-01 11:15:11 +08:00 1
招聘网站上搜一下 java 开发和 nodejs 开发。
|
13
ixiaohei 2019-06-01 11:20:34 +08:00 via iPhone
都什么时候了,还有推荐 nodejs 做后端的
|
14
qq1009479218 2019-06-01 11:25:18 +08:00 1
我主力做 node,看完评论,我感觉很难受
|
15
abcbuzhiming 2019-06-01 11:31:49 +08:00
从目前的情况看无类型约束的动态语言想入侵对安全性和稳定性有要求的领域非常困难,nodejs 可以吃掉 PHP 的地盘,但是 Java 的地盘。。。旁边还有 Go 和.Net Core 看着呢,轮不到 js 说话
|
16
abcbuzhiming 2019-06-01 11:33:21 +08:00
@cjh1095358798 多出去走走,看看广大的世界,不要因为自己身边用的是啥,就以为世界都是啥
|
17
abcbuzhiming 2019-06-01 11:38:07 +08:00
@love 第一代动态语言原本想要的是类型推导和匿名函数(Lambda)。然而它们过于激进犯了一个错误,把参数,返回值的类型约束彻底去掉了,不光 js 有这个毛病,perl,asp,php,python。全都有,谁也别笑谁,这也是为啥知乎有一个专门问题——为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是强类型 。https://www.zhihu.com/question/31100089
|
18
fghjghf 2019-06-01 11:43:41 +08:00
node 是前端自己玩的,只能叫玩具。用于布局生产环境是很少的,一是毕竟 Java 从语言层面上来说性能高,二是 Java 生态好,跟 node 差别巨大。三是 Java 对系统亲和性比较高,很多 Linux api,甚至 system call 都可以用 Java 调用。
你要是不喜欢 Java,觉得库很臃肿的话,可以试试 GO,又呆萌又易学,天生对网络友好。 |
19
zouzou 2019-06-01 11:54:11 +08:00 1
web 后端,nodejs,java 没区别,你扔骰子决定。
在后端,java 通用型比较强,每个领域都可以用。 web-php 大数据-java ai-python 基础设施-go |
20
securityCoding 2019-06-01 12:07:52 +08:00
java,生态决定了
|
21
deepdark 2019-06-01 12:10:49 +08:00 via Android
傲慢与偏见
|
22
airyland 2019-06-01 12:12:33 +08:00 via iPhone 2
看上面几个同学对 node 多鄙夷的语态,动不动玩具动不动没人用,用自己来概括全世界。让人不舒服的不是你们觉得 node 不好用,而是那种自负的评价姿态。
对不起,我用 node。 喊句口号: Always bet on JS. |
23
gimp 2019-06-01 12:20:07 +08:00
一些人对语言的偏见真是根深蒂固,上一个被说是玩具语言的叫 Python
楼主对 Java 看起来更熟悉,选择 Java 吧,从就业角度考虑也没问题 |
24
cjh1095358798 OP @abcbuzhiming 现在我也是首选 typescript 这方面对类型约束支持的还是比较好的,确实如果你诶呦类型系统对大型项目不适合
|
25
cjh1095358798 OP @fghjghf 多谢老哥分析,我想我应该仔细想想自己要的是什么以及趋势
|
26
love 2019-06-01 12:29:14 +08:00 via Android
@abcbuzhiming 你不知道有个东西叫 typescript 吗,已经在前端界很火爆了。这东西的类型灵活度比 java 还高,结合了动态语言和静态语言的优点
|
27
cjh1095358798 OP @gimp 是的,我也是本来偏向 java,之前写过 node 发现很方便,就有点动摇了。想做一个独立开发者,所以我也是想越容易学易用最好
|
28
yuanfnadi 2019-06-01 12:53:30 +08:00 via iPhone
|
29
abcbuzhiming 2019-06-01 12:53:48 +08:00
@love 我当然知道 ts 这个东西啊,甚至我自己必须用到 node 的场合我都是尽量用 TS,问题是 TS 这个东西说到底还是要把源码编译成 js 的,ts 并不是 node 原生支持的东西。也许倒是可以期待一个 node 原作者搞的 deno
|
30
abcbuzhiming 2019-06-01 12:59:25 +08:00
@cjh1095358798 没关系啊,程序员本身就不应该只困在一门语言里,我当初就是受不了 Java 的死板,投奔到 PHP 和 Python 的世界里去呆了两年,然后又被“重构火葬场”给恶心回了静态语言的世界,年轻就应该什么都试试,你试过才知道静态语言和动态语言分别的好处在哪里,翔又在哪里。
PS:程序员千万不要干的事情就是当狂信徒,问题是程序员又是技术工种里狂信徒特别多的行当。我还是建议你,两个都玩玩,没有你想的那么难的。等你两个都玩过,两个的翔都吃过,就会明白为啥 Java 这种简陋死板的语言能够在后端领域经久不衰了 |
31
lihongjie0209 2019-06-01 13:07:46 +08:00
nodejs 写写 js 工具链就可以了, 写后端就算了
|
32
zqx 2019-06-01 13:12:40 +08:00 via Android
大学只学过 java,c++。
实习接触 python,发现 pip 管理依赖,秒杀 java。 工作接触 js,发现 npm 管理依赖,秒杀 python。 说 node 生态不行,那是没见过 npm 几百万个开源类库吧,开源社区≈node。 java 占有率高是市场行为,不代表语言特性高级。 |
34
Takamine 2019-06-01 13:17:47 +08:00 via Android
……我一直把 nodejs 放在前端的技术栈里,大佬们别打我。
|
35
love 2019-06-01 13:22:15 +08:00 via Android
@abcbuzhiming 变异成什么你又不用管,jvm 本身也不直接支持 Java 源代码
|
36
lihongjie0209 2019-06-01 13:22:34 +08:00
@zqx 你用过 maven 吗?
|
37
abcbuzhiming 2019-06-01 13:23:13 +08:00
@zqx 你这句话的言下之意就是“市场都是白痴,看不到你说的语言特性高级”?
|
38
fghjghf 2019-06-01 13:55:01 +08:00 1
@zqx 骚年,看来你回答,觉得你工作年限并不长。市场这样选择肯定不是偶然事件。知道什么是 JIT 吗,再不然网上一大堆性能测试 demo,你可以试试看。而且 Java 直接调系统 api,缓冲区、pcb、堵塞非堵塞、文件系统、内存映射、进程线程、ipc 消息管道 /有名无名队列 /共享内存、信号量、socket 原始套接字、直接构造数据包、高并发 select/epoll/kqueue。等等等等。node 行么。对于楼主这个情况,学 Java 以后的发展可以很深。也可以基于业务站在更宏观的角度看待问题。学 node 只能学上层肤浅的东西。你觉得那个更利于职业发展?
|
39
cjh1095358798 OP @abcbuzhiming 哈哈 说的对,各种语言都有自己的信徒,多试试有自己的理解才好
|
40
TimPeake 2019-06-01 15:16:38 +08:00
我前端娱乐圈又炸了锅?有趣
|
41
cjh1095358798 OP @fghjghf 老哥可以的,java 性能这块没得黑,确实优势大,想想 node.js 的优势和性能结合一起来比较下
|
42
yaphets666 2019-06-01 15:25:08 +08:00
感觉还是 java,毕竟大厂高并发都是用这个.
|
43
lovedebug 2019-06-01 15:33:45 +08:00 via Android
都会搞,这两个应用场景有区别呀。node 做 io 密集的应用生成 task,java 做计算密集型应用执行 task,两门语言风格也不一样,建议都懂。
|
44
robotdiy 2019-06-01 15:35:13 +08:00
node.js 小打小闹还行。
正规后端路线还是 Java、Go 吧。 |
45
luozic 2019-06-01 15:38:38 +08:00 via iPhone
Java 反正后面 Ts 以及 graalvm 都无缝互通
|
46
loginbygoogle 2019-06-01 15:40:50 +08:00 via Android
独立开发者,选 node.js 绝对没错。
|
47
version 2019-06-01 15:42:09 +08:00
全栈: nodejs (外包能力也秒 php) + 20 人小团队做点有意义的产品
假高并发吹逼架构师: 走 java + 有 100 人+开发规模的企业+有问题学会丢锅 + 尽量打卡下班 我以前是 java..16 年开始后来全转 nodejs..不过你最好是内部岗位转.不然你没工作经验是很难找 nodejs 的... java 可能容易点吧.培训下.吹吹跟班项目随便 15k..入职 crud 还能混些日子..不够真心有没学到东西我就不看好了..多 java 开发人员能体会到...一个类 1000 行..几百个文件. + 重构 + 还是打开下班..还是下班看看高并发的书呢. |
48
rockyou12 2019-06-01 16:01:27 +08:00
java 把,生态在后端吊打 node,项目可大可小,node 除了 io 好有其他任何优势?而且后端 jvm 上有很多新语言,kotlin 这种既兼容 java 又在语法上有很多优化,写出来的东西并不重
|
49
zqx 2019-06-01 16:10:07 +08:00 via Android
@fghjghf java 是性能最差的高级语言之一,这个需要质疑吗?你所说的使用场景,只是市场的选择,这种选择不会改变语言的性能。比如,为什么不用 java 实现 nginx ?
|
51
version 2019-06-01 16:19:08 +08:00
@zqx 也不能这样多..只是分布式业务上.10 台以上的机器.java 应该算是有很大优势了..但是这部分业务企业也会考虑.如果新项目可能会直接忽略 java 语言..旧项目还一直维护而已....看场景吧..有能力的 java 开发者.其实学一天就会 nodejs.也没多大难度..设计模式 数据接口都一样..
|
52
EPr2hh6LADQWqRVH 2019-06-01 16:23:31 +08:00
Java 是软件的工业化,工业化这个事情,也是有代价得失的,不是说一家通吃。
万一你是个打工者,那你是喜欢在工厂里工作呢,还是在工作室里工作呢? 万一你是个创业者,你是开个工厂呢,还是开个工作室呢? |
53
SoVince 2019-06-01 16:47:53 +08:00
小孩子才做选择,大……
|
54
fghjghf 2019-06-01 17:02:44 +08:00
@zqx 1、你觉得,一个及格的后端,只需要懂增删改查?写写简单业务?还市场选择。2、万物始于 C,任何解释器都是 C 写的,在 runtime 态都要转成 C,什么是编译什么是解释读过书不用说了吧。jit/aot 只是他的编译方式,并不能改变本质。3、node 只适合内部项目,或者分布式集群的某些小模块。并不能承载复杂业务、或者私人做点小项目,追求开发时间短。一对比高下立见。
|
55
limuyan44 2019-06-01 17:15:41 +08:00 via Android
我好奇的是,在后端语言选择上选择 nodejs 而不是 java 的,到底是为了 lz 好,还是为了自己的私心呢??
|
56
limuyan44 2019-06-01 17:16:45 +08:00 via Android
我好奇的是,在后端语言选择上选择 nodejs 而不是 java 的,到底是为了 lz 好,还是为了自己的私心呢??说句难听的 java 这种生态小学生都知道选什么
|
57
tomoya92 2019-06-01 17:26:59 +08:00 via iPhone
@cjh1095358798 ts 写着爽?跟 java 比真心不爽。。
|
58
Shy07 2019-06-01 17:43:55 +08:00
大厂螺丝钉、打工一辈子、某宝卖毕设,选 Java
全栈一把梭、想尝试创业、独立开发者,选 nodejs |
59
zander1024 2019-06-01 18:05:06 +08:00
这年头除了本身捆绑在 node 的还有人推荐你后端搞 node 么...
|
60
itning 2019-06-01 18:20:40 +08:00 via Android
分布式事务 消息队列 等等,nodejs 能胜任?
|
61
dingyaguang117 2019-06-01 18:33:01 +08:00
Python/JS/Java/C#/Go/Swift/C 都会一点,想深入一点怎么选
|
63
poorcai 2019-06-01 18:57:32 +08:00 via iPhone
@dingyaguang117 #61 你这个过分了,能引起更多的人对骂🤣
|
64
yamedie 2019-06-01 19:04:39 +08:00 via Android
毕竟 j2ex
|
65
HangoX 2019-06-01 20:29:59 +08:00
node 是给前端写接口用的,核心服务还是 Java,Java 生态真的太好了,学 Java 没错
|
66
visonme 2019-06-01 21:09:16 +08:00
纯后端还是走 JAVA
不是纯后端,以后考虑走全栈路线可以先上 nodejs 最后不管你深入 java 还是 nodejs,最后你都不可能只止于这两门语言的~ |
67
Foreverdxa 2019-06-01 21:18:18 +08:00 via Android
我也喜欢 node,这确实是一个不错的选择,还就就是我也会选择 go,不过我一点都不喜欢 java
|
68
charlie21 2019-06-01 22:08:27 +08:00
都不选
|
69
cjh1095358798 OP @visonme 是啊,只是现在时间精力有限,所以需要先专注一个
|
70
impl 2019-06-01 22:35:29 +08:00 via Android
要修福报就选 Java
|
71
luckylo 2019-06-01 23:00:41 +08:00 via Android
node 的作者都要放弃 node 了。。。这还用说么
|
72
icy37785 2019-06-01 23:03:12 +08:00
@dingyaguang117 我大 php 不配拥有姓名?
|
73
version 2019-06-01 23:07:54 +08:00
@cjh1095358798 其实对于初学者..真心推荐 nodejs..能接 rpc.能接各种服务.消息队列啥的..数据库事务也没问题...而且对 nosql 特别爽...最主要是快学习..进步快..java 其实有点不利于初学者..一个月 ssh 搭个脚手架.各种服务加起来..虽然 spring boot 能节省很多.不过文档和配置多..而且错误修改调试麻烦...见大多数 java 开发者.30%时间是写代码 70%可能都是看控制台输出..时间都没了..还有主要就是如今都是 api 服务年代..数据定义多变真的是业务需要.静态语言就是大略...不过 js 动态语言缺点就是不能太多人员一起编写,如果分了微服务.其实可以接受.哪个写得差就劝退然后重写...如果大数据.nodejs 业务有压力的时候.可以部分业务转其他语言 go 都可以
|
74
cjh1095358798 OP @version 老哥说的在理,node.js 业务写起来快,基本业务都问题不大,java 相对繁琐一些。对大业务量的情况下,java 优势更大。这也是我现在需要权衡的情况,主要也是想看 node.js 的发展和趋势
|
76
ZehaiZhang 2019-06-02 09:38:56 +08:00
送分题,想写大规模服务就上 java,小并发,node 足够了
|
77
StephenHe 2019-06-02 15:55:42 +08:00
js 写业务逻辑,emmmmmmmmm
|
78
newghost 2019-06-02 17:27:41 +08:00
十多年程序员,用过 C#,Java,C/c++现在用 node.js
|
79
wangsongyan 2019-06-02 22:33:42 +08:00 via iPhone
PHP 是最好语言!
|
80
wangsongyan 2019-06-02 22:34:18 +08:00 via iPhone
@wangsongyan 不好意思,跑错片场了
|
81
YuJianrong 2019-06-03 00:32:03 +08:00 via iPhone 2
几年前我也和这里大多数人一样觉得 nodejs 不堪重用只能小打小闹(我还是做前端的)。
结果这两年下来参与了数个(公司内) startup 项目,有类 google doc 的实时文档项目管理;有做会议辅助网站;有招聘类辅助网工具;有 LBS 提供商店选址服务,后台全都是 nodejs,只能说……真香…… 有三个东西彻底改变了 nodejs 的地位,使得这东西成为我们这边的推荐选择: 1. k8s 2. TypeScript 3. async/await |
82
yyy 2019-06-05 13:52:48 +08:00
9102 年了 想不到还有人会争论这些
|