学Javascript只能做web前端吗?
网友解答: 然而并不是。准确的说,只有在Javascript诞生之初,它才是只能用于Web前端的语言。但很快就有各种各样的Javascript支持环境被开发出来,应用于各个方面,不仅限于
然而并不是。准确的说,只有在Javascript诞生之初,它才是只能用于Web前端的语言。但很快就有各种各样的Javascript支持环境被开发出来,应用于各个方面,不仅限于前端。
我们来回顾一下历史,早在1995年,网景公司(Netscape)的布兰登·艾奇发明了Javascript语言,并在其公司推出的网景领航员(Netscape Navigator)浏览器上率先支持。因为设计之初就与Sun公司的Java语言有着千丝万缕的联系,所以取名Javascript。
微软公司看到Javascript大为流行很快就坐不住了,于1996年,也就是Javascript诞生仅一年之后,就推出了自己的脚本语言,取名为JScript。值得注意的是,JScript与Javascript几乎完全一样,并与 Internet Explorer 3.0 一同发布。这个时候,虽然互联网才刚刚在美国流行,但已经出现了不少基于动态网页技术的网站。微软推出的IIS程序所支持的ASP技术,就因为简单易学而广为流传。
很少有人知道的是,用ASP技术开发动态网页,并不是只能用Visual Basic语言,微软在Windows 客户端脚本及ASP服务端脚本均支持JScript语言。也就是说,早在上世纪90年代末,Javascript语言就可以用来编写桌面脚本和服务器后端代码了。只不过在互联网普及之前,微软公司的Visual Basic实在是太受欢迎了,几乎没有不会写VB的程序员。所以当动态网页技术一出现,99%的程序员理所当然的选择了VB语言,而不是陌生的Javascript。
时间跨越到2002年,微软公司的.Net Framework开发框架横空出世,同时上市的还有其最新的Visual Studio开发平台。.Net的上市,最吸引眼球的就是C#语言,它是微软为了对抗Java语言而推出的杀手锏。C#的出现,吸引了大批Java语言程序员,以及各种非Visual Basic程序员,比如C++和Delphi开发者投靠.Net阵营,而VB程序员则可以在.Net框架下继续使用Visual Basic语言开发代码。
众所周知,开发者可以借助.Net框架来创造出各种各样的Web应用,C#似乎天生就是为了Web应用而创造出来的。Visual Studio又作为史上最成功的IDE,程序员们最常使用的集成开发环境,为Web应用及桌面应用的开发提供了不少的便利。随着时间的推移,C#语言越来越成熟,相对来说,还在坚守VB阵地的程序员也越来越少,到最后,整个.Net阵营几乎成了C#语言一家独大的局面。
但有一个细节极少有人知道,那就是.Net框架从一开始就支持JScript语言。也就是说,不论是桌面应用还是Web应用,完全可以用Javascript来编写并在.Net框架下编译通过。只要打开.Net Framework的安装文件夹就能看到,里面有一个名为 jsc.exe 的程序,那就是JScript语言的编译器,与之对应的C#和VB编译器是 csc.exe 和 vbc.exe。
那在.net阵营中,为什么几乎没有人用Javascript语言呢?很大的原因是微软公司没有在Visual Studio中支持JScript,开发者无法用VS编辑器创建一个基于JScript的项目,也无法用JScript语言来进行可视环境的应用开发。如果要用JScript编写桌面应用或者Web应用,必须手动编译。微软弱化JScript存在感的重要因素,就是来源于ECMAScript标准的制约。
要知道微软一向喜欢特立独行,著名的IE浏览器与W3C标准不兼容是人尽皆知的事情。在编程语言方面,微软也是如此。Javascript诞生不久,ECMA(一家国际电信标准组织)就出台了相应的标准文档,即ECMAScript。之后的所有Javascript语言实现,均是遵守这一标准的。微软也不能例外,因为如果不遵守这一标准,那么微软的产品将很难进入欧洲或者其他国际市场。
为了防止受制于人,微软自然更愿意创造自己的标准,只有把自己的标准打造成行业标准,才能拥有更多的主动权和话语权,于是也就有了C#语言。所以,为了满足ECMA的标准的要求,微软不得不在 .Net 框架中提供对 Javascript 的原生支持。但为了防止被ECMA绑架,微软又不得不弱化Javascript的存在,反而把C#推到最重要的位置,来实现自己野心。
但不可否认的是,Javascript一直可以被用在非前端开发领域,并且有时候工作的还要比其他语言更好。比如早期Web应用在数据交换是多采用的是XML格式,但后来JSON格式的流行使得许多语言在新版本中添加了相应的JSON支持库。然而,在Ajax与JSON流行之初,多数语言还不能很好的支持JSON时,像微软的JScript却是原生就支持的。也就是说,在那个时候,后端程序如果用JScript来开发,在JSON数据交换方面,会非常容易。
再后来Node.js的出现,更是模糊了前后端之间的区别,使得许多只熟悉前端Javascript技术的程序员也可以涉及到后端应用的开发。当然Node.js并不仅仅是用在Web前后端开发上,也能用于监控、桌面应用、流媒体等等不同的领域。
除了Web前端与后端应用。Javascript语言还被用在一个非常重要的领域,那就是Flash。尽管Flash技术已经是昨日黄花,正在迅速被HTML5等技术所取代,Adobe公司也早已经宣判了Flash的死刑。但不得不承认,曾经Falsh技术在Web领域可谓是如日中天。而Flash技术中所采用的ActionScript语言,也是一种遵循ECMAScript标准的脚本语言,即Javascript语言的另一种实现。
除了上面这些,Javascript还有一些变种,比如TypeScript,SoundScript等等也可以应用在不同的场合。
网友解答:我觉得并不是这样的。