早期创业团队的 web 技术栈选择 Java vs Elixir - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
gilgameshcc

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

  •  3
     
  •   gilgameshcc May 24, 2020 14158 views
    This topic created in 2175 days ago, the information mentioned may be changed or developed.

    基础介绍

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

    主要问题

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

    • Java 的好处主要在于足够成熟足够全面,同时受众广泛,毕竟是目前国内用的最多的语言。缺点在于可能有些过于繁琐,开发效率低。
    • Elixir 好处在于确实非常合适应用场景,性能好,同时由于宏的关系开发效率也很不错。缺点是过于小众,导致我们非常担心之后团队扩张会遇到压力,以及学习成本比较高,和通常的 OO 语言差别不小,有点概率学会的意思。

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

    展望

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

    116 replies    2020-07-13 14:08:41 +08:00
    1  2  
    roundgis
        1
    roundgis  
       May 24, 2020 via Android
    use java
    dodo2012
        2
    dodo2012  
       May 24, 2020
    elixir 虽然不错,但国内,真的,除非你自己就是做这个,否则到时接手的人都找不到,所以,还是 java 吧,
    cmdOptionKana
        3
    cmdOptionKana  
       May 24, 2020
    java 虽然语言本身比较繁琐,但配合现代化工具,这个缺点已经被克服得七七八八了,不算一个明显缺点,再加上库多,不能说它开发效率低。
    fihserman123
        4
    fihserman123  
       May 24, 2020
    Java 的运行效率问题横向拓展就能解决七七八八 开发效率哪里低了。。。
    chinvo
        5
    chinvo  
       May 24, 2020 via iPhone   1
    当然是 C#
    jimrok
        6
    jimrok  
       May 24, 2020
    java 开发效率并不低
    Wincer
        7
    Wincer  
       May 24, 2020 via Android
    学过一段时间的 elixir,当时在某招聘网站搜了一下 elixir 的岗位,发现一个都没。祝福楼主找到合适的人
    MoYi123
        8
    MoYi123  
       May 24, 2020
    我们公司由于实在招不到 erlang 开发,已经准备转 go 了,Elixir 估计更难招吧。
    huachuang20
        9
    huachuang20  
       May 24, 2020 via Android
    Elixir,为了纯粹的 Happy !
    hyyou2010
        10
    hyyou2010  
       May 24, 2020
    spring 那一套的话,是不是 kotlin 也可以上了?这样效率是否就提高了?
    entertainyou
        11
    entertainyou  
       May 24, 2020 via Android
    支持下 elixir
    xuanbg
        12
    xuanbg  
       May 24, 2020
    elixir 不是灵丹妙药吗,哪里是 Java 这种粗胚驽货可以相提并论的
    realkenshinji
        13
    realkenshinji  
       May 24, 2020 via iPhone
    @hyyou2010 是的,我们组里就用 kotlin 搞 springboot 的应用开发
    putaozhenhaochi
        14
    putaozhenhaochi  
       May 24, 2020 via Android
    web 当然是 PHP 啦。
    forrestshuang
        15
    forrestshuang  
       May 24, 2020
    我的 ruby 比 elixir 都好,python 我觉得最好不过
    gejun123456
        16
    gejun123456  
       May 24, 2020 via iPhone
    java 用 Intellj 开发效率很高的,代码提示 代码自动生成啥的不一定比动态语言开发效率低
    abcbuzhiming
        17
    abcbuzhiming  
       May 24, 2020   6
    Java 开发效率低?这是我听过的最大的笑话,你说 Java 的技术栈太笨重了资源占用高我倒是认同
    itechify
        18
    itechify  
    PRO
       May 24, 2020 via Android
    JAVA 收人吗?最近找工作,有没有工作年限等要求哦
    namelosw
        19
    namelosw  
       May 24, 2020
    取决于项目有多大和你手上现在有几个能跟着你搞 Elixir 的人,不一定会 Elixir 但是有意愿就行,因为很简单。会 Rails 的能快速上手。宏,OTP 之类的估计你们这个场景基本不用,一个 Phoenix 就够了。

    比如你感觉用 10 个 Java 程序员就能搞定的话,那可能最多 3 个 Elixir 程序员就可以搞定了,如果算你自己有两个人,随便在找一个人就行了。

    可以估算一下。如果可以 Elixir 的话个人推荐 Elixir,Elixir 的迭代能力和默认架构还是挺不错的。

    迭代能力很重要,Java 很多小功能不划算就懒得做了。而且 Java 算上生态学习成本其实很高,招上来比较水的居多,Java 那些中间件不会搞基本上就很麻烦。Elixir 基本只要会 Phoenix 基本用法,能 follow context 写就够了。
    Cbdy
        20
    Cbdy  
       May 24, 2020 via Android
    用 Java 平台,繁琐可以上 jvm 语言,比如 groogy 、kotlin
    namelosw
        21
    namelosw  
       May 24, 2020   1
    @fihserman123
    @jimrok
    @abcbuzhiming

    拜托你们用几个月再来说好不好?你们只说 Java 不低,根本不知道对比的对象有多快有什么意义?

    感觉像除了 PHP 之外啥也没用过,还在一个劲辩护 PHP 的人一样。

    且不提 Paul Graham 以前总说的 3 打 100 的 Lisp 程序员,因为我没见过。但是以前 1 打 10 Java 的 Ruby 程序员大有人在。
    zhuangzhuang1988
        22
    zhuangzhuang1988  
       May 24, 2020
    睡吧, 反正最后还是 java
    slyang5
        23
    slyang5  
       May 24, 2020
    团队协作 还是 JAVA 好吧
    xcstream
        24
    xcstream  
       May 24, 2020
    node/python 简单粗暴
    jin7
        25
    jin7  
       May 24, 2020
    java 是最好的语言
    huntcool001
        26
    huntcool001  
       May 24, 2020
    等到时候招不到人的时候就哭呗.
    chendy
        27
    chendy  
       May 24, 2020
    做黄了用啥都无所谓
    做好了用啥也不所谓
    开心就好
    sagaxu
        28
    sagaxu  
       May 24, 2020 via Android
    @namelosw 10 个普通 Java 开发年成本按 300 万算,能 1 打 10 Java 的高级 Ruby,用一半成本 150 万年薪能不能招得到?
    crella
        29
    crella  
       May 24, 2020 via Android   2
    求介绍一下 1 打 10Java 的 Ruby 程序员
    namelosw
        30
    namelosw  
       May 24, 2020
    @sagaxu 可以吧,但是 Ruby 被连续抹黑,现在已经没多少 Ruby 程序员了。Elixir 算半个精神继承人吧。

    其实打 10 个并没有那么难,因为 Java 项目一般搞一套 Kubernetes,Jenkins,Zookeeper,Kafka……各种东西搞全几个 team 就出去了。很多人没干实事,但是白白增加了团队规模,提高管理复杂度。

    用 Ruby 一般都是用现成的东西一路闷头只写功能。所以大家才能看到某一段时间大量的独角兽都是 Ruby 支撑起来的。
    mikulch
        31
    mikulch  
       May 24, 2020 via iPhone
    java 开发效率低?
    ConradG
        32
    ConradG  
       May 24, 2020
    就用 Ruby 呗,四个人不多不少,github 最早也是 ruby 做的。
    sagaxu
        33
    sagaxu  
       May 24, 2020 via Android   2
    @namelosw k8s 解决的是大规模容器的部署问题,跟 Java 无关,规模上去了,ruby 也需要 Jenkins 是做 CI/CD 的,跟语言无关,不用 CI/CD 就不需要。zk 和 kafka 也一样,都不是 Java 必备,甚至连常用都不算。

    普通 Java web 项目标准起步,是 starter 上点几下鼠标,下载个 maven/gradle 模板项目,然后就开始写接口了。你说的那些费人力的设施,那是规模上去之后才需要考虑的,到那个阶段,核心服务基本都会重构成静态类型语言。

    最近五年都有哪些 ruby 起来的独角兽?
    daya
        34
    daya  
       May 24, 2020 via iPhone
    elixir 还是算了吧,再招人的时候你就知道了,调各家的 SDK 也都没有,都要自己写
    xieren58
        35
    xieren58  
       May 24, 2020
    js 吧. 前后通杀. 轮子又多.创业首选.
    namelosw
        36
    namelosw  
       May 24, 2020
    @sagaxu > 规模上去了,ruby 也需要 Jenkins 是做 CI/CD 的
    Heroku 一把梭,而且人少引入 CICD 就慢。

    > k8s 解决的是大规模容器的部署问题,跟 Java 无关
    Java 是比较容易搞一堆 Servcie 的,不知道是不是和 Java 9 之前没 module 有关系。Ruby 一般就一把梭就好了。有个问题是代码多了很坑,我觉得静态类型不是主要的(因为 Java 大了都搞 Microervice,实际代码没多少也不用静态类型一样,HTTP 也算动态类型),主要是没分 context 。Elixir / Phoenix 默认是分 context 的。

    > 核心服务基本都会重构成静态类型语言。
    我只知道 Twitter 这种的重构,Github,Airbnb,Hulu 这些都还在用 Ruby,也没啥问题。

    > 最近五年都有哪些 ruby 起来的独角兽?
    所以你没发现只有 Ruby 火的时候独角兽才大批出现,之前和之后独角兽相比都很少吗?
    CoderGeek
        37
    CoderGeek  
       May 24, 2020
    只是创业 看团队人怎么都能招到 看你现在团队的技术方向
    Hanggi
        38
    Hanggi  
       May 24, 2020
    这个问题问得很有水平,请务必使用 Elixir,
    lhxsimon
        39
    lhxsimon  
       May 24, 2020
    初创团队讲求糙快猛,成员会啥用啥。反正后面都是重构。

    不过如果这两个非要选一个,我建议是 Java, Elixir 生态不行,你各种跨语言通信,第三方 SDK 等等都不太好弄。

    除非你们能完全自己造轮子,否则 Java 更符合糙快猛的特征。

    最后我还是推荐下 Go,既然你们已经用 Go 魔改了 Gitea,为啥不用 Go 继续做 API 呢?
    pigspy
        40
    pigspy  
       May 24, 2020
    除非在广州这些地方,erlang 很难招人吧
    charlie21
        41
    charlie21  
       May 24, 2020
    用 Elixir 能拉来天使投资吗?
    fixend
        42
    fixend  
       May 24, 2020 via Android
    @lhxsimon 我也推荐 go,比较适合创业公司。
    HangoX
        43
    HangoX  
       May 24, 2020
    用 kotlin 就好了,kotlin 足够成熟,也足够灵活,能直接使用 javaweb 的全部生态
    janxin
        44
    janxin  
       May 24, 2020
    @namelosw 其他没留意,按照 GitHub 最新博客的说法是迁移了的
    gejun123456
        45
    gejun123456  
       May 24, 2020
    @fixend #42 java 要比 go 更适合创业团队,库比 go 多多了,各种库也比 go 的成熟。招聘的程序员也更多。go 除了省点资源做业务相比 java 没看到任何好处。
    coetzee
        46
    coetzee  
       May 24, 2020   5
    作为一个会多门语言的人说一下:
    1:单轮 Web 开发效率的话,Java 的确开发速度一般,没法跟 ROR 和 PHP 这种比,不过比 Golang 高不到知道哪儿里去了。
    2:如果轮上运行效率大于你说的 Ruby 和 PHP,Java 算是主流开发语言的 NO1
    3:论中间件成熟度和扩展方案,Java 还是 NO1
    4. 如果纠结于 Java 语法嗦问题。上 Java14 。或者上 Kotlin,OK,如果都嫌弃说不如 Ruby 魔法多,那么 Scala 等着你,简洁,你想要的特性,你要的开发效率。都存在。还有个 groovy 这种动态语言存在,其实 JVM 可选择很多。
    5:语言之争无意义,Java 背后那套开发的东西,你用别的也绕不过,web 开发和分布式开发就那套东西,换了语言照样需要学,不存在说 Java 需要学一大堆生态的问题,你简单应用,一个 grails 或者 springboot 也能搞定。
    6:贬低 Java 并不能说明你别的语言有多牛逼,想要玩特性,不然玩玩 Scala ???
    Isu
        47
    Isu  
       May 24, 2020 via Android
    插眼 我们用 elixir 的 狗头.jpg
    miao666
        48
    miao666  
       May 24, 2020 via Android
    面相信仰编程
    coetzee
        49
    coetzee  
       May 24, 2020   1
    @gejun123456 同意你说的。前期 Golang 的资源利用率的确高,但是大型应用和分布式应用,golang 的资源未必节省,而且 golang 的很多方案很多坑,比如 ORM 类 Golang 至今没有合格的库,很多坑都需要亲自踩一遍。Java 的新出的一些 cloud native 框架,资源占用和启动速度也不差,而且完美利用 Java 成熟生态。创业公司就要尽量少在技术上踩坑,专注于自身业务。别听别人鼓吹,每个公司都有自己的情况,保持点独立思考。再说一遍,黑 Java 并不能给你们带来什么优越感,黑 Java 的同学建议体验下 Scala 去
    murmur
        50
    murmur  
       May 24, 2020
    看创啥业,企业开发无脑 java
    fixend
        51
    fixend  
       May 24, 2020 via Android
    @gejun123456 go 招个大专毕业生,成绩中等,带一周,我敢让他写核心模块代码,你招 java 的,敢吗?面相对象的能力,工作 3 年,还设计成一坨 shi 的人不少。java 的人是多,高级别的人也多,但普遍也贵。
    pythonee
        52
    pythonee  
       May 24, 2020
    使用 java
    coetzee
        53
    coetzee  
       May 24, 2020   1
    @fixend 你是想表达 golang 学习简单,还是 golang 开发业务核心不需要面向对象?你觉得 Java 那种面向对象和 golang 那种面向对象哪种好理解? Java 的面向对象有啥理解难度么?
    coetzee
        54
    coetzee  
       May 24, 2020   3
    我再说一遍。你要开发,核心技能离不开,而且技术债早晚还回去。你 Golang 开发业务不用 DI ?你 golang 开发业务不用写 SQL,你 golang 开发业务不用面向对象?新手 Golang interface 理解的透彻的都不多。golang 好处的确不少,开发中间件现在是利器,而且 cloud native 自有一套开发理念,值得 Java 学习,Go 作为新时代 PHP 的确牛,但是无脑吹就过分了
    jimrok
        55
    jimrok  
       May 24, 2020
    @namelosw 怎么知道没有用过几个月就来说不好,我 Ruby 用过 2 年多,Ruby 团队规模超过 6 个人。Elixir 出来之后也研究这个语言是否能解决 Ruby 的一些问题。我的结论还是 Java 的效率更高,团队能走的更远,只要项目的规模超过中等以上,java 都是不错的选择。
    EPr2hh6LADQWqRVH
        56
    EPr2hh6LADQWqRVH  
       May 24, 2020
    选 Java 不一定对,但一定不算错。

    Java 不会给你任何竞争优势,但也不会让你在什么地方落得太远。

    看你是想赢还是想不输。
    jeffh
        57
    jeffh  
       May 24, 2020 via Android   1
    用 java 吧,Java 已经不是以前的 java 了,springboot 和 stream 流式编程效率很高
    sagaxu
        58
    sagaxu  
       May 24, 2020 via Android
    @namelosw heroku 支持 8 种语言,Java 一样用。你觉得 Java 容易搞一大堆微服务,一是因为 Java 微服务设施齐全门槛低,二是大公司 Java 用的多,微服务是大业务刚需。

    airbnb 和 hulu 后端主力早不是 ruby 了
    levelworm
        59
    levelworm  
       May 24, 2020 via Android
    Use old and boring technologies
    fixend
        60
    fixend  
       May 24, 2020 via Android
    @coetzee 我只是想说成本低。如果你创业有大把资金大把牛人,那你当我没说。至于走得远不远,近几年发展起来的公司,用 go 的也不是没有先例。

    先要看团队擅长什么,如果 java 和 go 都不擅长,学 go 肯定更快的。如果已经有架构师级别的 java 程序,转 go 就没必要。

    @coetzee 然后 go 可以用面向过程来写,当带 gc 的 c 语言来用。
    namelosw
        61
    namelosw  
       May 24, 2020
    @jimrok 所以为什么 Java 效率更高呢?规模中等以上我能理解,中等以下呢?
    zlfera
        62
    zlfera  
       May 24, 2020
    phoenix 比 rails 用的一目了然
    namelosw
        63
    namelosw  
       May 24, 2020
    @sagaxu Heroku 上用 Java 的很少,起一堆 Service bill 会炸
    我去年看 Airbnb 和 Hulu 的 JD 还是 Ruby

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

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

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

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

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

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

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

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

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

    我一直都觉得知其然知其所以然十分必要,否则很容易给你留下无数的坑。
    blless
        78
    blless  
       May 25, 2020 via Android
    我倒是觉得 java setter getter 一套 mvc 业务贫血模型感觉潜移默化了一大部分人,写出来的东西根本不面向对象。而且我写了这么久业务了,越来越觉得面向配置开发 /面向数据库开发不是好模式…反正有好有坏吧
    kevinzhow
        79
    kevinzhow  
       May 25, 2020 via Android
    技术本身的问题好解决,招不到人的问题比较难,但即使用 Java 这类技术,招到合适的人也很难
    dodo2012
        80
    dodo2012  
       May 25, 2020
    看到上面一群不懂 ruby 还装懂的人真搞笑,还现在都没用 ruby 搞的了?只是国内用的少而已
    yemoluo
        81
    yemoluo  
       May 25, 2020
    从公司角度看,选 Java
    ResidualSoils
        82
    ResidualSoils  
       May 25, 2020 via Android
    .net core
    tt67wq
        83
    tt67wq  
       May 25, 2020
    Elixir 是真招不到人。。。。多少人连 erlang 都没听过
    coetzee
        84
    coetzee  
       May 25, 2020   2
    我前面说了那么多 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
        85
    sagaxu  
       May 25, 2020 via Android
    @fixend 工作十年了,spring boot,netty,dubbo,mybatis 只用过两个,都没看过代码,这文档是要写多烂,不翻代码还用不好了。
    magiclz233
        86
    maiclz233  
       May 25, 2020
    Java 吧 库很多 合理使用开发效率并不慢,你说的 Elixir,我感觉估计有一半以上的人都没听过,而且用 Java 一些琐碎的功能基本都有现成的开源包使用或者借鉴,比如验证码,三方登录啥的。Elixir 可能遇到某些问题没有现成的自己开发。
    ArtIsPatrick
        87
    ArtIsPatrick  
       May 25, 2020 via iPhone
    看你这个项目是想自己玩玩还是准备认真做大
    coetzee
        88
    coetzee  
       May 25, 2020
    @sagaxu 你还别说,Golang 的大多数项目的确文档一般,但是我发现 Golang 的源码的确更好阅读,Java 的优秀项目的代码我也读过一些,Spring,Guava,JDK 这种,从代码阅读友好度来说,的确 Golang 完胜 Java,这点没啥好纠结的,Java 比不过的地方也不能强行说好,Golang 优点和缺点都很明显,Java 也是。就跟饮食一样,大家都有自己偏好,不过我不大挑食。只是我觉得代码写起来手感 Java 更好~。Golang 代码读起来更好
    shilyx
        89
    shilyx  
       May 25, 2020
    可能更重要的是要参考团队成员对语言的熟悉程度

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

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

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

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

    不过实际上 Java 现在在开发接口方面其实不慢的。
    jinzhongyuan
        98
    jinzhongyuan  
       May 25, 2020
    java 如此 标准,规范, 工程化,你还犹豫啥
    cbasil
        99
    cbasil  
       May 25, 2020
    web 快速开发选 PHP 啊,别说啥 php 性能慢,初创公司的业务量还不到 PHP 无法支撑的地步
    G2bN4dbX9J3ncp0r
        100
    G2bN4dbX9J3ncp0r  
       May 25, 2020
    Elixir +1
    1  2  
    About     Help     Advertise     Blog     API     FAQ     Solana     945 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 256ms UTC 21:03 PVG 05:03 LAX 14:03 JFK 17:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86