首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  前端开发

为什么我不推荐盲目 flutter 以及作为前端程序员的一点感悟

  •  2
     
  •   murmur · 258 天前 · 13159 次点击
    这是一个创建于 258 天前的主题,其中的信息可能已经有所发展或是发生改变。

    注:我在提交这个帖子的时候触发了关键字,改了好多个地方才发现问题所在,所以有很奇怪的写法不要怪我

    先总结观点:

    1、只有大厂才有资格谈发展,小厂只看生态和眼前

    2、app 市场没那么大了,越来越多的 app 倒闭或被并购,甚至成为安卓 rom 的一部分,未来是内容至上的年代

    3、如果 flutter 真的很优秀,1 年甚至 3 年后再学一样不晚,早进早踩坑,晚用晚舒服

    4、是不是有人真的以为 app 程序员就是 java = android 和 ios = objc 啊,打开你的 apk 包看看,里面那些 lib 你认识多少,找一个不认识的试着反汇编一下,看你会遇到多少阻碍

    5、想要真的 run anywhere 的都死了,微软都没做到,flutter 能么?

    首先说一点,为什么你有资格写这个东西,我配么?对于互联网包容的环境来说,我配不配和我有没有资格写这个东西没关系,而且很重要的一点是,越是厉害的人越容易无视一个东西的设计缺陷,因为他们太牛逼了,可以轻松搞定任何复杂的东西,甚至帮助这个新框架去改进,去朝着自己想要的方向变化,对于他们,geek 的东西就很优秀,但是绝大多数程序员做不到,他们需要社区,需要成熟的第三方库,需要稳定的环境。

    问题争论的焦点,在于未来 app 还有多大的市场,否则各种新框架也没有什么优势了,诚然,小众的需求也要满足,但是太小众的需求难赚到钱,最后大家还是会考虑大众的需求,就拿查公交路线来说,这些数据都是公交公司给的,谁的门道够谁就能拿到数据,以前我需要一个查公交路线的 app,后来我改用公众号,再后来我惊喜的发现我用高德地图也能搜出公交路线来了,甚至他也整合了公交到站的时间预测。另外一个类似的就是挂号,以前各种挂号 app 推广,但是真正让我惊讶的是支付宝居然可以直接绑定我的就诊卡,而且没需要我输入,而其他 app 不仅需要手动输入就诊卡,还需要到特定柜台开通使用,虽然大家会一致声讨阿里偷了我们的隐私,但是就这个便利性而言,你给我个不用支付宝的理由?

    类似的需求太多了,主题、闹钟、天气、便签、垃圾清理、短信拦截,越来越多的内容被整合进 rom 里,你知道的,你知道会被你骂死的( HW 的某功能),都慢慢被整合了,以前买一个手机要一大堆 app,现在还需要多少?唯一没有被取代的,一是游戏,二是音乐视频 APP,再牛逼的 rom 也没法整合这么多正版内容,为了郭德纲我需要优酷,为了看 hihop 我需要爱奇艺,为了明星大侦探我需要芒果,为了周杰伦我需要 qq 音乐,似乎正版化也带来了一些烦恼。

    所以说,在大公司的平台级 app 一统天下的年代,还有多少新的 app 等我们开发,cordova 第一次做到了 write once,run anywhere,react 第一次提供了 native 到 web 兼顾性能和工程化的解决方案,然而现在到了 2019 年,安卓 845 加持下连支付宝这种在我以前米 4 上慢的要砸手机的 app 都能瞬间启动,flutter 的性能卖点还有多少?有人总想着滑动的丝丝顺滑,这也是 iphone 引以为傲每次来吹的地方,所以你的 flutter 想追这个点,拜托兄弟,你连最基本的启动速度都没做到,还想 UI 体验,这不是异想天开么?以前我用米 4,一个 QQ 音乐要启动 10 多秒才能放出歌,支付宝动不动 20 秒还没启动扫码,我需要的是速度啊,几个简单的功能被包装成巨大的平台,这怎么能优化的了?想优化先瘦身,如果你做轻量级 APP,支付宝除了收付款,什么付款都没有,想不快都难,别说 flutter 了,用 web 页面都能快到起飞(当然支付宝为了安全是不可能的)。

    还有人天真的以为自己搞定了 UI 层就能让 native 程序员让位置,先别说音视频这种对性能极致要求的地方,也别说某些人吹的替代 unity、cocos 这些(你可以写一个引擎出来,你能写出一大堆配套的工具么?),你解开一个安卓包,看看里面有多少 lib,有些 lib 可能你认识,但是你认为这 lib 跟你用开源代码编译出来的一样么?更别说你不认识的 lib,里面放了多少不想被破解的逻辑,难道这些是你用了 flutter 就能搞定的?那些资深的安卓和 ios 程序员,c/c++、算法、数据结构,还有各种优化、混淆技术早就成精了,然而只有前端这里今年换个框架明年换个框架,今年要服务端渲染明年浏览器 SPA 后年还是服务端渲染。

    一直以来,闲鱼在新技术上都有着执着的追求,打开闲鱼的 app,你会看到 flutter 和 weex 的封装,似乎没看到 rn 呢,然而这些新技术给闲鱼带来了什么,首先这个 app 相比 flutter 没出现之前,功能上几乎没任何变化,pc 端还阉割了搜索(可以理解为 pc 端放弃维护?),也就是说,所谓快速开发迭代并没有为你节约人手,用户的体验反倒还差了,每次 pc 端没法搜索的时候还要骂你两句,所以你图的是什么?

    一统天下,这是任何前端程序员的梦想,应该说 cordova 是最接近的,你可以一个页面又包 ios 又包 android,pc 端丑一点无所谓但是还能看,公众号里改把改把也能跑,然而到了 react native 开始搞平台化差异,你要做两套开发了,而 flutter 推翻了原来的 ui 架构,做的跟 unity 一样,这意味着你没有 rn 的生态,没有 cordova 随便一个 web ui 拿来就用的自由,要重新开始,一点一点踩坑,这也是为什么大厂敢宣传的原因,他们有大量的 native 程序员,可以完成底层想要功能的适配,可以解决框架种的深坑,最重要的是这种推到重来还能算绩效,而对于小公司,在社区不成熟的前提下,这是很危险的行为,2 年可能公司都没了,cordova 还更新的好好的,为啥 rn 就将死了?

    顺便说一下,ios 自己连 iphone 和 ipad 两个差异化都没做到,现在又一个框架想统一三端,这 flag 立的就有问题。

    作为前端,想不掉队学新技术没错,但是不能看到啥技术都瞎吹,甚至说什么未来有 flutter 工程师,flutter 工程师如果有只能说明这框架的坑太多需要专人解决,那么这框架的易用性和学习成本,相比 react 那就是 0 分拿走别客气,相反如果 flutter 做到了成熟的生态,填平了深坑,那你 1 年和 3 年后开始学习并没有什么区别。这里作为前端工程师你还感觉不到么,以前面试要问的 ie6 ie8 兼容性,奇怪的 css hack 写法,现在还有人问么?所以啊,一些人说的没错,有些公司不问框架开始问数据结构和算法,这当然是程序员的必修课,而且如果你学过几个框架,这些框架的套路就可以摸个七七八八的,然而这也不是你给 flutter 那种垃圾 ui 写法洗白的理由。

    顺便,我们是做企业开发,用的是最被鄙视的 cordova,我们的需求很有意思,除了热更新,还要从服务器上加载模块执行,当然我们是企业签名不要求上商店的,webview 的自由允许我们为所欲为,有人说 webview 的软键盘有坑,那很简单我们不在底栏放输入框不就完了。。


    如果是前端程序员,我还是推荐大家学习 java 的,理由如下

    加瓦加瓦,添砖加瓦,说明 java 才是开发的基石

    j2ee=捷途易易,这也是为什么 java 在企业开发如此风靡的原因

    如果你问我 2019 年 vue、react、angular、flutter 学哪个,我会毫不犹豫的推荐 jQuery,理由:

    jquery=杰阔睿,杰是杰出,代表 jquery 的高超设计水平,阔表示广阔,也就是海纳百川之意,睿就是睿智,指 jquery 处处精妙的设计

    第 1 条附言  ·  258 天前
    分割线后面的是水贴,原来我写明的,但是我以为那段话有敏感字又去掉了
    23 回复  |  直到 2019-11-05 19:08:15 +08:00
        1
    neverm0re   258 天前
    。。。
        2
    zhlssg   258 天前
    真是睿智啊
        3
    murmur   258 天前
    后面是水贴,我以前标明了的,但是我以为是触发了关键字就把那条提示给删掉了
        4
    hasaki1997   258 天前 via Android
    这个 ID 过于活跃
        5
    IceBay   258 天前
    部分赞同
        6
    isCyan   258 天前 via Android
    部分赞同,
        7
    mruoli   258 天前
    解放生产力,提升生成效率,优化生产关系
        8
    zeropercenthappy   258 天前
    终于看到一个跟我司一样在广州也在用 cordova 的大佬了
        9
    yimity   258 天前
    不管你说的是不是真的,反正我要赶紧学,我不想 2 3 年之后再学的时候,很多人已经学会了,又跟不上了,反正学习嘛,啥时候都要学的。我都挺后悔 13 年学了一点 dart 然后放弃了。
        10
    est   258 天前
    Dart 就是当年的 vb。
        11
    hilbertz   258 天前
    即使 google 强推,看情况也好不到哪去,毕竟 google 自家的产品大都是失败的
        12
    overwhats   258 天前
    老哥稳
        13
    jackchao7432   258 天前
    睿智
        14
    ookkxw   257 天前 via iPhone   ♥ 1
    这年头都这样,我的观点是,你吃过原生这坨屎,再去吃跨平台的,不然你就真的屎了,

    想起前天朋友去面试问了一堆 react 的问题,最后告诉他我们公司是写 jq 的
        15
    murmur   257 天前   ♥ 2
    @ookkxw 原生的屎是必须要吃的,官方支持的 native 插件可能不弃坑,但是第三方的可能弃坑,所以无论如何都得有原生开发能力
    前几天我们想咨询一下 ionic 的原生付费组件 结果人家理都不理我们
        16
    1219178163   174 天前
    rn 将死?是什么梗
        17
    murmur   174 天前
    @1219178163 因为 flutter 要改变世界啊,所以 rn 只能死了
        18
    fenglin222   162 天前
    前端还是学 ionic4 好 若是原生或后端学 flutter
        19
    tuomasi   119 天前
    flutter 正在写第一个 app 还是坚持写完吧 weex 放弃了,曾经开发过 weex 页面的同事说过 weex 很垃圾,现在看来果真如此,react 生态真的是强,但是 rn 不看好,fb 各种骚操作只能放弃了,native 开发比前端同学要抵触开发跨平台应用,前端开发跨平台是扩展技能,native 开发跨平台有点自废武功,自己擅长的用不了,换谁都别扭,况且 flutter 本来就是面向广大前端同学的,要不 Dart 语言干嘛那么像 JS,楼主的观点我也不赞成,我记着三年前 python 不像现在这么火,自学一点 py 有点开发经验 2 万+不是问题,现在 python 培训班满大街都是,根本找不到工作,如果感觉某一门技术有发展并且对自己确实有用,早学比晚学要好,flutter 开发少没关系,要求也低,等学的多了,动不动就三年 flutter 开发经验了
        20
    oNuGrInDiNg   115 天前
    感觉现在 Flutter 只是 Google 往 Fuchsia 引流的工具,可以等着看看 Fuchsia 出来后的效果再决定学不学,当然空闲时随便学学也不算浪费时间。
        21
    dk7952638   105 天前
    杰阔睿好评
        22
    QdouHuiQwaiLai   16 天前
    我寻思学这个东西要花吃奶的力气? 前怕狼后怕虎的, 会 react 每天 2 个小时最多一个星期就把基础的看完了
        23
    milukun   16 天前
    Google 的目的是以后推 Fuchsia 的时候能更顺利吧
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1661 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 16:48 · PVG 00:48 · LAX 08:48 · JFK 11:48
    ♥ Do have faith in what you're doing.