文档章节

大前端时代即将来临,后端该何去何从?

左华栋
 左华栋
发布于 2018/12/21 02:06
字数 936
阅读 4306
收藏 83

缘起

“天下大事,合久必分,分久必合” 一直以来,前端都是“切图师”,仅有“特效师”一脉堪称翘楚。

大家就这样安安分分过了几年,前端一直是js的天地,直到08年的一天,node.js 横空出世,开始不安分起来。

一时间,暗流涌动,后端也开始发力。

与此同时,也有 coffeescript 等相关的项目崛起,用后端语言写前端。

甚至 谷歌也有 GWT 这样的以 java 写前端的方式。

反击

但紧接着,grunt gulp webpack ... 以及三大框架 层出不穷。

express 、 koa 再到最近的nest.js 也让人难以招架。

node.js 在后端虽然没掀起大浪,可也总算有了一席之地,前端复杂的工具链及框架,coffeescript 败下阵来,GWT 后来演变为 Dart。

毫无疑问,这场战争的胜利属于 JavaScript/Typescript。

webassembly 出世

JavaScript 看来没办法绕过去了,Rust kotlin go 一直想通过 webassembly 弯道超车,有了一些前端框架(编译成 wasm), 可由于生态原因,兼容问题,以及各种难以解决的问题(比如SEO)也没能分到一杯羹。

前端更新迭代太过于迅速了,这么活跃的社区,以至于其他语言难以分到一杯羹。

可以说 JavaScript 和 Typescript 的地位已经难以再被撼动了。

flutter 弯道超车

随后有 weex 、ionic、nativescript 、 react native 这样的项目出现,以及 electron, nw.js ,这下前端可真的要成为大前端了。

不曾想,半路又杀出个 flutter ,不仅在 热重载 、性能 等方面有很大优势,而且跨平台,正式版还没发布,社区一度火过 react native ,国内的各种插件包括微信支付,支付宝支付,微信分享等等,非常齐全。 由此可见 flutter 在国内多么受欢迎。

虽然 Dart 有 Angular 版本,但不得不说,一直以来只有可怜的1000star 不到。

flutter 此次要延申到 桌面应用、web 领域,那就跟 Typescript 必有一战了。

这跟后端有什么关系

“帝国主义亡我之心不死”

前面提到过,有如此完善的工具链,后端语言很难再把手伸向前端了。

但可以预知的结果是,不管 Typescript 和 Dart 谁输谁赢,都会把手进一步伸向后端,去蚕食后端的份额。

前端有什么杀手锏

这是最近非常好用的一个工具: https://www.apollographql.com/

可能你觉得它还不够,那么接下来这个东西将让你倒吸一口凉气: https://www.prisma.io/

替代 restful 、 RPC 、 ORM 一气呵成。 不需要后端了,设置好数据权限即可。

可能你觉得它还太过于“玩具” ,但未来发展,等到前端再次将手伸向后端,再结合前端工具链优势,一切未可知。

会不会出现 prisma 和 后端的杂交品种? 会不会 出现一个新的打包工具?

将来的差距可能只在生态上。

一点思考

照这个情况来看,讨论后端语言谁优谁劣的意义实际上已经不在了。

万一哪一天, npm run build 或者 flutter packages get 一个命令帮你把 k8s 下载构建好,利 用webpack 自动构建好 istio 和 jenkins 配置, 那时候,你又会怎么想呢?

© 著作权归作者所有

共有 人打赏支持
左华栋

左华栋

粉丝 35
博文 16
码字总数 9013
作品 6
西安
产品经理
私信 提问
加载中

评论(52)

左华栋
左华栋

引用来自“深蓝苹果”的评论

一看就知道是个只懂点(还不多)前端的人写的
如果前端是 dart 胜的话,你想说什么?java 能做到的,dart 都可以,只是生态和时间问题了。 虚拟化? go 那堆东西 dart 都可以。 想说 数据分析,dart 性能同样够。 (多数表现好于java) 只是时间发展问题了。
左华栋
左华栋

引用来自“水枫夜”的评论

历史总是相似的,以前逻辑全在数据库,后来分开了,然后因为逻辑有一些是嵌在页面里的,后来也分开了。现在你和我说要合并……想起了以前也是在开源中国看到一篇文章说的是层出不穷的开发语言问题。文章里有一句话,原话记不得了,大概意思是:一门语言刚出来看时总是好的,但终有一天它会把当时脱掉的衣服再穿回去。
合久必分,分久必合
yywww
yywww

引用来自“左华栋”的评论

引用来自“豆儿爷”的评论

该醒醒了,前端快要标准化了,人工智能、大数据时代正在降临。前端模板化、标准化正在降临。

1. 前端不等于切图。
2. JS 和 Dart 同样有深度学习框架。
3. 目前发展情况来看,前端比后端复杂,后端替代前端没成功,倒是prisma 这样无后端的发展了起来。
有深度学习框架的语言多了,问题是很多人用吗,搞深度学习有框架就可以是个人都干了? 数学门槛太高,而且数学好的人,选前端方向的太少
水枫夜
水枫夜
历史总是相似的,以前逻辑全在数据库,后来分开了,然后因为逻辑有一些是嵌在页面里的,后来也分开了。现在你和我说要合并……想起了以前也是在开源中国看到一篇文章说的是层出不穷的开发语言问题。文章里有一句话,原话记不得了,大概意思是:一门语言刚出来看时总是好的,但终有一天它会把当时脱掉的衣服再穿回去。
深蓝苹果
深蓝苹果
一看就知道是个只懂点(还不多)前端的人写的
衷于栖
衷于栖
我看到你只说网络应用我就放心了
雪之舞
前后端有区别吗,java,js有区别吗?
左华栋
左华栋

引用来自“却又让幽兰枯萎”的评论

想来想去都是什么语言,程序员开始几年考虑技术的问题,到后来想的应该是产品的功能,写了几年的代码还停留在用什么语言的水平上估计天分也只能在这个地方了,不你想想开发个什么新东西给别人带来的价值吗,这才是你价值的延续老铁
Notadd 相关开源项目,有很多
左华栋
左华栋

引用来自“heyming001”的评论

npm 难用的一比。。。感觉npm不会走太远。。除非有重大更新。
npm 下一代,已经有 tink 了,官方在开发
h
heyming001
npm 难用的一比。。。感觉npm不会走太远。。除非有重大更新。
一入前端深似海,从此红尘是路人系列第四弹之未来前端路该何去何从

一、为什么学下此篇博客? 今天之所以会发这么一篇博客,主要是因为最近横空出世的微信小程序,当然本人也自己玩了一下小程序,发现的确是挺好玩的。但我今天要讲的并不是关于小程序的,而是...

qiangdada
2016/10/03
4.9K
31
Web研发模式演变史

前不久徐飞写了一篇很好的文章:Web 应用的组件化开发。本文尝试从历史发展角度,说说各种研发模式的优劣。 一、简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后...

ingarfield_123
2014/06/12
0
0
《未来世界的幸存者-阮一峰》系列分享专栏

2016年3月,谷歌公司的围棋程序 AlphaGo 战胜了世界冠军李世石。 这让我猛然意识到,世界正处在一个前所未有的大变局: 机器人、自动化、人工智能正在变得比人类更强大。 在可预见的将来,技...

kaixin_code
2018/10/29
0
0
大前端时代,我为什么支持前端程序员学习原生技术?

在上一篇文章中,我分析了大前端的趋势,我建议原生程序员拿出3分精力来学习大前端技术。本文将进一步分析这一趋势,并针对前端程序员(FE)给出一些建议。在此之前,先给大家介绍下大前端。...

singwhatiwanna
2018/10/15
0
0
Web前后分离架构研发模式de演变

前不久徐飞技术博客写了一篇很好的文章:Web 应用的组件化开发。本文尝试从历史发展角度,说说各种研发模式的优劣。 一、简单明快的早期时代 可称之为 Web 1.0 时代,非常适合创业型小项目,...

English0523
2015/09/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
35分钟前
2
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
40分钟前
1
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
2
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
2
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部