JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的
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 这么强大。
来源:简书
JavaScript超越了Java,c,python等等成为Stack Overflow上最热门的的更多相关文章
- Curly braces in Python in 2012? - Stack Overflow
Curly braces in Python in 2012? - Stack Overflow Curly braces in Python in 2012? [closed]
- Stack Overflow上关于Java Collections的几个常见问题
下面列出Stack Overflow上最常见的几个关于Java Collections的问题并给出答案. 1. 什么时候用LinkedList,什么时候用ArrayList? ArrayList是使用 ...
- Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?
在逛 Stack Overflow 的时候,发现了一些访问量像喜马拉雅山一样高的问题,比如说这个:如何比较 Java 的字符串?访问量足足有 370万+,这不得了啊!说明有很多很多的程序员被这个问题困 ...
- [转帖]Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递? http://www.itpub.net/2019/12/03/4567/ 在逛 Stack Overfl ...
- Stack Overflow 上人气最旺的 10 个 Java 问题
1. 为什么两个(1927年)时间相减得到一个奇怪的结果? (3623个赞) 如果执行下面的程序,程序解析两个间隔1秒的日期字符串并比较: public static void main(String ...
- 你可能不知道的java、python、JavaScript以及jquary循环语句的区别
一.概述 java循环语句分为四种形式,分别是 while, do/while, for, foreach: python中循环语句有两种,while,for: JavaScript中循环语句有四种, ...
- 6月份最新语言排行:Java,Python我更看好谁?
文章首发于终端研发部,转载,请标明原文链接 今天的主题是:探讨一下6月份语言排行还有我的最新展望! 最近,编程语言排行榜前几天发布更新了,在最新的TIOBE编程语言排行榜中,Java依旧位居第一,但前 ...
- PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点
PHP.Java.Python.C.C++ 这几种编程语言都各有什么特点或优点 汇编: C: Java: C#: PHP: Python: Go: Haskell: Lisp: C++: &l ...
- 关于Visual Studio调试C/C++,JS,PHP,JAVA,Python等语言的方法
我在开始接触vs code后,确实对它的高颜值和小巧灵活而着迷,但是有一个非常现实的问题,相对于vs来说,vscode是一个代码编辑器,而不是一个IDE,在代码编译运行上存在着极大的问题,尤其是开始编 ...
随机推荐
- 「NOIP 2017」列队
题目大意:给定一个 $n times m$ 的方阵,初始时第 $i$ 行第 $j$ 列的人的编号为 $(i-1) times m + j$,$q$ 次给出 $x,y$,让第 $x$ 行 $y$ 列的人 ...
- qt creator源码全方面分析(3-1)
目录 qtcreator.pro 包含qtcreator.pri include(filename) Qt版本判断 message(string) $$运算符 error(string) 包含doc. ...
- ubuntu 18.04 添加快快捷方式
1. 创建启动软件的快捷方式的文件 # cd ~/桌面 # vim pycharm18.1.desktop # 注意文件的后缀是 .desktop [Desktop Entry] Version=1. ...
- snmp服务配置
snmp服务配置 1. 检查是否安装 snmp rpm -qa |grep snmp 如未安装 rpm –ivh 加包名 (net-snmp-utils 为各种工具包) 2.服务开启 service ...
- swagger 以及swaggerUI使用的步骤
1.swagger,可以这么理解swagger是接口规范.Rest Api 传递参数的除了get请求外,put post,需要传递json.或者就是直接都通过传递json到后台 这里主要介绍一下spr ...
- 《OneForAll框架搭建之旅》前端篇:微前端架构设计(Vue)
心之所向,勇往直前!记录开发过程中的那些小事,给自己加点经验值. 前言 作为一个.Net后端开发,在竞争愈加激烈的当下,掌握点前端配菜好像已经是家常便饭了. 刚好在工作的第5个年头,辞去小主管职务的我 ...
- SPA中前端路由基本原理与实现方式
SPA 前端路由原理与实现方式 通常 SPA 中前端路由有2中实现方式,本文会简单快速总结这两种方法及其实现: 修改 url 中 Hash 利用 H5 中的 history Hash 我们都知道 ur ...
- Immer.js简析
开始 在函数式编程中,Immutable这个特性是相当重要的,但是在Javascript中很明显是没办法从语言层面提供支持,但是还有其他库(例如:Immutable.js)可以提供给开发者用上这样的特 ...
- 前端每日实战:10# 视频演示如何用纯 CSS 创作一个同心圆弧旋转 loader 特效
效果预览 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视频是可以交 ...
- Vue方式自动打开浏览器配置
Vue方式自动打开浏览器配置 1. 通过 package.json 配置项目 // 必须是符合规范的json语法 "vue": { "devServer": { ...