前端发展历程,程序员须知

1

主题

5

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-3-2 21:55:04 | 显示全部楼层
WWW:万维网的发明
在我的文章HTTP入门提到过,网页出来之前,人们都是用邮件来通信的,直到Tim Berners-Lee 在 90年左右发明了WWW(万维网,World Wide Web),一种适用于全世界的网络。
主要包括三个概念:
URI:俗称网址,作用就是能让人们访问一个页面
HTTP:电脑间传输文件的协议(将文件传输格式统一规范起来),目的就是让用户可以下载
HTML:超文本标记语言,写网页上能看到的内容,加入链接可做页面跳转
之后,由这三个概念支撑陆续发明网页,服务器,浏览器形成万维网的雏形。
JavaScript的降临:
世界上第一个浏览器只是用来浏览网页,但页面无法控制浏览器的行为。比如用户忘记填写用户名点击发送,必须等服务器的回信才能知道用户忘记了,如果在点击发送之前可以验证用户输入就非常理想了。所以急需一种可以嵌入页面的脚本语言。
起初对这种脚本语言的设想只是功能不能太强大,语法简单,容易上手,所以排除了当时市面上的Java,Python等,需要一种新的语言。
于是,Netscape 公司雇佣了Brendan Eich来开发,他只用了10天就发明出来JavaScript的雏形,由于Brendan Eich具有强大的函数式编程背景,语法也来源于多个背景:
基本语法:借鉴 C 语言和 Java 语言。
数据结构:借鉴 Java 语言,包括将值分成原始值和对象两大类。
函数的用法:借鉴 Scheme 语言和 Awk 语言,将函数当作第一等公民,并引入闭包。
原型继承模型:借鉴 Self 语言(Smalltalk 的一种变种)。
正则表达式:借鉴 Perl 语言。
字符串和数组处理:借鉴 Python 语言。
由于时间仓促,且为了保持结构简单导致JavaScript具有诸多问题,缺乏很多重要的功能,比如块级作用域,类的概念等(在ES6及今后的版本中JavaScript还在不断完善的道路中)。
1996年3月,Navigator 2.0 浏览器正式内置了 JavaScript 脚本语言。
之所以起了JavaScript这个名字,并不是说明它与Java有多么深的联系,而是因为 JavaScript与Java有很大的相似性,但JavaScript也有自己的特点,JavaScript中有原型对象,原型链的概念,这也是学习JavaScript的核心。
Javascript与ECMAScript的关系
ECMA(European Computer Manufacturers Association 国际标准化组织)
为了抵抗微软(发明了JScript),Netscape 公司将JavScript提交给ECMA,希望能成为国际标准,之后,ECMA组织规定了浏览器脚本语言的标准并命名为ECMAScript,ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现。ECMAScript 用来标准化JavaScript。
CSS的发布:
1996年,随着JavaScript在浏览器的内置,CSS第一版发布,作为样式表嵌入到网页改变外观,在没有CSS之前,页面主要用table标签进行布局,是由PHP后端程序员写的。所以网站最初值由后台负责。
随着CSS的发展,美工岗位出现了,主要做一些页面切图(PhotoShop),页面设计美化和 DIV+CSS布局,CSS只要是position定位和float。这之后的网站便由后台和美工负责。
Ajax的诞生:
1999年,IE5部署XMLHttpRequest接口,允许JavaScript发送HTTP请求。
2004年,Google 发布 Gmail,标志这JavaScript可以做桌面程序(Web Application),之前网站只是用来普通浏览,没什么复杂功能,Gmail的发布,程序员们发现原来网页可以有这么复杂的东西,因为 Gmail 内部用的是 XMLHttpRequest 接口发送请求,从此有人专门研究怎么用JavaScript来做具有更多功能的网页,怎么发送请求。
2005年,Ajax方法正式出现,Ajax就是用JavaScript来发送请求,将请求结果放在页面上。
之后就有的后端程序员开始学习JavaScript,所以早期JavaScript很受Java的影响。
前端岗位的出现:
由于乔布斯非常注重用户体验,所以需要有人专门做一些非常复杂的代码,这个时候后端程序员就不能两全,于是专门有人写页面。网站由前端+后台+美工负责。
前后端分离:
前后端分离主要是三个部分的分离:【代码分离】【数据传输分离】【人员分离】
1. 代码分离:当时后端的框架要求必须把HTML放在后端的代码里,代码分离后HTML全权交由前端
2.数据传输分离:以前是将数据隐藏在页面里(我不知道咋藏的。。),分离后要求所有的数据必须通过Ajax传给前端
3.人员分离:将前端和后端人员分离,前端只能写前端,后端不要碰前端的内容,各司其职。
前端分量轻的问题:
由于前端只负责页面样式及一些简单的功能,用户的数据都是由后端管理的,所以前端显得不那么重要,如果后端把数据库性能提升一下,或者写出一些重要的功能,就能很快得到老板的赏识和晋升,但是前端把JavaScript写的再好,貌似老板都发现不了。。所以前后端分离让前端程序员只是管页面上的东西显得很不重要。在所有高层程序员里,前端程序员永远很少,现在也依然存在这个问题。
移动设备的兴起:
前端就多了一块可以管的领域,当时兴起的是2G、3G网络,很多前端后端都没经验,由于是页面上的问题,所以要前端来解决,怎么在网速很慢的情况下让用户更快看到网页,所以就出现【页面性能优化】的概念,移动设备的兴起与发展,也出现了用户手机尺寸不同页面展示的问题,所以同时出现【响应式】的概念。
自动化的出现:
在做页面性能优化的过程中,前端发现有很多东西不仅仅是靠JavaScript就可以实现,比如代码压缩,图片压缩,但是压缩不能用JavaScript写,所以前端用很多东西来实现自动化
NodeJs的出现:
前端需要做一些自动化,但是当时的JavaScript只能在浏览器里运行,NodeJs可以让JavaScript可以在浏览器之外运行 ,使得前端又多了一项内容,前端不仅可以在浏览器和手机上写JavaScript,也可以在服务端和桌面上写,刚开始主要写一些工具,gulp,grunt,webpack 做前端自动化和打包,也出现模块化 CommonJs,AMD,CMD,UMD。
JavaScript,CSS,HTML的大升级:
越来越多的人开始学习前端,就有一些问题暴露出来,有人发现HTML,CSS,JavaScript都太弱了,Ruby社区发布了SASS升级CSS,也有CoffeeScript等的出现。
为了更好的性能和更丰富的功能,HTML也从XHTML升级为HTML5,CSS从CSS2升级为CSS3,JavaScript从ECMAScript3升级为ECMAScript5,以及之后的ECMAScript6。。。
MVC,MVVM模式:
此时前端系统已经趋于完备,就有人开始借鉴后端MVC的思想,最著名的也就是Backboon,同时Angular团队仿照C# WPF的MVVM概念,使用JavaScript实现MVVM,之后尤雨溪受到Angular的启发写了Vue,用了一段时间,这两个框架都暴露出各自的缺点,于是Facebook团队配合Redux发明了 React。
至此形成前端三大框架:React系列 + Vue + Angular
TJ加入NodeJs社区:
TJ贡献了expess.js (NodeJs最常用的库), Koa.js等等,还有npm小王子让NodeJs的社区丰富起来,前端正式可以用NodeJs写后端程序。
前端的势力范围又扩大了,桌面端,移动端,NodeJs可以写一些命令行工具和后台应用。
node webkit出现:
把node和webkit(谷歌浏览器的内核)绑在一起,放在桌面上,用node跑进程,用webkit做界面,微信一开始就用这种技术做的,还有VSCode编辑器,钉钉等。
前端进军移动端原生程序:
用React native这个库可以做出看的像原生js一模一样的【程序】,所以桌面程序,手机程序,桌面网页,手机网页前端都可以负责了。
React的一个思想就是 一次学习,处处运行。只要学习一次React,代码就可以运行在网页上,IOS,Android上。
.......
前端这个行业在近几年越来越火热,也因为学校没有开设这个专业,前端程序员一般是靠自学或者半路出家,学习的人也比学其他后台,算法语言的人少,至今还有很大的发展空间。
.......
总结:前端发展主要有以下几个重要的节点:

  • Gmail 的发布推动了Ajax ,使得JavaScript被程序员们重视起来,页面功能开始丰富起来
  • 乔布斯对用户体验的重视,使得专门有人来研究JavaScript
  • 前后端分离,前端全权负责 HTML,CSS,JavaScript
  • 移动设备兴起,扩大JavaScript势力范围
  • 借鉴后端MVC,MVVM的思想,前端三大框架使得开发模块化
  • Node开发的命令行工具使得前端趋于自动化
  • Node社区中TJ及npm小王子的加入,使得JavaScript可以驶入后端领域
回复

举报 使用道具

您需要登录后才可以回帖 登录 | 立即注册
快速回复 返回顶部 返回列表