JavaScript的角色巨变和Web技术的发展
曾经JavaScript是职业程序员看不上眼的脚本语言,如今只有高级程序员才能驾驭它。
JavaScript性质和地位的天翻地覆,正是Web技术飞速变化的印证。
最初职业程序员轻视JavaScript,认为它和C、Java这些真正的开发语言相比只是脚本小毛孩(Script Kids)的玩具。那时候,互联网才刚刚从单纯提供静态信息发展到和用户之间有一些互动。JavaScript做的只是跑龙套的角色,检查用户输入,向用户提示信息,做一些四则运算;或者真的是用来做玩具,显示浮动图片,变幻字体大小颜色,丰富鼠标效果。JavaScript在大家的印象里,就是一门语法属于C风格,对格式不那么严格,所能做的只是增加一下页面和用户的互动的辅助性语言。
后来,Web开发随着ASP、Java、PHP的发展大行其道,但是开发还主要集中在服务器端,简单地说,就是业务逻辑加上操作数据库。JavaScript的作用也得到发展,为了模拟传统的客户端应用程序,提供更丰富的功能和友好的操作,比如模拟多级菜单、目录树、多标签页表格,JavaScript操作DOM API成为必不可少的手段。客户端应用程序在功能上渐渐没有优势,安装、升级和维护的劣势使得它和Web应用此消彼长。
进一步有三个因素使得Web应用成为主流。
其一是技术性的原因,即Ajax的发明和普及,大大提高了Web应用的用户体验,因为它不仅消除了提交页面——空白——重新显示这样和客户端应用相比烦人的过程,而且极大地丰富了用户和系统之间互动的可能性——页面不再是一个整体,每一个部分都可以显示独立的信息,跟随用户的鼠标键盘的各种输入各自变化更新。
其二是设计上的原因。传统的客户端应用程序的界面像代码一样符合一定的规则,菜单栏、工具栏、主界面,用户的操作也限定在文本框、单选框、下拉框等一套标准控件中。应用程序的界面似乎就应该这样标准化,就像电脑就应该是有一台主机、一个显示器、一个键盘。这样一种理念部分地是因为程序员不是设计师,和漂亮的界面相比,他们更关心代码的正确和系统的性能;设计师可以用绘图软件画出与众不同的好看设计,但是一方面界面是和功能一道开发的,设计师没有相应的知识和技能将他们的设计结合到程序中,另一方面无论是VB、Dephi还是VC,要想将一套想象出的显示和用户操作编写成新的控件,都是很困难的事。Web开发的情况截然不同。页面和后台程序天然地分开,和前台程序只要设计良好也能完全分离,设计师只需掌握HTML和CSS就可以用各种页面设计软件设计出程序员能够应用的界面。和上面相对应的另一方面,使用HTML+CSS+JavaScript创建一个直观好用的“控件”也比较容易。于是,漂亮精致的界面和方便友好的用户体验如雨后春笋一般涌出。Web应用在界面上迅速超过了客户端程序,在外观上取得了优势。有一段时间,开发Web系统时模仿经典的客户端程序的界面(菜单栏、工具栏和主界面等)很普遍,而现在的桌面应用程序,往往学习的是Web应用美观的界面和简洁的操作。学生已经超越了老师。
第三个原因既是技术的,也是文化的。一个Web应用的前端,包括HTML、CSS和JavaScript,都是开放的。任何一个有兴趣的人,都可以查看、研究、学习、测试和编辑,这一点与传统的代码不可见的客户端程序有巨大区别。互联网开放的文化也和开源的精神相得益彰。层出不穷的界面设计和编程理念可以在互联网这个巨大的平台上展现,相互竞争。经过实践证明的优胜者又迅速被学习传播。这样一个良性的竞争平台,使得Web技术的发展速度大大超过桌面应用程序。
正是在这样一个大背景下,JavaScript的潜力得到充分发挥。大家发现,它天生适合用来做Web的前端开发,而这又是Web应用中日益复杂和重要的部分。JavaScript变成构建丰富的用户界面,实现精致的功能的支柱。因为任务大大增加,JavaScript脚本的长度也迅速增长。提供公共功能,展示最佳实践以至于设置整个应用框架的脚本库大量涌现,日新月异。Prototype、jQuery、dojo、YUI、Knockout、AngularJS……让人眼花缭乱。JavaScript动态语言的本质和采用原型的对象机制,使得完成同样的功能,所需的代码数量比静态的基于类继承的语言,如Java,少很多。但是缺乏编辑时语法检查,浏览器这样一个不友好的开发环境,使得用JavaScript开发复杂的功能容易出错,或者换句话说,需要程序员更加细致。JavaScript语言本身的特性(函数是第一类对象,匿名函数的声明,对象的原义定义),既提供了写出精致优雅的代码的可能性,各种不同的实现方式和风格又需要开发者对语言有更好的掌握和清晰的思路。
终于,JavaScript演变成一门主流语言,充满吸引力和挑战性,并且只有高手才能充分驾驭。
JavaScript的角色巨变和Web技术的发展的更多相关文章
- Web技术的发展 网络发展简介(三)
在上一篇文章中,对TCP/IP通信协议进行了简单的介绍 通信协议是通信的理论基石,计算机.操作系统以及各种网络设备对通信的支持是计算机网络通信的物质基础 而web服务则是运行于应用层,借助于应用层的协 ...
- 从故纸堆里,回顾下Web技术的发展历程
通过对比这些年的计算机图书来让大家感受下前些年Web技术的发展历程. Web开发框架,目前是Spring Boot+JPA,我正好出过本书,从中大家能感受到现在的技术. <Spring Boot ...
- 【Web技术】 275- 理解 WebView
前言 了解webview的神秘之处.今日早读文章由@子非翻译分享. 正文从这开始-- 我们通常使用 Chrome, Firefox, Safari, Internet Explorer 和 Edge ...
- HTML5 Dashboard – 那些让你激动的 Web 技术
HTML5 Dashboard 是一个 Mozilla 推出的项目,里面展示了最前沿的 HTML5,CSS3,JavaScript 技术.每一项技术都有简洁,在线演示以及详细的文档链接.这些技术将成为 ...
- Soundslice – 美妙乐谱!Web 技术高大上的应用
Web 技术的不断发展让我们能够开发各种好玩的功能.这里给大家分享一个使用 HTML5 技术实现的在线乐谱,可以播放的哦,也可以选择一个片段进行循环播放.赶紧来体验一下:) 您可能感兴趣的相关文章 1 ...
- 用web技术开发出原生的App应用的体会(1)
本人是是个前端小白,学前端已经有半年的时间了,前几天开了个博客,希望记录自己学习历程的点滴. 今天要写的是关于用html,css,javascript等web技术开发原生的app应用. 总所周知,we ...
- cct,web技术
基本信息 全国计算机等级考试二级教程——Web程序设计(2016年版)作 者:教育部考试中心 编出 版 社:高等教育出版社出版时间:20115-12-1 ISBN:9787040442991版 ...
- 基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写
基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作 ...
- 手机淘宝中的那些Web技术-使用了类似PhoneGap的实现
Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新.但是如何保证Web APP的流畅 ...
随机推荐
- Linux makefile教程之make运行八[转]
make 的运行 —————— 一 般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的.但也有时你也许只想让 make重编译某些文件, ...
- pdf Factory的设置
将文件自动保存到其它位置的设置方法(以Excel文件打印为例):
- c# 读取IntPtr 中的数据 z
c++的写法是这样的: LRESULT CPictureQueryDlg::OnQueryPicNty(WPARAM wp, LPARAM lp) { EnableWindow(TRUE); BYTE ...
- 把raw目录下的几张照片存放到SD卡里面去
try { //SD卡路径 String filename =android.os.Environment .getExternalStorageDirectory().getAbsolutePath ...
- selenium python (四)键盘事件
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #在实际测试过程中,有时候我们需要使用tab键将焦点转移到下一个需要操作 ...
- (转) SQL 命令
省的自己总结了 1.终端启动MySQL:/etc/init.d/mysql start:(stop ,restart.)2.登录MySQL:mysql -uroot -p (用root账户登录),然后 ...
- Cocos2d-x FlappyBird
HelloWorldScene.cpp #include "HelloWorldScene.h" USING_NS_CC; CCScene* HelloWorld::scene() ...
- gcc 安装
最近在中标麒麟上面工作,结果发现上面gcc都没有,没有办法只好自己装(PS 中标麒麟:怪我咯) 资源:http://download.csdn.net/detail/jiahuat/8715413 按 ...
- http-equiv
HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容.常用的HTTP-EQUIV类型有:Content-Type.Refresh .Expires ...
- Map/Reduce中Join查询实现
张表,分别较data.txt和info.txt,字段之间以/t划分. data.txt内容如下: 201001 1003 abc 201002 1005 def 201003 ...