WEB 技术的桌面化

1. WEB 技术的桌面化和 JavaScript 的全栈化

JavaScript 近些年发展火热,逐渐印证了一个 Atwood 法则:凡是可以用 JavaScript 实现的,最终都会用 JavaScript 实现

  • Nodejs 的出现,奠定了 JavaScript 走出浏览器,走向了服务器端
  • NW 的出现和 electron 正式版发布,JavaScript 走向了桌面
  • MongoDB 的出现,JavaScript 走向了数据库
  • Tessel 的出现,走向了硬件和物联网

如今一个全栈系统,从前端到数据库,可以完全使用 JavaScript 一种语言。还有很多人正在致力于把 JavaScript 推向更多的领域中。

而 Web 技术(html+css+JavaScript)由于 NW 和 Electron 的出现,已经可以编写桌面程序了。正是由于 JS 的优秀模块很多,以及 HTML+CSS 的界面容易编写和掌控,纠错工具丰富,很多人愿意用 WEB 技术进行开发。现在比较火的桌面工具有 VS-Code 编辑器和 Atom 编辑器。

总结一下:由于 WEB 技术的便利性,WEB 技术涉及的领域也就越来越多,再也不是浏览器的专利了。

2. Web API 的全面发展

Web API 虽然历史悠久,但是真正使其推广流行的应该是 Twitter,而后移动设备的普及使其得到更大发展和普及。移动设备如果没有 Web API 基本就不能工作了。Web API 的普及,也使得网络服务之间相互连通,形成一个更大的服务网络。总之,如今的 Web API 已经是不可或缺的存在了。

Web API 更多的是一种服务,或是一种数据交换模式。只要语言带有 HTTP 的网络访问功能,就都能使用。提供 Web API 的公司,发布 Web API 后,一般也会同时发布一些常用语言的 SDK,方便相应语言开发人员快速上手;但是如果语言比较小众,没有提供相应的 SDK 也没有关系,编写一段 HTTP 的请求,也是可以交换数据。

从编程的角度来归纳一下 Web API 特点就是:

  • 容易编写,就是个函数,无需界面
  • 语言无关性,无论 Web API 是个语言编写,几乎任何语言都能调用
  • 访问性好,无论在哪,只要网络能访问,Web API 就可以用。

3. 语言之间的相互借鉴

语言之间的相互借鉴也越来越明显了,比如:

  • PHP5.0 后支持了类,5.4 后支持了 Trait,5.5 后支持了生成器(Generator)
  • JavaScript ES6 支持了箭头匿名函数,生成器(Generator),类(不是 Prototype 的类)
  • C# 和 Java 相互借鉴
  • Coffee Script 借鉴 Python 和 Ruby

与其说是相互借鉴,不如说随着语言的发展,一些语言概念逐渐成为了标配,如果没有,就算是一个不完整的语言了。比如说类,匿名函数,常用数据结构等都成为了标配。

4. 语言解析器的工具化

语言解析器(Parser)在过去自是作为编译器的一部分存在的。如今,它已经独立出来作为一个模块或者工具来使用了,这个对于一个语言的生态有着很大的意义,促进了语言生态圈的良好发展。

独立出来的解析器,可以用来编写以下和语言有关的工具,这些工具都是用来优化代码质量的,提高编码体验的。

  • 语法检查,JavaScript 的 JSHint 用的就是 JavaScript 的一个解释器,被 JavaScript 重新解释一遍,把可能有问题的地方标记出来通知程序员,程序员可修改避免潜在错误。
  • 代码最小化,代码重写的一种形式,JavaScript 的最小化项目(比如 Urglify),是把语法正确读取后,进行最小化压缩。把单词变量转换成单字母变量。甚至是 if else 转换成?: 形式。
  • 语法扰乱器,就是代码重写的一种形式,让代码无法阅读,保护代码。
  • 语法整理器,代码重新的一个形式,把无法阅读的代码,转换成可阅读的代码,比如 beautifier。
  • 语法高亮,一般用于代码编辑器和代码显示组件的。
  • 代码分析器, 把可用的代码部分进行扫描,列出代码相关数据,比如用了多少类,多少对象,多少变量,多少全局变量等等
  • 代码清理器,分析器的加强,清理不用的变量,不用的对象和,不用的函数等。
  • 自动完成,一些 IDE 可以分析已经存在的变化和函数,以后在不断的打字中可以智能的自动完成。
  • 代码追踪,比如说某段代码被执行了几次,程序报错时候,函数被执行的顺序,测试程序时候的代码覆盖率等等
  • 虚拟执行,JavaScript 代码在一个保护区域内或环境执行,代码可以返回值,但不能影响非虚拟环境内的代码执行。比如说,代码里面有全局变量,但是虚拟执行后这个全局变量只在虚拟环境内,非虚拟环境的没有这个全局变量。

5. 数据交换语言的发展

数据交换语言发展总体来说就是从 XML 主流逐渐发展到 JSON 主流的过程. 虽然 XML 现在应用还是非常广泛,但是由于其复杂和标签占用空间大,逐渐被轻量级的 JSON 给代替了。尤其 JSON 与 JavaScript 天然兼容,无需解析,直接使用。所以在很多网络技术中 JSON 是优先使用的。

而如今很多配置文件也是用 JSON 实现的,比如 Composer 和 node 的配置文件。

JSON 的阅读方式更符合程序员的阅读习惯,格式化后的结构一目了然,容易理解。

JSON 好处:

  • 结构符合程序员阅读习惯
  • 文件大小相对更小
  • JavaScript 可以直接使用
  • 在非 JavaScript 的脚步语言中,转化成数据结构更容易
  • 学习曲线很短

正是以上这些原因,使用 JSON 作为数据交换语言可以说在编程界里,是大势所趋了。

联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3