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

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

看到这个标题相信很多人就要开始跟我争论了,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 前端的地位目前是没有任何语言能撼动它的霸主地位。

640 (4).jpg


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


640 (5).jpg


这是 2017 年 Github 最流行的 15 种语言排行榜,可以看到 Javascript 的项目数是第二名的两倍,Javascript 之所以这么流行,我想原因之一也是因为这门语言所涉及的范围太广了。


看到这里,我只想说


640 (6).jpg


将你擅长的语言编译为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 这么强大。

目录
相关文章
|
6月前
|
JavaScript 前端开发 Java
JavaScript语言
JavaScript语言
39 1
|
1月前
|
XML 监控 JavaScript
JavaScript 语言对企业上网监控的技术支持
在数字化企业环境中,上网监控对企业信息安全和提升员工效率至关重要。JavaScript 作为广泛应用的脚本语言,提供了强大的技术支持,包括数据获取与分析、与服务器端交互、监控页面加载时间和网络活动,助力企业有效管理上网行为,保障信息安全。
28 6
|
3月前
|
Web App开发 JavaScript 前端开发
Node.js与Go语言的对比?
【8月更文挑战第4天】Node.js与Go语言的对比?
375 3
|
3月前
|
自然语言处理 JavaScript 前端开发
【走向世界】Vue.js国际化:打造无国界应用,让爱与信息跨越语言的边界!
【8月更文挑战第30天】本文详细介绍了Vue.js中实现国际化的多种方法及最佳实践。通过使用`vue-i18n`等第三方库,开发者能够轻松地为应用添加多语言支持,优化用户体验并扩大市场覆盖范围。文章涵盖从基本配置、动态加载语言包到考虑文化差异等方面的内容,帮助读者构建真正全球化且无缝多语言体验的应用程序。
112 0
|
3月前
|
JavaScript 前端开发 UED
探索JavaScript的历史:网络需求初现、语言创立与标准化的旅程
探索JavaScript的历史:网络需求初现、语言创立与标准化的旅程
|
5月前
|
JavaScript 前端开发 编译器
ECMAScript与JavaScript:一场语言的邂逅
ECMAScript与JavaScript:一场语言的邂逅
|
6月前
|
JavaScript 测试技术
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的java语言的考试信息报名系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的java语言的考试信息报名系统附带文章源码部署视频讲解等
54 0
|
6月前
|
JavaScript 前端开发 Java
javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数
javascript是弱类型语言,一个函数参数可以接收不同类型的变量作为它的该参数
53 0
N..
|
6月前
|
存储 JavaScript 前端开发
JavaScript语言的基本结构
JavaScript语言的基本结构
N..
36 1