前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Javascript 是最好的语言,不服来辩

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

作者头像
桃翁
发布2018-06-27 15:41:53
1.9K0
发布2018-06-27 15:41:53
举报
文章被收录于专栏:前端桃园

看到这个标题相信很多人就要开始跟我争论了,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 这么强大。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端桃园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Javascript 可以做什么
    • 1. Web 前端
      • 2. 后端 Nodejs
        • 3. 桌面应用
          • 4. 移动端应用
            • 5. 游戏
              • Cocos2d-JS
              • Unity 3D
            • 6. 物联网
            • 将你擅长的语言编译为JavaScript
              • 将 Java 编译成 Javascript
                • 将 C/C++ 代码编译为 JavaScript
                  • 将Python代码编译为JavaScript
                    • 将Ruby代码编译为JavaScript
                      • 将 .NET 代码编译为 JavaScript
                      相关产品与服务
                      云开发 CloudBase
                      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档