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 前端的地位目前是没有任何语言能撼动它的霸主地位。

 
image.png

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 种不同硬件软件平台。我们的目标,是将开发软件装置变得和开发网页一样简单。

 
image.png

这是 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上最热门的的更多相关文章

  1. Curly braces in Python in 2012? - Stack Overflow

    Curly braces in Python in 2012? - Stack Overflow Curly braces in Python in 2012? [closed]

  2. Stack Overflow上关于Java Collections的几个常见问题

    下面列出Stack Overflow上最常见的几个关于Java Collections的问题并给出答案. 1. 什么时候用LinkedList,什么时候用ArrayList? ArrayList是使用 ...

  3. Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?

    在逛 Stack Overflow 的时候,发现了一些访问量像喜马拉雅山一样高的问题,比如说这个:如何比较 Java 的字符串?访问量足足有 370万+,这不得了啊!说明有很多很多的程序员被这个问题困 ...

  4. [转帖]Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?

    Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递? http://www.itpub.net/2019/12/03/4567/   在逛 Stack Overfl ...

  5. Stack Overflow 上人气最旺的 10 个 Java 问题

    1. 为什么两个(1927年)时间相减得到一个奇怪的结果? (3623个赞) 如果执行下面的程序,程序解析两个间隔1秒的日期字符串并比较: public static void main(String ...

  6. 你可能不知道的java、python、JavaScript以及jquary循环语句的区别

    一.概述 java循环语句分为四种形式,分别是 while, do/while, for, foreach: python中循环语句有两种,while,for: JavaScript中循环语句有四种, ...

  7. 6月份最新语言排行:Java,Python我更看好谁?

    文章首发于终端研发部,转载,请标明原文链接 今天的主题是:探讨一下6月份语言排行还有我的最新展望! 最近,编程语言排行榜前几天发布更新了,在最新的TIOBE编程语言排行榜中,Java依旧位居第一,但前 ...

  8. PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点

    PHP.Java.Python.C.C++ 这几种编程语言都各有什么特点或优点 汇编: C: Java: C#: PHP: Python: Go: Haskell: Lisp: C++: &l ...

  9. 关于Visual Studio调试C/C++,JS,PHP,JAVA,Python等语言的方法

    我在开始接触vs code后,确实对它的高颜值和小巧灵活而着迷,但是有一个非常现实的问题,相对于vs来说,vscode是一个代码编辑器,而不是一个IDE,在代码编译运行上存在着极大的问题,尤其是开始编 ...

随机推荐

  1. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

  2. 线上SpringCloud网关调用微服务跨机房了,咋整?

    1.前言 公司内考虑到服务器资源成本的问题,目前业务上还在进行服务的容器化改造和迁移,计划将容器化后的服务,以及一些中间件(MQ.DB.ES.Redis等)尽量都迁移到其他机房. 那你们为什么不用阿里 ...

  3. CSS——NO.2(CSS样式的基本知识)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  4. C++ 走向远洋——44(项目一、点—圆—圆柱类族的设计、派生类)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. 少用 string.Format

    如果你使用的是 C# 6.0 及其以上版本的话我建议你使用新增的 内插字符串 这个功能.这个功能可以更好的帮助开发人员设置字符串格式.下面我们就来看一下为什么要少用 string.Format 而要多 ...

  6. Golang/Python/PHP带你彻底学会gRPC

    目录 一.gRPC是什么? 二.Protocol Buffers是什么? 三.需求:开发健身房服务 四.最佳实践 Golang 1. 安装protoc工具 2. 安装protoc-gen-go 3. ...

  7. 54-with管理文件操作上下文

    目录 with管理文件操作上下文 with管理文件操作上下文 之前我们使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用.其实我们可以更方便的打开文件,即Pyt ...

  8. Spark ML机器学习库评估指标示例

    本文主要对 Spark ML库下模型评估指标的讲解,以下代码均以Jupyter Notebook进行讲解,Spark版本为2.4.5.模型评估指标位于包org.apache.spark.ml.eval ...

  9. java算法--稀疏数组

    数据结构必要知识 线性结构 线性结构是最常用的数据结构,数据元素之间存在一对一的线性关系. 线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构.顺序存储的线性表称为顺序表,顺序表中的存储元素是 ...

  10. ggplot2(3) 语法突破

    3.1 简介 图形图层语法基于Wilkinson的图形语法,并在其基础上添加了许多新功能,使得图形更有表现力,并能完美地嵌入到R的环境中. 图形图层语法使得图形的重复更新变得简单——每次只更新一个特征 ...