我们程序员为什么要关注 JavaScript ?

受这周我在企业中看到的JS现状的启发,我写了这篇文章。10年之前,我从来没有想过现在的JavaScript竟然会变得几乎无处不在。下面是几个你之所以要关注JavaScript的原因。

首先,我认为JavaScript能够得到普及的主要原因之一是,JavaScript非常易于接近。学习JavaScript,对于初学者而言,相对比较容易,对于高级用户而言,又非常强大,可以用它来构建复杂又可靠的系统。

其次,之所以要关注JavaScript是因为现今的JavaScript已经无处不在。

你可以使用JavaScript在几乎所有平台上开发:客户端应用程序,服务器端业务逻辑,嵌入式芯片/物联网设备,管理构建脚本和依赖关系,等等。

不过,这并不意味着你可以在任意情况下使用完全相同的代码,但你可以使用相同的技能——JavaScript开发——提供跨越多个范式的解决方案。

客户端

JavaScript可被用于支持客户端应用程序/用户界面,以及众多平台和设备的用户交互。

web

当然,JavaScript支持web,这是肯定的。 JavaScript是所有web浏览器基本的脚本语言。

移动

JavaScript也可用于支持安装到本地设备上的移动应用程序。

  • Apache Cordovn/ PhoneGap——
    你可以使用PhoneGap或Cordovn建立本地安装的web技术app。
    PhoneGap是Adobe的Cordovn品牌分支,但是从开发者的角度来看,它们基本上是相同的。运行在移动设备上的应用程序会带有一个web视
    图,用构建动态web应用程序相同的方式建立用户界面。用户界面虽然是用HTML以及CSS样式实现的,但是所有的交互都是用JavaScript创建
    的。
  • React Native
    ——得到JavaScript支持的web应用程序不仅可以内置web视图。React
    Native框架还允许开发人员使用JavaScript和声明式的UI元素编写他们的应用程序,并生成一个可以在移动设备上运行的本地应用程序。在运行

    时,逻辑被解释为JavaScript,但是所有(所有UI元素)与用户交互的东西,100%是本地的,这就提供了一个非常高品质的用户体验,而且现在还
    可用于iOS和Android应用程序。

  • Unity 3D——使用Unity 3D引擎,哪怕全部由JavaScript支持,你也可以开发出丰富多彩又身临其境的移动3D模拟或游戏体验。
  • NativeScript——使用JavaScript的框架,可用于构建跨平台的本地iOS,Android和Windows移动应用程序。

桌面

桌面应用程序也没有被JavaScript排除在外。大多数桌面解决方案陷入了类似于Apache Cordovn的分类中,最终导致的结果是,web视图拥有的API层次较低,其内容开发基于web技术。

  • Electron——来自于GitHub的Node.js+Chromium桌面应用程序容器
  • app.js——Node+Chromium桌面应用程序容器
  • nw.js——另一个Node+Chromium桌面应用程序容器的框架
  • CEF——The Chromium Embedded Framework——嵌入Chrome浏览器内置于桌面应用程序的框架。

…等等。对了,我记得,微软对于如何纯粹地用HTML / JS构建Windows应用程序,已经有了一个解决方案,而且还有更多的解决方案,但现在我一下子记不起来了。

事实上,一些我最喜欢的桌面工具,如SlackAtomVS Code实际上就是在web技术和HTML / JS的基础上实现的。

服务器端

最明显的是Node.js——封装了Chrome的V8
JavaScript引擎的JavaScript运行时——在服务器端开发和企业上已经取得了巨大的进步。
Node.js,受到express.js和loopback.io等框架的支持,使得用JavaScript开发服务器端和复杂的企业应用程序中变得可
能。

物联网

你可以完全使用JavaScript来开发可运行在Arduino、树莓派或其它小平板上的无头app,你可以使用JavaScript管理基础设

施和物联网传感器信息流,你也可以使用JavaScript为嵌入式系统编写芯片程序,可以用它控制机器人,你甚至还可以使用JavaScript支持媒
体中心连接电视体验。

就像我说的……JavaScript无处不在。

生态系统

你不仅可以到处构建和运行JavaScript应用程序。 JavaScript还有一个庞大而繁荣的开发者生态系统。

JavaScript是GitHub上最活跃的语言,它不仅是所有代码仓库中最活跃的,也是所有push/commit中最活跃的。

来自于http://githut.info/ 的可视化数据

这里有一些统计数据显示了Node.js / npm.js的增长幅度。

NPM统计

Node.js还在不断增长中。

图表说明了IBM重视Node.js和Strongloop。 30天时间里就有2.42亿个@npmjs包!http://t.co/snDt88HQC5     pic.twitter.com/nRMwYyKmdo
——Rod Boothby(@ rod11)2015年9月10日

但是,种种这一切这并不意味着JavaScript就是适用于一切的最好语言。也不意味着你取出一段源代码就能照你想的那样运行在每一种设备和上下文中。

但是,你可以使用JavaScript技术,去开发几乎任意类型的设备/下上文。当然,它不能一次编写,就到处运行,用React.js团队的话就是: learn once, write everywhere。

作者:小峰

来源:51CTO

时间: 2024-11-02 19:56:15

我们程序员为什么要关注 JavaScript ?的相关文章

每个程序员都需要学习 JavaScript 的7个理由

最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于JavaScript.Web开发人员尤其如此.所以,如果你是一个程序员,那么你应该去学习JavaScript. 需求 我之所以这样说的主要原因是,随着JavaScript的日渐成熟,以及Node.js方案变得越来越可行,我们对JavaScript程序员的需 求正在持续增长. JavaScript在需求比例上已经超过了C#,仅屈居于Java之下.如果你看看GitHub上可行的项目,你会发现JavaScrip

每个程序员都需要学习 JavaScript 的7个理由小结_基础知识

最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于JavaScript.Web开发人员尤其如此.所以,如果你是一个程序员,那么你应该去学习JavaScript. 需求 我之所以这样说的主要原因是,随着JavaScript的日渐成熟,以及Node.js方案变得越来越可行,我们对JavaScript程序员的需求正在持续增长. JavaScript在需求比例上已经超过了C#,仅屈居于Java之下.如果你看看GitHub上可行的项目,你会发现JavaScript

程序员应知——关注细节

曾经有一句话,叫做"细节决定成败",充分说明了细节对于成功的作用.如果我们注意一下,就会发现很多因为注重细节而获得成功的案例. 产品的细节 苹果的系列产品我们都已经非常熟悉了,各种各样i打头的产品,对于细节已经给予了非常大的关注.尤其体现明显的就是在对用户使用的友好度和便利性方面的细节.iPad.iPhone和iTouch等产品都是大大的屏幕,而在正面就只有一个按钮,用户不必考虑到底需要按什么按钮.而系列产品的做工更是让人赞不绝口,这也是另外一个细节. 另外对于国内的电子书产品,bam

易进难出,“Vim 退出” 难住百万程序员

"程序员一旦进入 Vim ,就再难以脱身."这听起来像是一个恐怖故事,但是却真实的发生在程序员的身上, Stack Overflow 上关于如何退出 Vim 的问题,其点击量已有上百万次了. 问题原文为: I'm stuck and cannot escape. It says: "type :quit<Enter> to quit VIM" But when I type that it simply appears in the object bod

程序员日常应该如何构建自己的技术知识体系

 作为一个工作多年的Java程序员,每天重复着差不多同样得事情,面对不断变化的技术和理念,应当如何学习适应这种不断的变化,构建和沉淀知识体系? 据我所了解的周围it程序员朋友,大多数人都有着自己的博客网站之类的,记录他平时的一些工作日志,还有很多人也在用类似github的工具记录和分享他的代码,我觉得这还不足于使一个人的知识变得强大起来,顶多是一种展现自我的方式罢了. 哪有没有更好的方式?   培养高效的学习习惯和平时做笔记的习惯,不定期对笔记内容进行归类和总结,经常跟同行交流,才能更新知识,提

程序员成长规划

引言 我的程序员成长之路 程序员的成长经历往往很相似,大部分的人走过了最前面相同的一段路,而有的人则走得更远.总结自己这些年来的历程,这也许能让年轻的程序员少走一些弯路,成长得更快:或许更好一些,能让大家从中得到一些启发,早日进入优秀程序员的阶段,实现梦想,释放激情. 第一阶段,最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序.这个过程可以说是对计算机和程序设计的入门阶段.这个阶段主要是培养了自己对计算机软件的兴趣,打下了良好的计算机基础知识. 第二阶段,而后参加工作

一个平庸程序员的自白

Jacob Kaplan-Moss 是著名 Python 框架Django 的 Co-Creater 和核心开发者,在 Heroku 担任安全部门的 Director, 他常年参加 Python 社区的年度聚会 PyCon,并经常上台演讲.在这次 PyCon 2015 上,他声称自己顶多只是一个平庸的程序员,幻灯片上也写着: "Hi, I'm Jacob, and I'm a mediocre programmer." 这次演讲非常精彩,视频可以在 Youtube 上看到(如果不想看视

是什么鼓励着程序员砥砺前行?--献给迷茫的程序员

不知道各位猿猿们有没有问过自己这个问题:驱动你殚精竭虑地写代码.改BUG的动力来源是什么?不管有没有认真思考过这个问题,相信每一位忠于事业的程序员内心都有着某种力量,正是这种驱动力在不断鼓励着自己在代码的路上愈行愈远.   大多数人会想到两种驱动力. 一种是生存本能带来的驱动力,即生物性驱动力.比如每天要吃饭.睡觉.上厕所:长大了要恋爱.结婚等.这种驱动力保证我们能够生存在这个世界上,是一种原始的驱动力. 另一种是奖励或者惩罚带来的驱动力,即外在动机.比如老板承诺工作干的好有奖金,我们就努力干活

为什么程序员一定要加班?

一提到程序员,大多数人的印象大概就是死宅.无趣.没有私人生活,除了上班写写写代码,加班写代码更是标配.似乎在深夜顶着鸡窝头,目光呆滞,面无表情敲键盘的场景才是一个程序员的真实写照. 当然,这也是我对于程序员的几乎所有印象,我不知道自己的这个印象来自于哪里,因为在之前我跟程序员是没有接触的.仅有的一次是大概十年前,有机会接触到一个应届生女程序员,得知她当时拿的薪水是4000,而我在两年后毕业拿到的薪水是1500,这在当时也是我们广告专业应届生比较正常的起步薪资了.你可以想象,我当时的惊讶程度吧.