早期创业团队的 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 )

展望

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

12289 次点击
所在节点    程序员
116 条回复
namelosw
2020-05-24 22:23:29 +08:00
@jimrok 所以为什么 Java 效率更高呢?规模中等以上我能理解,中等以下呢?
zlfera
2020-05-24 22:25:59 +08:00
phoenix 比 rails 用的一目了然
namelosw
2020-05-24 22:29:57 +08:00
@sagaxu Heroku 上用 Java 的很少,起一堆 Service bill 会炸
我去年看 Airbnb 和 Hulu 的 JD 还是 Ruby

微服务不一定是刚需,只是一种架构风格。比如 Elixir 基本很长一段时间都不需要微服务,至少中型公司是完全不用的。
gilgameshcc
2020-05-24 22:56:10 +08:00
非常感谢大家的回复,我们之前内部也讨论了非常多。最终确定目前还是业务为重,觉得 java 会比较稳妥,因为团队内都具有 c 类语言的经验。不过 elixir 确实很棒,以后有需要的时候在团队更大的情况下我们会考虑抽调部分人去转。欢迎大家以后多关注我们呀,我们在做一个开源的学术信息类社区,希望能够开源更多东西,带来更多价值(挺有情怀的 233 )
jimrok
2020-05-24 23:16:56 +08:00
@namelosw 中等一下参考的意义不大,小规模的项目任何语言都可以对付一下。一旦应用规模扩大,就需要跟另外的服务进行集成,小众语言在这方面就是个陷阱,我们当时用到了 mqtt,当时的 ruby 的库里面就没有靠谱的 mqtt clinet,我必须自己 hack 进代码里面查找问题,开发效率能高的了吗?反正这是我得出来的结论,谁喜欢跳坑谁去跳。
ChristopherWu
2020-05-24 23:41:18 +08:00
看人,如果你团队水平都不错,用 elixir,事半功倍。
如果想爽,用 Elixir
(工作中使用过两年 elixir 应对高并发的真诚回复
woncode
2020-05-24 23:42:30 +08:00
我实在搞不懂,为什么张口就来 1 个 ruby 干 10 个 java,为什么把 k8s 、jenkins 这些都算到 java 的头上?

意思用 ruby 写出业务代码放在那里就完事啦?啥都不用管它就很好的跑起来啦?就能自适应地应对业务变大、流量膨胀这些问题啦?

我看来其实就是拿一个三四人组成、低度自动化的小作坊( ruby ),和一个分工明确、高度工程化的标准大厂( java )来比较吧

然后不看两者的生产效益和产品质量,只简单地对比两者的人头数,最后张口就来 1 个 ruby 干 10 个 java ?
BillowSky
2020-05-24 23:45:37 +08:00
产品先行,哪个开发快,用着顺手就用那个,一开始纠结于用什么已经凉了一半。
woncode
2020-05-25 00:02:20 +08:00
@fixend 以前只听说过 java 语法严谨的特性,使得不管大牛还是菜鸡,写出来的代码都差不多的言论,还没听过 go 在这方面比 java 还更厉害的说法。

你说专科学 go 一周就能让他核心代码,那能否设想一下,你这所谓的核心代码,如果换成 java,同样让专科学一周,你就不敢让他写吗?具体是这方面 java 相对于 go 有什么缺陷呢?
araaaa
2020-05-25 00:41:42 +08:00
elixir
ppphp
2020-05-25 00:43:39 +08:00
看描述其实用两个语言差别也没多大,就看乐意用哪个了,精力可以放更多在商业上
rrfeng
2020-05-25 00:46:56 +08:00
取决于你对未来的规模。如果保持 2-3 人团队 elixir 没问题,如果要 10 人以上,趁早用 java 。
zealinux
2020-05-25 01:01:51 +08:00
如果还可以选其他,
推荐 Ruby on Rails
bef0rewind
2020-05-25 01:13:23 +08:00
除非都是高手,否则用流行的语言。
lights
2020-05-25 01:18:30 +08:00
孤陋寡闻,我是第一次听说 elixir 这个语言
vultr
2020-05-25 01:38:47 +08:00
你现有的团队熟悉 elixir 的话就用 elixir,不要为了好招人之类的原因而选其它的,好招并不代表你能招到好的,与其让外来和尚影响现有团队,不如让他们融入现在团队。
fixend
2020-05-25 02:32:24 +08:00
@woncode 刚毕业的新人,无项目经验,一般只会点基本语法,甚至语法都没学得多好。

spring boot,netty,dubbo,mybatis 学会要不少时间吧?就算会用,翻里面的代码看懂实现原理又用了多久?

你们可能觉得这些人很菜,5,6 百人的小公司,4-8k 的待遇,也就只能招到这种水平的,毕竟不是大厂,动不动就出十几二十 K 去招毕业生。

一个只会 c 语言的毕业生,学会 go 的语法,翻翻 gin,iris,net,database/sql 的实现代码,会用并了解一些基本的原理,用不了多久。

go 的代码未必有多好写,写起来未必有多方便,但相当容易读懂。

我一直都觉得知其然知其所以然十分必要,否则很容易给你留下无数的坑。
blless
2020-05-25 02:37:17 +08:00
我倒是觉得 java setter getter 一套 mvc 业务贫血模型感觉潜移默化了一大部分人,写出来的东西根本不面向对象。而且我写了这么久业务了,越来越觉得面向配置开发 /面向数据库开发不是好模式…反正有好有坏吧
kevinzhow
2020-05-25 03:18:38 +08:00
技术本身的问题好解决,招不到人的问题比较难,但即使用 Java 这类技术,招到合适的人也很难
dodo2012
2020-05-25 03:42:59 +08:00
看到上面一群不懂 ruby 还装懂的人真搞笑,还现在都没用 ruby 搞的了?只是国内用的少而已

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

https://www.v2ex.com/t/674907

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

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

© 2021 V2EX