早期创业团队的 web 技术栈选择 Java vs Elixir

2020-05-24 15:16:30 +08:00
 gilgameshcc

基础介绍

至最开始在 v 站提出那个学术开源社区的创意已经快半年了,中间虽然经历了疫情有一些影响。但是多数事务的推进都问题不大,我们已经确定了未来的版本线,当前版本的设计(产品形态类似于 github ),以及百分之九十的前端开发( vue nuxt )加上后端主要 git 模块的开发( go 实际上主要魔改自 gitea ),同时运营侧,融资侧等也都有适当的进展。

主要问题

现在遇到了一个有点纠结的问题,就是 web 层(主要是 api 那部分)用什么技术栈来做(目前后端团队人数较少只有四人,且且远程工作)。候选有 Java 和 Elixir:

不知道大家怎么考虑这个问题,求建议建议~~~
(顺便我们收 web 后端方向 java 和 elixir 的简历,如果有可能考虑很小的创业公司的话,需要熟悉 git 及 github 同时对学术信息开源及开源社区感兴趣。可以发简历给我们 邮箱: gilgameshcc@outlook.com )

展望

我们的初版应该不久就能上线了,希望对学术开源感兴趣的话能够持续关注我们,未来我们会寻求更多的小伙伴,包括开发,产品,运营,等方向。

13621 次点击
所在节点    程序员
116 条回复
yemoluo
2020-05-25 07:24:46 +08:00
从公司角度看,选 Java
ResidualSoils
2020-05-25 07:26:14 +08:00
.net core
tt67wq
2020-05-25 08:36:54 +08:00
Elixir 是真招不到人。。。。多少人连 erlang 都没听过
coetzee
2020-05-25 08:56:55 +08:00
我前面说了那么多 Java,仅仅是针对公司而已。
说点别的,如果是个人语言选择,选 Golang,选 Golang,选 Golang 。
优点:
1. Golang 简单直接,代码可读性高,黑魔法少,说的就是你,各种接口和注解的 Java,过度封装导致代码可读性下降很大,Ruby 和 Python 真的一个人一个风格。这点来看,Golang 语法学会之后直接读优秀开源项目最简单。可以很快提升自我
2. CloudNative 势不可挡,Golang 是这个趋势下的龙头语言,其他的语言都是追随者,你甭管再怎么黑 golang 大道至简特性,这点你逃不开,这套生态完全就是 Golang 的天下,就跟大数据就是 JVM 天下一样,一统江湖不可能,千秋万载不可能,只能说这个领域 golang 就是王者,而且趋势会继续加大,薪资待遇也很好和人员也是大量稀缺
3. Go 的群众基础很好,上手简单,就跟 Python 一样,入门简单,这点非常重要,会很快有大量的群众基础,各种库的生态也在完善过程中,对于个人来说,可以建功立业的时候,Java 这种已经非常巩固的城墙,想攻城拔寨很难。
4. Java 体系老人的知识面和 JVM 的知识体系+OS 体系的知识远大于 golang 的知识。对于帖子上面黑 Java 的,我觉得还是有道理的,Java 在企业级开发中的好处和坏处都要客观面对,Java 的套路化,繁琐的套路其实很多都是人为设计出来的,你一般学习 OS 层知识就够了,Java 不仅 OS 要学好,JVM 也不能落下,各种 Java 知识点,真的太多了。其实我认为都是 Java 早期的一些设计导致的。springboot 这种,其实利用约定优于配置封装了这些复杂配置而已( ROR 是祖师爷)。
5. Java 开发者高手众多,培训班众多,内卷严重。大家想一下,如果个人喜好的话,我们可能更喜欢 Python,Ruby 这种,而不是 Java 这种,但是面向发展编程,面向薪资编程,我的个人建议是原理这种内卷非常严重的大量老人的语言,选择新的战场对于新人职业更加友好。你想一下,一个 PHP 转 golang,你一个新手 golang,大家的 Golang 使用经验都是相同的,起跑线没有那么远。你一个 Java 动则 10 年经验,再菜,看到的场景也不少,喜欢拿着老人姿态对待年轻人,极其不友好。Golang 体系野蛮生长中,兼容并包,这点非常好,至少国内 Golang 社区氛围我认为仅次于前几年的 Ruby China 。
6. 企业开发和个人开发的语言选择存在一个博弈关系。现在 Java 在大趋势上,如果单纯论工作,现在的确比别的语言都多,毕竟大而不倒。不过,你如果多看看谷歌趋势和百度趋势,还有一些新的独角兽公司的选择,Golang 基本是第一。
7. Golang+Python+一门函数式语言足矣应付你的职业生涯一切场景。想玩语言特性了,找个函数式语言搞搞玩,真正的实战,还是 Golang,Java 这种。
sagaxu
2020-05-25 09:01:32 +08:00
@fixend 工作十年了,spring boot,netty,dubbo,mybatis 只用过两个,都没看过代码,这文档是要写多烂,不翻代码还用不好了。
magiclz233
2020-05-25 09:04:43 +08:00
Java 吧 库很多 合理使用开发效率并不慢,你说的 Elixir,我感觉估计有一半以上的人都没听过,而且用 Java 一些琐碎的功能基本都有现成的开源包使用或者借鉴,比如验证码,三方登录啥的。Elixir 可能遇到某些问题没有现成的自己开发。
ArtIsPatrick
2020-05-25 09:11:53 +08:00
看你这个项目是想自己玩玩还是准备认真做大
coetzee
2020-05-25 09:16:06 +08:00
@sagaxu 你还别说,Golang 的大多数项目的确文档一般,但是我发现 Golang 的源码的确更好阅读,Java 的优秀项目的代码我也读过一些,Spring,Guava,JDK 这种,从代码阅读友好度来说,的确 Golang 完胜 Java,这点没啥好纠结的,Java 比不过的地方也不能强行说好,Golang 优点和缺点都很明显,Java 也是。就跟饮食一样,大家都有自己偏好,不过我不大挑食。只是我觉得代码写起来手感 Java 更好~。Golang 代码读起来更好
shilyx
2020-05-25 09:25:00 +08:00
可能更重要的是要参考团队成员对语言的熟悉程度

我刚经历的,2 个月从零开始使用 go 语言并发布产品,之所以采用 go,是因为大家对这个都不熟悉,容易从语言上到一个心的起点。前端用的 vue
securityCoding
2020-05-25 09:48:23 +08:00
@gejun123456 用 go 多写写业务代码就知道 java 的好处了,框架代码哪个都能写 哈哈
yuankui
2020-05-25 10:12:19 +08:00
ruby 、Elixir 不好招人就是了。就算找了个感兴趣自学的,可能并不具有排查解决问题的能力。
慎重
zjsxwc
2020-05-25 10:23:09 +08:00
楼主这种建议 java,Elixir 太小众了。

还有 golang 里面嵌入 lua 后写业务效率还行,逃
gejun123456
2020-05-25 10:38:55 +08:00
@coetzee #88 go 的框架发展都没有多少年,并且 go 没有泛型,肯定易读,java 的框架比如 spring 都发展几十年了,各种扩展和兼容,就没那么好读了,写一个简单的支持 ioc 和 aop 要不了多少代码,把代码写死肯定是最易读的。选一个框架重要的是这个框架能不能满足需求和扩展性吧,大部分开发业务肯定是投入时间到业务里面,java 框架都比较成熟出 bug 的概率小,扩展性强,使用 go 碰到框架的 bug 就要自己去修了。
iv2ex
2020-05-25 10:44:40 +08:00
java ;

产品用什么语言都能做,但是不是什么语言都能轻易找到人进行后期维护。

第一次遇到 Elixir,还是做澳门的项目。当时谈让我们做二期,我们的规划是直接重写。(后面没谈下来)
slert
2020-05-25 11:00:29 +08:00
php 不香吗
lonelymarried
2020-05-25 11:04:40 +08:00
node.js?
cloudhuang
2020-05-25 11:05:04 +08:00
实际的回答是 it depends,根据不同的场景,不同的业务阶段,不同的团队,答案都是不同的,最终还是需要楼主自己作出判断。
1. 团队成员目前的情况,4 个伙伴,是精通 Java 多一些,还是 Elixir 多一些
2. 不同的业务阶段,初始阶段,当然是希望尽快的推出产品(可能是 POC),这个时候一些快速开发的工具,确实可以节省很多的时间
3. 业务快速发展阶段: 这个时候,随着业务的快速发展,势必需要招聘更多的开发人员,这个时候,不同的语言,招聘成本会相差好几倍
4. 维护阶段,则需要考虑这个语言是否稳定了

不过实际上 Java 现在在开发接口方面其实不慢的。
jinzhongyuan
2020-05-25 11:07:09 +08:00
java 如此 标准,规范, 工程化,你还犹豫啥
cbasil
2020-05-25 11:18:45 +08:00
web 快速开发选 PHP 啊,别说啥 php 性能慢,初创公司的业务量还不到 PHP 无法支撑的地步
G2bN4dbX9J3ncp0r
2020-05-25 12:06:59 +08:00
Elixir +1

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

https://ex.noerr.eu.org/t/674907

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

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

© 2021 V2EX