讨论从AJAX到MVVM,从JS的进步看互联网的20年发展变化

phpmaster
108阅读22评论4 个月前

注:本文电鸭首发,phpmaster(https://github.com/phpxwork)作者原创。

另:作者全职远程开发者,自由职业全栈开发,技术栈VUE+小程序+HYBRID APP+php(YII,PHPXWORK,TP5)。各种开发各种骚。欢迎各种外包各种兼职和全职老板联系。

我本人是从2002年拥有了个人第一台电脑。身为一个村痤,在当时彩电还没有100%普及的农村,还是有点优越感的。电脑入手后,记得玩的第一个3D游戏盟军敢死队。那种惊险刺激的感觉今天都还记得。当然,身为学霸的校痤,也不好意思光玩游戏。于是后面开始主动的想用电脑学点什么。

于是开始了自己用FrontPage探索学习网页设计。到高中以后,开始主动淘汰了FrontPage,用上了更有优越感的Dreamweaver。开始学习ASP和ACCESS编程。

前面说这么多呢,只是想说,本人接触互联网并且学习技术,算是比较早的。也属于很早一直关注互联网技术发展的。

记得AJAX技术第一次在业界大放异彩,以至于后来所有的公司都还是追逐使用这项技术,大概是在06年。那一年谷歌还没有退出中国市场。谷歌在它的首页上,第一次使用这个技术,实现了一种无须刷新网页,就能更新到数据的新奇体验。这种技术在今天的我们开发者看来,简直是不要太入门,太基础了。但是在当时的环境下,如果不是谷歌的大力推广,真正了解这项技术的人还是很少的。虽然说,实现ajax的技术接口并不是当时才有的,其实最早的技术雏形早在2000年之前就有了。但是由于各种环境和人们认知的问题,并没有真正得到什么著名的应用。而且在当时的环境下,一个会写HTML和一点CSS的人,就敢随便跟别人一个项目开口要几十万的环境里,对技术的要求真的不敢太高了。可见当年的技术之之前和稀有。而在环境上,Javascript甚至还和VBScript并存。现在还有人知道VBScript是个什么玩应儿吗?而Javascript甚至存在的大部分意义,可能就是为了实现在网页的周围放烟花,以及鼠标移动的时候跟着一串星星那种在现在看来LOW到爆的无意义特效。和当年风头正劲的非主流发型家族遥相呼应。

然而,从谷歌的ajax应用发布的那一天之后,世界突然顿悟了。我们终于知道了自己这么多年有多么的LOW了。再也不好意思让网页上喷烟花了。无数的关于“AJAX”的书籍铺天盖地的在各种渠道销售。学习技术的人们出口必提ajax,否则就是感觉话题太LOW了。当然,现在回头看那个年代,为了一个几十行固定代码的技术,除了几十个不同版本的书,也真是不知道怎么说了。

不久之后,Jquery就问世了。

Jquery成了新神。然而就我个人来看,它对我个人最大的改变在于,我再也没有继续使用VBScript做前端表单验证的理由了。

是的,Jquery成了新神。一时之间风光无俩。尤其是Jquery的官网。一种彻底刷新中国设计师认知的新的高端设计理念冲击着人们的大脑:简约化设计。不再有大筐筐嵌套小框框,不再有不停山东的“HOT","NEW"。更不可能有屁股冒烟的鼠标箭头。一切都归于沉稳,突然之间领悟了高端。而且令人传为美谈的更是,创造jquery的团队,竟然是一个远程团队。而且不盈利!

跟着Jquery,Jquery-UI,Jquery-Mobile都来了。虽然后来的事实证明,他们其实都没什么鸟用。但是当时,可能Jquery团队自己都在认为,Web前端开发的发展历史,到这里就该终结了。

然而就在这时候,iPhone 4火了。没两年,一种图表是绿色机器人的操作系统也火了。人们扔掉了砖块机,用起了触摸屏。随着手机应用越来越普及,PC的市场被抢了。越来越多的人习惯于直接使用手机APP。对网页搜索的需求越来越低了。需求越来越精准,越来越细分。

这时候,网页的前端不再那么需要考虑搜索引擎了。对SEO的依赖越来越低。这是谁也不曾料想到的。这就直接触发了一种全新的前端开发模式的流行——MVVM。Angular火了,React火了,微信抄了改个名字“小程序”,也火了。

如果没有移动应用的推动,这些都不可能如此的大火,至少不可能火的如此之快。因为在移动应用流行之前,任何的网页设计,都要考虑到KISS 搜索引擎的 ASS。所谓的SEO。而MVVM和SEO是天然冲突的。所以,虽然ANGULAR第一个版本在2008年就存在了,但是他真正的发迹的时间,却是在2003年。当时,新潮的技术者正捧着iPhone 5S喝着咖啡,看着装逼的新闻客户端。

2010年,历史大事件:Node.JS发布了。Node并不是专门为前端或者后端所研发的一种语言。因而他既可以为前端服务,也可以为后端服务。由于天然使用Javascript,也天然理解Javascript。他天然的成为了各种MVVM的JS库的编译引擎。为各种语言框架的工程化实现铺平了道路。

到了今天,如果你是一个不懂React,Vue的前端开发者,你还敢往老板们的信箱里扔简历吗?

讨论话题:
热门话题
加载中…
精选评论
4 个月前BIGray

各种开发各种骚

sologan好评👍,文章写的很用心,充电+置顶。

4 个月前Meathill

内个,错误太多了……

  1. ajax 大放异彩是在 Gmail,不是 Google 首页;时间也不是 2006 年,而是 2004 年。2006 年,国内的网站都开始上 ajax 了。
  2. js 存在的意义当然不是放烟花,而是校验表单。放烟花实际上得益于 DHTML 的发展和普及,尤其是 IE 5.0+,Firefox 2.0+,时间差不多也是 2000 年后。
  3. 如果没有 DHTML,ajax 也没有意义。实际上,2000 年以前的技术大多基于 <iframe> 和自动刷新。
  4. 小程序跟 React 没什么关系,它的成功与前端 MVVM 更没关系。
  5. 实际上,从 jQuery 出现,到 MVVM 一统江湖,中间还有很长一段(5~6年)群雄割据的时间。期间,ember.js,knockout.js,backbone.js,avalon 在争夺框架的主导权;sea.js,require.js,browserify,webpack 在争夺工具链的统治权
  6. node.js 就是为了在服务器端跑 js,只不过 Windows、macOS 都是服务器,所以客观上,它也可以让开发者在各种平台健全工具链。node.js 里面的 JS 引擎叫 V8,目前非常普及,用在很多地方。
  7. SEO 直到现在都非常重要,不然也不会那么多 SSR 方案。当年不做 SEO 不是因为移动应用让大家不用搜索引擎,而是当时没有 node.js,没有办法统一 web 端和服务端。如今可以兼顾 SEO 和 SPA,所有的团队都开始做了。

其它还有一些不那么明显的错误,就先不多说了。

感谢纠正~

不过有一点我不认可,我认为小程序就是对REACT框架精神的一种抄袭。就跟他家的王者荣耀,当然不可能承认就是DOTA。但是在我们十几年的玩家看来,说他是dota的儿子应该没什么关系。

4 个月前豆腐脑

最强回复贴... 这才是干货满满

4 个月前豆腐脑

首先你怎么界定小程序的成功? 我理解Meathill 想说的应该是 小程序的成功跟技术无关,主要是他解决了什么问题? 不知道对不对.

抄袭的话... 那vue 你是不是觉得他也是在抄 ?
不知道你有没有看到这个帖子. Vue 和 React 的优点分别是什么? 这个标题有点引战.不过尤雨溪的回答很nice.

最强回复

4 个月前Meathill

小程序的核心是:

  1. web 混合原生,体验远超纯 web
  2. 微信提供框架,大大提升打开速度
  3. 微信提供生态(包括付费和用户身份),大大提升用户参与度

MVVM 和 .setData() 的实现是最不重要的组成部分。类似说丰田是对奔驰精神的抄袭一样。MVVM 架构是 2007 年微软架构师在 C# 里提出的,我们也不会说 React 是抄袭 C#。

4 个月前BIGray

最强回复👍比“支持”、“赞一个”这类划水回复有价值的多。

4 个月前Martin老王

不能说抄袭。你看了别人的源码,学习了源码的思想。你造了一个轮子,解决了某些开发问题。这肯定不是抄袭,是站在巨人的肩膀上继续前行!

web混合原生首先肯定是不存在,小程序就是纯web。极少部分原生只是某些控件。这个并不影响整体的性质。
微信提供框架。这个应该只是一个类似于V8引擎。所谓的框架最多也就是一次性打包把所有前端页面下载,并且缓存在本地。其它的框架都是不存在的。小程序从体验上来讲,就是纯Web。就好像是前端在你本机,这样打开速度当然是很快的。(第一次打开其实更慢,这个我们都有体会)。其实呢,如果UC浏览器打开对静态页面的本地缓存,而你的系统实现前后端分离的话,体验和小程序是一样的。小程序就是纯WEB。
第三点,生态这个是商业方面的。确实成功。但是成功以后并没有对给他提供思想原型的人任何感谢。
最不能同意的是说MVVM和.setData是最不重要的组成部分。没有MVVM的思想模式,小程序当然也可以实现。使用jquery或者其它ajax的框架,也可以实现前后端的分离,前端缓存在本地,从而实现访问体验上的提升。这没有问题。是可以的。但是这样实现的话,首先是开发模式大大的落伍了,而且再也不好意思声称自己是WEB+原生的了。

4 个月前豆腐脑

原生组件 小程序的官方文档 6、7小节 推荐看看。

极少部分原生只是某些控件。这个并不影响整体的性质。

4 个月前anyway

但是腾讯确实是靠抄袭的呀,这个公司,做的特别多的游戏。
也不是腾讯自己,国内都抄袭,换套皮肤。
微信是不是不知道

对,真的没必要在技术层面把小程序捧那么高。当然他在商业上的成功是有目共睹。这个没话说。
纯技术层面讲,在有了React,Angular这些MVVM框架巨人之后,实现上并不困难。就算是所谓“原生组件”,实现也并不难。我甚至是否可以合理怀疑,早最早期的小程序版本的核心库的代码,就是直接以ANGULAR的代码为蓝本改过来的。一度这样怀疑过。

4 个月前Meathill

建议多了解一下小程序。你的这个回复跟主贴一样,错误太多……

现在大家都在做小程序,比如支付宝、美团、抖音,都有自己的小程序平台。相关分享也很多,不妨找来看看,然后你就知道小程序是什么了。

MVVM 2007 年提出,2015 年大放异彩,到 2017 年小程序发布的时候,已经是全人类共同的精神财富,没有谁抄谁一说。

这个,我首先感觉没必要刻意为谁洗刷什么。抄其实本身也不是什么大事。就是一直赖着不承认反而感觉不好。

其实REACT,ANGULAR,这些MVVM的框架设计之处,就跟我前面文章里说的jquery一样。就是本着开源精神来的。可能这就是说的全人类共同的精神财富。别人确实是奔着这个来的。 现在小程序基于人类共同的精神财富,给自己穿了一套新衣服,反而再也不承认自己属于人类共同精神财富的一部分了。这就有点,,,那啥了。

企鹅公司天生就不具备创新精神的公司。也不会有任何创新的空间。拿来主义的聪明和省力,不可能给月薪几万的员工去天马行空的时间。把最多的生产力投入到能产生银子的地方去。这种环境决定了,他不可能有任何真真正正自己完全精神上原创的技术,或者创意。

还是游戏为比喻,第一个能想出dota玩法的开发者,除了要极具天赋,还要有淫浸游戏多年的经历,还要有自己决定自己的操作空间,还要有极大的偶然性。这在一个被称为“厂”的公司里,都是几乎不可能的。拿来是最靠谱的。拿来,流量变现。

我可以合理推测,小程序这个东西本身,他就是基于创始人对ANGULAR,react等MVVM框架的了解,结合微信本身的可操作空间,得来的一个创想。可是说他确实是把MVVM的前端开发模式的应用和商业化推向了一个新的LEVEL。但是,小程序就是MVVM,是前辈REACT生的儿子。

4 个月前Meathill

我干嘛要洗刷小程序,他们又不给我钱……我只是单纯的想纠正你的错误而已。你不想被纠正,那就算了呗,也可能本就是我错了。

祝前程似锦,鹏程万里。

4 个月前anyway

还是要支持

4 个月前上下求索

涨姿势了

4 个月前海阔天空

现在的 vue 确实好用

4 个月前william

确实前端变化太快了,简直学不动了