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

前端的打包技术这几年突飞猛进, Java 的打包技术还基本是 maven

  •  
  •   yuankui · 2019-07-23 14:01:49 +08:00 · 13329 次点击
    这是一个创建于 1987 天前的主题,其中的信息可能已经有所发展或是发生改变。
    啥时候 Java 也能有 webpack,babel,可以对 Java 代码进行 ET ( extract,tranform ),然后编译的,这种工具?
    那 Java 的开发效率,还不蹭蹭蹭的上去啊?

    对了,有做类似项目吗?

    > 我能想到的一个问题是,Java 语法比较硬,IDE 容易出现各种提示报错~
    第 1 条附言  ·  2019-07-23 16:26:43 +08:00
    嗯,webpack 和 maven 完全不是一个东西的。webpack 的 entry->loader->plugins -> output 跟 maven 的 lifecycle 有啥本质上的区别。不都是定义一个流程框架,然后支持插件扩展吗?最终不都是输出一个打包的 target ?
    第 2 条附言  ·  2019-07-23 17:26:08 +08:00
    搭车问下,Java 有啥比较成熟的 hotreload 工具吗?

    js,flutter 真香。
    第 3 条附言  ·  2019-07-23 18:59:39 +08:00
    现在回想起来,有点后悔发这个帖子了。
    这个帖子的看官主要是两类人:后端 Java 党,和前端 js 党。

    按照 V2EX 日常的画风:js 党永远在吐槽 node_modules,以及前端技术变化太快,学不过来了。Java 党也是永远瞧不起 js 这种动态的,弱类型的,非 CPU 密集型的语言(写个秒杀试试?话说,用 nodejs 写不了秒杀吗?)。

    所以,很清楚了,js 党在吐槽 js,java 党也看不起 js。

    但是前端似乎没有体会过?

    1. 开发 spark job,几分钟,跑 job 要跑几个小时,然后发现某行某个 string 写错,得重来?
    2. 开发重型的基于 SSM 的重型 web 应用,启动花了 5 分钟,然后改了一个类的结构,然后又要重启? 5 分钟。

    经历了这些,你还觉得 Java 对开发者很友好?
    第 4 条附言  ·  2019-07-23 19:04:19 +08:00
    说 gradle 的朋友们,不好意思,我是站在 java 后端角度来说的(忽略你们了,抱歉),所以我为了严谨,我还专门加了“基本” 2 字。

    话说,gradle。webpack 我觉得不错的地方在于,他可以扩展一个语言的语法,比如 jsx,tsx。

    有时候,我写后端,想扩展下 Java 语法,想想,我就吓了一跳,还是不要了。。
    第 5 条附言  ·  2019-07-24 00:17:59 +08:00
    日了狗了,恶心的一逼🤢。
    总有那些渣渣喜欢通过人工攻击+贬低别人来寻找优越感,以后我见一个 ban 一个。
    罪恶,今天忍不住爆粗口了。
    123 条回复    2019-07-25 09:39:56 +08:00
    1  2  
    lc1450
        101
    lc1450  
       2019-07-24 00:30:18 +08:00
    翻页
    695975931
        102
    695975931  
       2019-07-24 08:11:21 +08:00
    c sharp 的 nuget 就挺好用的。不像 webpack 和 maven 一样需要学
    VoidChen
        103
    VoidChen  
       2019-07-24 09:14:11 +08:00
    重启啥,基本就写完最后调试 2 下,改个实体你还要重启看效果?
    jitongxi
        104
    jitongxi  
       2019-07-24 09:41:07 +08:00
    ....java 也有 gradle 啊,更新极其频繁,我记得 15 年左右那会 gradle 还都是被墙着的, 那会写 android 的,真是要死要活.
    至于后端,gradle 普及率不高, 因为后端根本没有打几十个渠道包的场景,其他特性我还真没发现。
    ala2008
        105
    ala2008  
       2019-07-24 09:43:24 +08:00
    我们后端 2015 年开始就用 gradle 了。。你说的是插件吧
    sirm2z
        106
    sirm2z  
       2019-07-24 09:44:55 +08:00 via iPhone
    自从发现这个论坛的大部分口径都是

    前端没技术含量,js 是个乐色,进而进化到“前端开发,玩 js 的都是菜狗”这种隐晦观点

    之后,涉及到语言的帖子基本就不去看了
    lonelyBoy
        107
    lonelyBoy  
       2019-07-24 10:32:44 +08:00
    @efaun 天地,天地尚不能久,而况于人乎?
    langxuan
        108
    langxuan  
       2019-07-24 10:52:04 +08:00
    开发 spark job,几分钟,跑 job 要跑几个小时,然后发现某行某个 string 写错,得重来?

    ===================

    这算是 java 的锅? java 改名叫时臣算了
    zpf124
        109
    zpf124  
       2019-07-24 11:03:02 +08:00   ❤️ 1
    任何一个编译语言做 高版本到低版本的 transform 都是有些麻烦的, 但其实不是不能做, 没多少人做的原因其实一目了然.

    只有 js 这种运行环境不受官方控制, 各大浏览器的引擎不受约束, 各做各的导致标准推行困难. 新语法难以直接投入使用, 才被迫出来 babel 这种东西.
    其他语言 包括同样是解释性语言的 python 有什么 3 转 2 的项目特别受关注,几乎成为标配的吗?
    因为别人可以直接说 这项目就是用新标准写的,爱用不用,用就去安新版本的环境,或者你自己手动改造到旧版本去,爷不伺候.

    而且 因为需要将语法糖转换到旧语法, 你听说过"js 推出了一个新写法,这个写法使用了 xx 特性,性能提高了 xx 倍"这种其他语言发新版本会提及话吗?
    js 里类似的话是什么呢 "v8 引擎采用了 xx 算法,优化了某种类型的某种调用的性能"

    至于打包工具来说, maven 有些复杂,有些老旧死板, 但其实比 webpack 只强不弱.
    fivesmallq
        110
    fivesmallq  
       2019-07-24 11:12:58 +08:00
    开发效率的瓶颈并不在这里。
    LokiSharp
        111
    LokiSharp  
       2019-07-24 11:20:40 +08:00
    额。。。你是真的不知道 Kotlin 么
    neo3991
        112
    neo3991  
       2019-07-24 11:25:53 +08:00
    Jenkins 打包?
    b1iy
        113
    b1iy  
       2019-07-24 11:29:05 +08:00
    JavaScript 大法好,Webpack 强无敌.
    Maven 也就只能说是「能用」

    (手动狗头)
    pmispig
        114
    pmispig  
       2019-07-24 11:52:25 +08:00
    我仿佛看到了一个笑话,PHP 新版本性能又提升了 200%
    yizmaoaa
        115
    yizmaoaa  
       2019-07-24 11:52:46 +08:00
    启动慢是 spring 全家桶启动慢....

    maven gralde 之类的我觉得还是挺好的,gradle 也支持 kotlin 与 groovy

    一些东西还是跑 unit test...好点。

    如果没有 unit test 并且用的还是 spring 系的。。那么重启之类的就确实很蛋疼。。
    llhhss
        116
    llhhss  
       2019-07-24 11:52:55 +08:00   ❤️ 1
    又见月经引战帖。。
    1. js 需要编译是因为运行时和标准不统一,以及网络环境限制,非要说 ET,那 kotlin,scala 都算
    2. 突飞猛进是因为提升空间大,不够成熟
    3. 开发效率和打包有什么关系?觉得语法比较硬的话,你觉得 ts 和 js 哪个开发效率高?
    q397064399
        117
    q397064399  
       2019-07-24 11:55:55 +08:00
    @lihongjie0209 #23 何况 Java 承诺过 向下兼容字节码的,根本不需要担心这种问题
    leegoo
        118
    leegoo  
       2019-07-24 12:54:50 +08:00
    @ 2. 开发重型的基于 SSM 的重型 web 应用,启动花了 5 分钟,然后改了一个类的结构,然后又要重启? 5 分钟。

    可能你了解的 SSM 项目是比较老的版本了,
    而且现在也有 jrebel 热启动插件,无需重启
    jesson
        119
    jesson  
       2019-07-24 13:48:20 +08:00
    看了这么多,楼主确实是个傻屌,已拉黑
    userdhf
        120
    userdhf  
       2019-07-24 13:50:19 +08:00
    现在 web assembly 可以把其他语言编译成字节码了,然后在浏览器里运行
    beizhedenglong
        121
    beizhedenglong  
       2019-07-24 17:39:04 +08:00
    大部分人对于前端的理解还停留在页面仔的时代, 很多依然觉得前端现在用的东西很落后。 楼主在这问没有用,hot reload/ react 的一些设计理念早就被 native 开发借鉴了,
    Mirt
        122
    Mirt  
       2019-07-25 00:19:54 +08:00 via iPhone
    @yuankui Tomcat 是可以支持热部署的啊 还有 jrebel 插件 别说你给 pojo 加个属性了 你就是加个方法加个实现也不需要重启
    yuankui
        123
    yuankui  
    OP
       2019-07-25 09:39:56 +08:00
    @Mirt 是支持的,不过不知道支持到啥程度。因为是收费的,没有作深入体验。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.