美文网首页前端桃园我爱编程
Javascript 是最好的语言,不服来辩

Javascript 是最好的语言,不服来辩

作者: 勿忘巛心安 | 来源:发表于2018-05-24 16:56 被阅读365次

    看到这个标题相信很多人就要开始跟我争论了,PHP 才是最好的语言,那就请原谅下,你说是就是,我们来看看就知道了。

    有一条 Atwood 定律:any application that can be written in JavaScript, will eventually be written in JavaScript

    翻译一下就是:任何可以用 JavaScript 来写的应用,最终都将用 JavaScript 来写

    要是没看到过这句话的人可能又要开始说了,Atwood 是谁,他说最终会就会啊。

    那我们来了解一下他,说那些多少年的编程经验啊,这些都没啥用,只要说一点,就能知道这个人也不是等闲之辈,他是 stack overflow 的联合创始人,还是牛逼吧,如果你说你不知道 stackoverflow,那么对不起,那么我们不能做朋友了(开玩笑的,不知道的去了解下吧)

    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 这么强大。

    下面是我公众号,欢迎来辩


    qrcode_for_gh_39aba8571ae1_860.jpg

    相关文章

      网友评论

        本文标题:Javascript 是最好的语言,不服来辩

        本文链接:https://www.haomeiwen.com/subject/drvjjftx.html