V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Suger828
V2EX  ›  程序员

为什么很多人喷 Java 开发者离了 spring 框架就不会写代码了

  •  1
     
  •   Suger828 · 3 天前 · 7569 次点击

    其他语言使用不也使用框架,而且封装的更方便, 还有很多语言的标准库就直接有类似 spring 的功能了

    97 条回复    2025-03-18 20:49:26 +08:00
    xuanbg
        1
    xuanbg  
       3 天前
    如果是用 Java 开发 WEB 应用的话,不用 Spring 也要用个别的,完全自己写的话,怕是要 3 天的工作量直接飙升到 3 个月以上了。
    superchijinpeng
        2
    superchijinpeng  
       3 天前
    哪里喷的
    yuzii
        3
    yuzii  
       3 天前
    我没喷
    Suger828
        4
    Suger828  
    OP
       3 天前
    @superchijinpeng ![img]( )
    Suger828
        5
    Suger828  
    OP
       3 天前
    @xuanbg 但是其他语言也不用自己写啊这些,也都是框架
    crysislinux
        6
    crysislinux  
       3 天前 via Android
    可能是注解这玩意儿比较抽象吧,不过其实跟调函数也差不多,都是闷着眼干。
    renmu
        7
    renmu  
       3 天前 via Android
    @Suger828 人说的不是写脚本吗?别的语言写脚本确实不会用这种框架
    Perry
        8
    Perry  
       3 天前 via iPhone   ❤️ 9
    不用吵,已经进化到了没有 AI 不会写代码的地步
    cwek
        9
    cwek  
       3 天前
    有些功能不庞大的,用上 Springboot 的话,就变成高射炮打蚊子了。

    至于为什么是 Spring ,应该说有什么东西能完全替代 Spring ,做到对象管理、web 接口平面对接等功能?
    Suger828
        10
    Suger828  
    OP
       3 天前
    @cwek 感觉是语言的缺陷, py 自带的装饰器就能替代 spring 框架的一些功能
    jackOff
        11
    jackOff  
       3 天前   ❤️ 1
    java 目前开发问题就是太啰哩啰唆了,你想写个简单的项目都得搭一堆 spring 脚手架,写单体微服务这玩意简直是一种心智负担,更不用说安卓开发用 java 了,无论写啥安卓项目,最经典的 demo 都得浪费很多时间配那些傻逼 gardle 配置,看看隔壁 flutter 写起来就是简洁,基本不需要考虑太多乱七八糟的配置
    ysy950803
        12
    ysy950803  
       3 天前
    @jackOff Android 的新手村 demo 其实还好,现在 Studio 里面新建项目,直接就能跑,比服务端项目还是简单多了。
    cwek
        13
    cwek  
       3 天前
    @Suger828 一部分吧。我认为:

    Java 的全对象化和原始值适配不够彻底,对应的原始值包装类自动装拆箱出现得太晚了,同时也存在编译器的能力问题,无法做到原始值在编译层面的包装类对应,导致了泛型不彻底。

    还有提得最多的操作符重载,可能只有数学计算可以变得更直觉外,其他业务基本不一定用上,甚至会导致操作符滥用带来的代码清晰性问题。另外偶然找到一种替代机制——Manifold ( https://github.com/manifold-systems/manifold ),可以实现类似的操作符重载能力,机制是基于类似 lombok 的编译器行为拦截,原理就是同为 JVM 语言的 Kotlin 的操作符重载。

    Java 的问题是过于工程规范化,并且语言特性更新得太保守太慢了。
    cvbnt
        14
    cvbnt  
       3 天前 via Android   ❤️ 5
    那要看开发者面对着到底是什么需求,简单的 api 服务器换个框架也能用,但是需求复杂度上去,什么限流鉴权缓存分布式通信大数据搜索引擎一箩筐东西开发效率毫无疑问 springboot 效率最高
    Gilfoyle26
        15
    Gilfoyle26  
       3 天前
    你从哪里得出这个结论的。很多 Java 开发又不是只会一种编程语言。干什么活什么语言,灵活选择,单一语言的很少好吧。
    meiyiliya
        16
    meiyiliya  
       3 天前
    因为 Java 中确实有不少都是面向 Spring 编程,我遇到不少写习惯了 Spring 那一套后甚至都不会建立普通 Java 项目,忘了上次有个什么事情,同事让我帮忙看下,我说建个非 web 项目然后把这个导入进去跑一下看看,结果反过来问我应该怎么做,但是不妨碍 Spring 确实玩的溜。
    hefish
        17
    hefish  
       3 天前   ❤️ 12
    说的 go 离了框架能写啥似的。。
    说的 python 离了 django,flask 能写啥似的。。
    说的 php 离了框架能写啥似的。。
    说的 perl 离了框架能写啥似的。。。对了 perl 好像不怎么用在 web 上。。
    说的 js 离了框架能写啥的,离了 jquery 都未必能写几行。。
    duron600
        18
    duron600  
       3 天前
    相当多程序员干的就是依葫芦画瓢的活
    sagaxu
        19
    sagaxu  
       3 天前
    Java 第二大框架,quarkus/vert.x ,好多人都没听过吧,在 techpower 的 benchmark 看到这两货的时候都以为是 benchmark 专用的非常小众的玩意儿。实际上也有好多公司好多项目在用,这也不是野生项目,是 redhat 推动的。
    jeesk
        20
    jeesk  
       3 天前 via Android
    为什么很多人喷 开发者离了 ai 就不会写代码,那没有 ai 之前呢
    huage
        21
    huage  
       3 天前
    我觉得世间万物的组合或者分散都是自然选择的结果,既然全球的开发者都选择 Spring 来开发 Java ,那么这两者一定是最佳的组合,至少目前是。

    就好比人类两条腿+两只手,为什么不是三条或者三只,那一定是两条+两只才是最佳的组合。
    raptor
        22
    raptor  
       3 天前   ❤️ 2
    @hefish PHP 没有框架还真能写很多东西……所以 PHP 是最好的语言
    jeesk
        23
    jeesk  
       3 天前 via Android   ❤️ 1
    惨,果然是用的人多,挑毛病的就多。

    就拿 firefox 来说, 用的人少, 几乎没人挑毛病。


    否则就有人跳出来说, 没有 chrome 无法上网。
    Donahue
        24
    Donahue  
       3 天前
    @hefish python 还有深度学习,爬虫,等好多东西可以做
    nectar33
        25
    nectar33  
       3 天前
    java 什么情况不是很了解. 但哪怕是 go 也都是在用框架写 http, go 的 net/http 基础库本质也是个 http 框架.
    cloverzrg2
        26
    cloverzrg2  
       3 天前
    spring boot 打印个 hello world ,估计都有 300M 的内存占用
    Lucups
        27
    Lucups  
       3 天前
    我觉得他们想喷的其实是各种日均 PV 不到 100 个的放几张领导照片的官网还用 spring 。

    正如楼上所说“spring boot 打印个 hello world ,估计都有 300M 的内存占用”,很多时候,spring 是被滥用的,太多的内存被浪费了,而 Java 程序员熟悉的 web 框架,可能只有 spring 了,这就导致各种业务简单的小系统也上了 spring ,所以很多人才会喷“ Java 开发者离了 spring 框架就不会写代码了”。

    17 楼说了一堆其他语言,有一说一,你说的其他语言可能没啥问题,唯独 PHP 我不认同,PHP 本身就是模板语言,天生就是写网站的,写点小东西自带的函数库完全够用,完全不需要框架......
    xuanbg
        28
    xuanbg  
       2 天前
    @Lucups 大家其实说归说,做的时候还是很诚实的。只要我写代码简单方便就行,哪管你引入的库有多大。谁家还没个几百 G 的硬盘?又不是做嵌入式,至于计较这个?现成的库不用自己写?疯了吗???
    2bad4u
        29
    2bad4u  
       2 天前
    好好上学 --> 选个好就业的专业 --> 考上 C9 好大学 --> 毕业校招进去, 混日子
    FlorentinoAriza
        30
    FlorentinoAriza  
       2 天前
    事物发展就是提供便利的啊,物理学发现描述压强之前压强的概念也很抽象,时至今日也没人追求抛弃物理学描述一下压强吧
    qiumaoyuan
        31
    qiumaoyuan  
       2 天前   ❤️ 3
    因为大多数人写代码就是需要个条条框框,他们写的代码能不出乱子就是因为在框架内。而实际上,即使有了框架,代码一旦超出了框架能够照顾到的业务范围,就又乱写一通了。

    他们写代码,如果没有一种固定的模式让他遵循,心里就开始慌。总是倾向于去找到一种固定的模式,然后无论写什么全都照着模式去写。“你别老记口诀,最重要是打到人”他们是理解不了的。

    所以这种人你让他脱离框架去写代码,他连代码都不知道怎么组织。
    qiumaoyuan
        32
    qiumaoyuan  
       2 天前
    1. 这种现象不仅仅限于 Java 开发者,相当多数程序员都这样,包括那些嘲笑 Java 开发者的人自己;
    2. 这是描述事实,不是所谓的“喷”。
    angryfish
        33
    angryfish  
       2 天前
    哪个语言不用框架可以很方便的呢?你举个例子我瞧瞧。
    brookegas
        34
    brookegas  
       2 天前
    因为 spring 『框架』很好地掩盖了 javaer 本质上是搬砖工的事实。
    EndlessMemory
        35
    EndlessMemory  
       2 天前
    管他离不离框架呢,能做出用的东西就行,按这个逻辑,那人没了双腿是不是还没发走路了
    hefish
        36
    hefish  
       2 天前
    说得好像 Python 离了库能写啥似的。
    perl 离了库,写 cgi 也写不出来啊。。。表单变量都提取不出来。。。
    zed1018
        37
    zed1018  
       2 天前
    我可以理解说不喜欢 springboot 全包,喜欢自定义好一些的框架。但是我理解不了为了踩 java 去抬前端那个堪比 black hole 的 node_modules ,真就啥都一片包。先不说会不会烂尾,就是供应链攻击都太容易发生了。
    kinkin666
        38
    kinkin666  
       2 天前 via iPhone
    主要是 spring 更工程化,更容易搬砖搬过来就用上去,这是优点好伐
    不然光用 socket 也能从头撸个服务,更别说原生 java web ( servlet )+ jdbc 本身就已经比很多 web 框架好用了
    zizon
        39
    zizon  
       2 天前
    你试试喷离开 yaml 就不会用 k8s 了...
    holdeer
        40
    holdeer  
       2 天前
    我承认是这样的
    toesbieya
        41
    toesbieya  
       2 天前
    @zed1018 哪里看到前端踩 java 了?
    sunqb
        42
    sunqb  
       2 天前 via Android
    那为什么要离开 spring 框架呢?
    gzldc
        43
    gzldc  
       2 天前
    python 离开三方库也啥也干不了
    zjsxwc
        44
    zjsxwc  
       2 天前 via Android
    java 的依赖注入容器只有 spring 的容器是事实标准的依赖注入容器,使用和提供的对象上的容器注解上都是 spring 容器类,于是当然是和病毒一样到处传染了整个生态。

    你问我脱离 spring ,也就是要我脱离 spring 容器,没了容器帮我自动处理,我怎么写代码啊。
    cwcc
        45
    cwcc  
       2 天前
    用 Spring 不是问题,只会用 Spring 才是问题。放到任何一个语言都是一样。
    yooomu
        46
    yooomu  
       2 天前
    问就是鄙视链。用的人多,框架也完善,那小众优越感一下就没了
    HangoX
        47
    HangoX  
       2 天前
    别人喷别人的,我用我真香
    unclevv
        48
    unclevv  
       2 天前
    写 java 的人为什么要离开 spring 框架呢,喷子离开了嘴还能喷吗,这就跟长寿的人不就是活得久吗,有钱人不就是钱多吗,富二代不就是有个好爹吗,一个道理,喷就是羡慕嫉妒恨而已!
    Leon6868
        49
    Leon6868  
       2 天前
    @hefish #17 JS 离开框架写 UI 是基本功呢
    zhang77555
        50
    zhang77555  
       2 天前
    程序员的日子还是太好过了, 内部还能有鄙视链的空间, 老板们还是得再多了解了解 ai, 然后再砍一些岗位让这些牛马再多内卷一点
    Vegetable
        51
    Vegetable  
       2 天前   ❤️ 1
    这有什么不承认的?大把的开发让他写个脚本定时运行,他会选择 springboot 的定时功能而不是写一个 jar 文件配合 crontab 。

    写个数据导出脚本也用 springboot , 写个发送邮件的脚本也用 sprintboot , 写个命令行工具还要用 springboot 。我曾亲眼见过将一个 py 的数据导出脚本翻译成 java 用了一整天的人,本来定时执行的脚本硬是给做成了一个守护进程。
    chiatouchenai
        52
    chiatouchenai  
       2 天前 via Android
    @Suger828 服务端不应该尽量抢资源吗,C++那边的 Seastar 也是这样的啊
    chiatouchenai
        53
    chiatouchenai  
       2 天前 via Android
    @xuanbg 问题在这种需求用现成的 Web Server 比他去写 Springboot 合适多了,就应该用合适的工具作合适的事情
    DefoliationM
        54
    DefoliationM  
       2 天前   ❤️ 1
    @hefish 我写 go 确实不用框架, 因为标准库的都够用了。。。
    SeaTac
        55
    SeaTac  
       2 天前
    因为语言啦框架啦是这些人唯一拿得出手的东西了
    其实就是菜 吵架也只能吵点低级趣味
    jqtmviyu
        56
    jqtmviyu  
       2 天前
    @hefish #17 额, 就以前 jq 时代能写的, 现在不用框架, 不照样写么

    https://youmightnotneedjquery.com/
    kratosmy
        57
    kratosmy  
       2 天前
    我用 micronaut 写也行
    tairan2006
        58
    tairan2006  
       1 天前 via Android
    @hefish go 还真不需要框架,写个简单的 web 服务,啥框架都不需要,标准库就够了。
    prosgtsr
        59
    prosgtsr  
       1 天前 via iPhone
    @Vegetable 脚本定时任务作为一个开发还真不用 crontab ,说说原因:一个事情分成两个地方去干,沟通成本很高。代码是开发写,crontab 开发配不了,得运维才能配,所以以后要看线上多久执行一次的时候还得找运维问一遍,比较浪费时间。
    我选择要么就是运维自己写 python 自己 crontab 触发,要么就是开发写 java 定时写在代码里
    Biluesgakki
        60
    Biluesgakki  
       1 天前
    以前在大学用 servlet 写过网页 但是性能实在太差 脱离 spring 当然还能开发 只不过效率低下性能又不行 都是市场选择
    kzfile
        61
    kzfile  
       1 天前
    像我这种用 java 写小算法,插件的,从来没用过 spring ,所以我都不敢说我会 java
    sir283
        62
    sir283  
       1 天前 via Android
    这就跟前端离开 vue 、react 、element ui 之类框架,就不会写界面一个道理,这种争论没有意义。

    如果所有编程语言都跟汇编那样,什么都要自己手搓,自己压栈、出栈,那造出其它语言的意义在哪呢?

    编程语言跟框架不断推出新版本的意义在于提升效率,在什么环境下用什么语言跟框架,能提升开发与生产的效率,这个才是作为一名开发者该关注的问题。
    sunmoon1983
        63
    sunmoon1983  
       1 天前
    @hefish 那你是不是没有经历过远古时期的 php4 ?别的不知道,我只知道 php 当初我就是全的 editplus 写的完全不用框架,最多有一些常用的库
    InkStone
        64
    InkStone  
       1 天前
    看来 Android 程序员毫无存在感。要知道 Java 并不只是写服务端的……
    justRua
        65
    justRua  
       1 天前
    年轻时无聊的优越感吧,岁数大点了就不在意什么语言、框架了
    kandaakihito
        66
    kandaakihito  
       1 天前 via Android
    我宣布,Java 正式成为 IT 圈原神
    CloveAndCurrant
        67
    CloveAndCurrant  
       1 天前
    spring 给人的感觉不像个框架,倒是像一个新的语言。
    shmilypeter
        68
    shmilypeter  
       1 天前
    还有多少人记得 java web 纯用 servlet 怎么写个增删改查,新建 HttpServletRequest 类,然后在 web.xml 里配好 servlet 对应的跳转,直接手写 JDBC 连接数据库。

    如果现在开发还用这个模式的话,确实三天工作量三个月都搞不完。
    la2la
        69
    la2la  
       1 天前
    想到了当年刚开始工作进的那个公司
    1. 需要整理一些数据需求,明明一个 python 脚本或者 java main 方法 几十行代码能解决的问题,非要放到 spring init 中去执行
    2. socket 接口需求,也写到 spring 中,在 tomcat 中运行
    等等
    这些都不是 web 需求,我非常不理解为什么非要放到 spring 里面?
    后来我接手了这一堆垃圾代码,使用 python 脚本 和 netty 重构了这些,维护成本特别低,性能高太多了,当然我还是按照之前的工作量给报上去的,近 1 年的时间我每周工作不到 8 个小时就能完成全部工作,真是一段快乐的时光,现在想想还挺开心
    XDiLa
        70
    XDiLa  
       1 天前
    @Suger828 #4 一个 shell 脚本都能满足他的需求, 他自己愿意用框架 能怎么半? 你自己做好自己的事情就好了
    hefish
        71
    hefish  
       1 天前
    @sunmoon1983 这个。。。经历过。。。当时 php 还是 3.0.8 , 还不支持 session , 还是用 phplib + mysql 来实现 session 。。。当时要用 php 还得自己编译,一般都编译成 apache_mod 。
    kakakakaka8889
        72
    kakakakaka8889  
       1 天前
    @hefish #17 js 不要框架还真能写
    yagamil
        73
    yagamil  
       1 天前
    一般上 web 的都是框架了,谁没事直接封装底层包,状态。没必要再造轮子。
    只是 java 这个轮子有点大而已。。。
    ZeroDu
        74
    ZeroDu  
       1 天前
    spring 写东西主要是各种都有,真正的开箱即用。对比 Golang 就是你还得各种折腾
    lujiaxing
        75
    lujiaxing  
       1 天前
    @kandaakihito 卧槽 罕见
    LeegoYih
        76
    LeegoYih  
       1 天前
    v2ex 日经贴
    shiloh595
        77
    shiloh595  
       1 天前
    当成一个好用的工具就够了:)
    c3de3f21
        78
    c3de3f21  
       1 天前
    偏见处处都在
    meteora0tkvo
        79
    meteora0tkvo  
       1 天前
    @sir283 然而大多数前端离开框架,用纯粹的三件套 html css js 还是写得出界面的
    txzh007
        80
    txzh007  
       1 天前
    内存值几个钱? 排障,开发速度不用框架,不用 orm 就慢慢等着吧
    layxy
        81
    layxy  
       1 天前
    我觉得应该说离开 ide 就不知道怎么写代码了,spring 并不是不可替代,轻量级的 vert.x 我感觉也挺好用的
    muyiluop
        82
    muyiluop  
       1 天前
    人心中的成见像一座大山
    nickyadance23
        83
    nickyadance23  
       1 天前
    @2bad4u #29 --> 大礼包被裁 --> 送外卖
    nickyadance23
        84
    nickyadance23  
       1 天前
    @la2la #69 后来发现做得太好,老板觉得不再需要维护被裁了
    deland
        85
    deland  
       1 天前
    框架其实还是用来提高效率,如果你愿意手写也无所谓
    godiu
        86
    godiu  
       1 天前
    幸好我是 spring 开发,不是 java 开发,喷的不是我(╯‵□′)╯︵┻━┻
    me1onsoda
        87
    me1onsoda  
       1 天前
    能称为一个项目基本离不开框架,会把人累死。搞个 demo 玩具,那 Java 确实麻烦了点。
    warcraft1236
        88
    warcraft1236  
       20 小时 57 分钟前
    觉得 Java 差劲的不如看看 C++?更麻烦
    RandomJoke
        89
    RandomJoke  
       20 小时 10 分钟前
    spring 本身就是应对企业级应用的,就是适合有复杂度的应用,再者本质 spring 比较核心的就依赖反转,这个在其他语言,类似的框架都不少
    sincw
        90
    sincw  
       19 小时 57 分钟前
    我是一个 java 开发者,如果不让我用 spring 的话,那我用 python 写
    HtPM
        91
    HtPM  
       19 小时 53 分钟前
    如果你使用 java 常年使用 spring ,你的可替代性非常强。
    spring:空中楼阁
    你甚至不需要知道一点计算机原理都可以开发出 <接口> 供客户端使用。
    这类程序员如果不好好学习,迟早面对 35 岁困境。
    建议 spring 程序员转运维,运维的技术难度比 spring 程序员高得多。
    Richared
        92
    Richared  
       18 小时 5 分钟前
    其实,你不用 spring 那为啥用 java 写?用 java 不就是因为有 spring 么。
    NoKey
        93
    NoKey  
       15 小时 26 分钟前
    就 web 这块,spring 之前是 struts ,大致情况跟现在差不多。
    想起很早以前有个大佬面试我,问我这些框架有啥区别,优势,一下把我问住了,对于一个应用服务开发人员来说,有个鬼的区别,要么配置文件写 xml ( json ,yaml )里面,要么写代码里面,要问我哪个方便,我反而觉得 xml 方便,因为好找啊,都放一块儿呢,写代码里的,鬼知道放哪里去了;然后核心的代码逻辑,几乎不变的,你要写一个 hello world ,框架变了,难不成还能少写几句?
    qeeainburg
        94
    qeeainburg  
       13 小时 13 分钟前
    @hefish 说的 python 离了 django,flask 能写啥似的。。 ???😅python 用户中用你的这两个都不到 1%啊。。。
    cstj0505
        95
    cstj0505  
       12 小时 20 分钟前
    我又用 c 又用 java 又用 python,是不是很有比格[狗头]
    噢,忘了,没用 go,没用 rust,我太 low 了
    xausky
        96
    xausky  
       10 小时 44 分钟前
    你别说,作为 10 年老 Javaer 让我写个命令行程序还真不知道咋写。还好我还会 golang
    hefish
        97
    hefish  
       9 小时 5 分钟前
    @qeeainburg 这个。。。 说的 python 少了 pip 那些库还能写个啥似的。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:54 · PVG 05:54 · LAX 14:54 · JFK 17:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.