JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签
在2015年6月至今,JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的标签,并总量操作第二第三的和。
新潮的Web开发技术,比如React,Node.js,还有AngularJS正在逐渐起势,都是用的js(es6)。
全栈工程师最青睐的技术,JS 第一
前端开发者最青睐的技术,JS 自然第一
后端开发者最青睐的技术,JS 第一
学生程序员最青睐的技术,JS 第二
JavaScript 是这个星球上最受欢迎的编程语言。而且后端开发者甚至更喜欢使用JavaScript来工作。
根据职业划分的技术栈
Javascript 可以做什么
1. Web 前端
相信这个这个是毫无疑问的,在 Web 前端的地位目前是没有任何语言能撼动它的霸主地位。
2. 后端 Nodejs
Node.js 是一个 Javascript 运行环境(runtime environment),发布于2009年5月,由Ryan Dahl 开发,实质是对 Chrome V8 引擎进行了封装。Node.js 对一些特殊用例进行优化,提供替代的 API,使得V8在非浏览器环境下运行得更好。
使 Javascript 走向了服务端,这使得 Web 应用仅用一种语言即可完成。
3. 桌面应用
代表 Electron ,还有 Node-webkit 、heX
Electron 是由 Github 开发,用 HTML,CSS 和 JavaScript 来构建跨平台桌面应用程序的一个开源库。 Electron 通过将 Chromium 和 Node.js 合并到同一个运行时环境中,并将其打包为 Mac,Windows 和 Linux 系统下的应用来实现这一目的。
4. 移动端应用
代表 React Native,Weex 生态还不完善
React Native (简称RN) 是 Facebook 于 2015 年 4 月开源的跨平台移动应用开发框架,是 Facebook 早先开源的 JS 框架 React 在原生移动应用平台的衍生产物,目前支持 iOS 和安卓两大平台。RN 使用 Javascript 语言,类似于 HTML 的 JSX,以及CSS 来开发移动应用,因此熟悉 Web 前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。做到了一套代码可以运行在 Web、安卓和 IOS 上。
5. 游戏
代表 Cocos2d-js 和 Unity 3D,还有 Pomelo、Bearcat
世界上最流行的 2D 游戏引擎之一 Cocos2d 和最流行的 3D 游戏引擎之一均支持 JS 开发游戏。
Cocos2d 主要开发中小型的 2D 游戏而 Unity 3D 主要用于开发大型的 3D 游戏。
Cocos2d-JS
Cocos2d-JS 是跨全平台的游戏引擎,采用原生 JavaScript 语言,可发布到包括 Web 平台,iOS,Android,Windows Phone8,Mac,Windows 等平台,引擎基于MIT 开源协议,完全开源,免费,易学易用,拥有活跃的社区支持。Cocos2d-JS 让2D 的游戏编程门槛更低,使用更加容易和高效。和其他类似游戏框架相比,它定义了更加清晰的2D游戏编程的基本组件,采用易学易用的 API 设计,并采用全球领先、具备原生性能的脚本绑定解决方案实现游戏的跨原生平台发布,开发效率更高,使用上最简单。
Unity 3D
Unity 3D 可以用 javascript 开发,也可以用 C# 开发。
6. 物联网
代表 Cylon.js,还有 IoT.js
Cylon.js 是一个为机器人学和物联网服务的开发的 Javascript 框架。它支持 19 种不同硬件软件平台。我们的目标,是将开发软件装置变得和开发网页一样简单。
这是 2017 年 Github 最流行的 15 种语言排行榜,可以看到 Javascript 的项目数是第二名的两倍,Javascript 之所以这么流行,我想原因之一也是因为这门语言所涉及的范围太广了。
看到这里,我只想说
将你擅长的语言编译为JavaScript
看到 Javascript 无孔不入,啥都能做,是不是在担心现在不会怎么办,不要担心,现在有很多工具帮你将你擅长的语言编译成 Javascript
将 Java 编译成 Javascript
-
BicaVM:一个使用JavaScript实现的JVM,可以运行60%的Java字节码
-
Ceylon:一个可编译为JavaScript的、模块化的、静态类型JVM语言
-
Doppio:一个使用 Coffeescript 实现的JVM,使得 Java 程序可以运行在任何 JavaScript 引擎上
将 C/C++ 代码编译为 JavaScript
C/C++ 如今也可以用来编写Web应用程序,同样可以将它们编译为 JavaScript。一些工具如下。
-
Emscripten:Mozilla 开发的 LLVM 后端,可以将任何通过 LLVM 前端(比如 C/C++ Clang)生成的 LLVMIR 中间码编译成 JavaScript 代码。
-
mala:可以将 vala 代码(vala代码在编译时,首先会编译为 C 代码)编译为 JavaScript
-
Mandreel:可以将 C++ 和 Objective-C 代码编译为高度优化的JavaScript源码
-
Clue:一个 C 语言编译器,可以将 C 语言代码编译为高质量的 Lua、Javascript 或 Perl 代码。
将Python代码编译为JavaScript
可以使用如下工具将 Python 代码编译为 JavaScript 代码。
-
Brython:用于替换网页上的 JavaScript 代码,允许使用 Python 来编写脚本,并直接在网页上执行
-
PYXC-PJ:可以将 Python 转换为JavaScript,并会产生一个行/列号映射文件
-
Pyjaco:可以将 Python 转换为 JavaScript
-
Pyjamas:Python to JS转换器
-
Pyjs:Python to JS转换器
将Ruby代码编译为JavaScript
在Ruby领域,有一个使用JavaScript实现的Ruby标准库—— RubyJS,它实现了Ruby中的所有方法,如Array、Numbers、Time等。Ruby之父松本行弘称“如果我必须编写JavaScript代码,我会使用RubyJS”。
另外,你也可以使用如下工具将Ruby代码编译为JavaScript代码。
-
8ball:一个可以将Ruby(或Ruby子集)的源码转换为JavaScript源码的编译器
-
ColdRuby:一个Ruby 1.9 MRI字节码编译器和JS运行时,包括一个C++运行时以及用于本地执行的V8引擎
-
HotRuby:可以在浏览器内部或Flash平台上运行由YARV编译的Ruby操作码
-
Opal: 一个Ruby to JavaScript编译器,可用于任何JS环境
-
rb2js:一个Ruby to JavaScript编译器
-
Red:允许你以 Ruby 的方式编写代码,然后以 JavaScript 的方式运行代码
将 .NET 代码编译为 JavaScript
你可以使用如下工具将 C# 、.NET 代码编译为 JavaScript 代码。
-
Blade:一个 Visual Studio 扩展,可以将 C# 代码转换为 JavaScript
-
jsc:可将 .NET 程序重新编译为 JavaScript、ActionScript、PHP 或 Java 程序
-
JSIL:可将MSIL(.NET字节码)转换为 JavaScript
-
Saltarelle:可将 C# 代码编译为 Javascript
-
SharpKit(商业工具):可将 C# 代码编译为 Javascript
-
Script#: 可将 C# 代码编译为 Javascript
可能这篇文章被吐槽的比较多,特别是标题,我只想说,你说的都对,我只是个标题党。
每种语言都有自己的适用场景,没有任何一种语言能啥都做得好,根据自己的需要选择就行,我这里知识做一个类似科普,万万没想到 Javascript 这么强大。
来源:简书