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,在代码编译运行上存在着极大的问题,尤其是开始编 ...
随机推荐
- VMware虚拟机各版本密钥
VMware Workstation Pro 激活许可证 UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA VF750-4MX5Q-488DQ-9WZE9-ZY2D6 UU54R-FVD91 ...
- tomcat服务器的应用总结
tomcat的安装和部署: >> Web的基本入门: |-- C/S架构:客户端和服务器: |-- B/S架构:浏览器和服务器: >> 服务器当中可以放入的资源: |-- 静态 ...
- .NET Core C#目录
.NET Core技术开发指南 简介 本系列教程是一份关于微软.NET Core技术栈的全面的教程,其中涉及了C#.Typescript.Angular.Redis等一系列的教程.其中教程中通常会含有 ...
- TCP/IP协议族的四个层次
OSI7层模型的小结 : 在7层模型中,每一层都提供一个特殊的网络功能.从网络功能的角度看:下面4层(物理层.数据链路层.网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主:第4 ...
- POJ 1065 & ZOJ 1025
#include <cstdio> #include <iostream> #include <algorithm> #include <cstring> ...
- ggplot2练习
图源于电力电子课本65页——电容滤波的单相不可控整流电路. f<-function(w,d) { l<-w/sqrt(w^2+1)*exp(-atan(w)/w)*exp(-d/w) r& ...
- el-select下拉加载(实现懒加载)
情况:项目出现了下拉数据量过大,出现页面卡死问题,反馈到我这:当时实现思路1.使用render函数去渲染下拉框 试了发现卡死情况依然存在,所以尝试方法2 2.使用原生js去添加下拉框的<opti ...
- Struts UI标签的使用
先来看一下日期控件 html5标签中其实已经有日期的类型,用<input type="date">便可调用. struts里面也自带了日期控件,其使用步骤为: 1. 导 ...
- PPP协议(简述)
PPP协议(链路层协议):用于点对点信道.互联网用户通常需要连接到某个ISP(运营商)之后才能接入到互联网,PPP协议是用户计算机和ISP(运营商)进行通信时所使用的数据链路层协议.该协议可支持同一时 ...
- 【Weiss】【第03章】练习3.7:有序多项式相乘
[练习3.7] 编写一个函数将两个多项式相乘,用一个链表实现.你必须保证输出的多项式按幂次排列,并且任意幂次最多只有一项. a.给出以O(M2N2)时间求解该问题的算法. b.写一个以O(M2N)时间 ...
