V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iorilu
V2EX  ›  程序员

我最近在想一个问题, 为什么前端不断有重复的轮子框架等等技术开发出来

  •  
  •   iorilu · 353 天前 · 2298 次点击
    这是一个创建于 353 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我不是前端开发, 但也算“被逼” 学了前端, 一路升级过来
    从最早手撸 js+css+html ,混在一个页面, 到后来 jquery , 起码把代码可以放在一起了, 调调函数, 后面 node 出来就是一堆框架了,react 也搞过,vue 也看了一些

    我必须承认, 不管怎么弄, 前端在我手里是“不可控状态”, 什么意思,就是一句代码写出来, 我不敢肯定到底会发生啥, 一个简单的 css 对齐可能要搞很久,这确实很不爽

    程序复杂还是简单不是看这语言语法简不简单好不好笑, 而是你到了开发实际产品时候, 你必须时刻明确这代码到底会干啥, 要么成功要么失败的明明白白, 不可能在任何时候有“凑代码”的时候, 但搞前端有时候我还是要凑代码,不知道到底怎么搞, 只能一行一行加或一点一点改

    这么多年, 还在不断有所谓新轮子新技术层出不穷, 也就意味这开发人员也被迫不断学习“新技术”,
    搭“新环境”, 写“新玩具代码”, 很显然, 这其实并没什么意义, 对个人积累来说

    一个 c 程序员或 java 程序员可以说写了 5 年,10 年, 积累了不少功力, 经验, 这是可靠的, 因为他们并没有一直重复学习写新玩具代码

    但一个前端说 5 年,10 年经验, 很难说积累了多少经验

    乱说了一堆, 其实我就是想说, 为什么没有一个能稳定用很多年的前端技术出来呢, 是不是意味着 html ,css ,js 的组合本身是有问题, 问题复杂化了, 我只想搞个简单能用的默认界面啊
    17 条回复    2023-05-02 15:39:22 +08:00
    ioben
        1
    ioben  
       353 天前 via iPhone   ❤️ 1
    永远不变的是变化本身。这是世界现有的样子,除非你在朝鲜喔🧐
    codehz
        2
    codehz  
       353 天前 via iPhone   ❤️ 2
    主要现代前端框架不是解决怎么把页面做出来的问题,而是解决怎么在需求复杂而且经常变化的环境下,把代码的复杂性控制到一个合理的水平的问题
    如果只是做出页面,并再也不需要动,那自然不需要发展这么多所谓的框架,香草 js 肯定可以解决所有问题。
    问题在于,一旦需求发生了变化,比如要加一个功能,怎样才能让复杂性以低于线性的速度增长,而不是 O(n!)复杂度。
    googlefans
        3
    googlefans  
       353 天前
    让 gpt 帮你写
    iorilu
        4
    iorilu  
    OP
       353 天前
    @googlefans gpt 也就写点玩具代码把

    gpt 价值是实现一些常用算法函数之类, 这个反正都一样,拿来就能用
    lesismal
        5
    lesismal  
       353 天前
    因为没有一个真正够好。
    davidoff567
        6
    davidoff567  
       353 天前
    软件工程没有银弹,需求推动了新技术产生,而新技术又将带来新需求。不断涌现才是正常现象
    zxCoder
        7
    zxCoder  
       353 天前   ❤️ 1
    你:前端==页面,而且还“不可控”

    大佬:前端工程化!

    这其实就是问题的答案
    iorilu
        8
    iorilu  
    OP
       353 天前 via Android
    @davidoff567 问题是我没觉得这些所谓新技术带来多少好处

    这些轮子本质并没太大区别,仅仅是因为某些大佬自己想开发轮子就不断搞出轮子,多几个前端开发真的是用户提出所谓的需求,还是大佬们自己想出来的需求

    事实上据我认为,终端用户对界面变化需求并不大,桌面软件很多几十年没变界面,也没人说不好,归根大家是看功能效率,没几个人根据界面好不好看时髦不时髦来决定用什么软件把
    byteroam
        9
    byteroam  
       353 天前
    我就想知道啥时候能有以前 frontpage 那种拖拽几下就能生成一个页面的玩意,bootstrap 那个用了下太简单了,里面很多控件都没有
    huijiewei
        10
    huijiewei  
       353 天前
    @iorilu 你在搞笑么,什么叫桌面软件几十年没变界面,和 Web 一样,都是从 MVC 慢慢转变成 MVVM ,更别说底层的 GPU 渲染什么的了。

    理解了 MVVM ,React Vue SolidJS Angular 有什么区别呢,都是数据驱动 UI ,只是方式不同而已

    自己理解不了就好好学,再怎么唱衰都回不去
    davidoff567
        11
    davidoff567  
       353 天前
    @iorilu 我说的需求 就是程序员的需求,程序员常见的需求有哪些?性能更快、稳定性更高、开发起来更省劲 最好准时干完下班回家陪老婆孩子 等等一系列,假如非要把普通消费者和开发者一概而论 那这个命题就是错误的,怎么答怎么错。举 1 个简单例子,react vue 之类的新技术 让前端从直接操作 DOM 改为数据驱动页面,开发者只需关注数据变化,并且前端能做的事变多了,提升了前端的重要性 分担了后端工作量(他们不用写蛋疼的 CSS 了),这就是程序员作为新技术的用户享受到的福利之一。
    fantathat
        12
    fantathat  
       352 天前 via iPhone
    那是因为互联网大爆发,研发效率需要提升。但是我认可你说的,前端的代码存在不确定性,补充一点,那些框架的横空出世有一些是真正有创新的,比如 react ,引入了 vDom, components, jsx
    zhang77555
        13
    zhang77555  
       352 天前 via Android
    不差钱的大佬造的大轮子是因为对现有东西不满就自己干一个,其结果是一定程度上加快了行业运转效率,对打工人来说是好是坏其实并不容易界定
    比如你的问题其实是你目前的需求用你原来的知识就可以搞定了,但是行业标准变了导致你不得不学新的技术去实现,结果是你更累了,但是项目整体和你个人收益都没变化,这是行业风气导致的,参与内卷的都要背锅
    JiRouWaZi
        14
    JiRouWaZi  
       352 天前
    @iorilu 是的,这些新技术的好处就是重写一遍项目完成 kpi
    jones2000
        15
    jones2000  
       352 天前
    前端也一样呀,
    用 js , 你写了 10 年, 就是 10 年经验。 关键是很多前端不会写 js 。
    star7th
        16
    star7th  
       352 天前
    你不是前端开发,所以你不会遇到多复杂的页面需求。正如你所说的,你只是想做个简单页面。那么,你直接用原生 js 写就好。因为简单页面不需要复杂交互,原生 js 写也不会浪费多少时间。
    至于说前端工程化框架 vue 或者 react 等,都是为了解决复杂问题产生的。你都遇不到复杂问题,你自然不需要用它们。用它们自然给你带来了更大的复杂度。
    artnowben
        17
    artnowben  
       352 天前
    C 程序员是在写轮子给别人用。
    很多情况下,C 程序员主要解决性能问题,需要针对不同的场景,做一些特定的轮子,满足性能的要求。
    例如:
    1. 经典的 C10K 问题,后来演变为 C100K 问题,C1M 问题。
    2. 四层负载均衡 LVS ,用 DPDK 加速为 DPVS 。
    3. 经典的测试工具:ab 、wrk ,用 DPDK 加速的测试工具 dperf 、t-rex 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4707 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:55 · PVG 17:55 · LAX 02:55 · JFK 05:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.