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

2023-04-30 18:07:41 +08:00
 iorilu
我不是前端开发, 但也算“被逼” 学了前端, 一路升级过来
从最早手撸 js+css+html ,混在一个页面, 到后来 jquery , 起码把代码可以放在一起了, 调调函数, 后面 node 出来就是一堆框架了,react 也搞过,vue 也看了一些

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

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

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

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

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

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

gpt 价值是实现一些常用算法函数之类, 这个反正都一样,拿来就能用
lesismal
2023-04-30 22:10:21 +08:00
因为没有一个真正够好。
davidoff567
2023-04-30 22:51:34 +08:00
软件工程没有银弹,需求推动了新技术产生,而新技术又将带来新需求。不断涌现才是正常现象
zxCoder
2023-05-01 09:24:25 +08:00
你:前端==页面,而且还“不可控”

大佬:前端工程化!

这其实就是问题的答案
iorilu
2023-05-01 13:04:50 +08:00
@davidoff567 问题是我没觉得这些所谓新技术带来多少好处

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

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/936621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX