路过回一下 JavaScript 的部分的我的观察
首先那些方言都是各自有其出现的原因就不多说了
其实专业的 IDE 也算是有,微软的 VS 就有支援 JS 专案开发
不过大部分这领域的开发者都已经习惯现在的开发方式了
所以用 VS 开发一直也没成为主流,倒是后来的 VSCode 有打进大家习惯的开发模式
然后 JavaScript 作为编译目标其实也是无可奈何
因为 Web(Browser) 上现在就是只有这个标准的程式语言
其实我在 wasm 出来之前确实是有相信过这是个未来
不过 wasm 出现后我觉得以后会分两块
一是现在的 web application 那类的应用
另一种是 native app 直接 compile 成 wasm 在网络上用
像是游戏或是有比较吃绘图需求的应用之类的
甚至是复杂到不会想重写的应用
ES Module 的部分我个人是认为不会直接在 web 上用啦
就是如果你的专案是 web application 的话,还是会用 bundle 处理过
例如包成一个大的 module 之类的,浏览器才来读
不然就算 HTTP/2 其实也是会慢很多
毕竟 code 要下载来 parse 过才知道还有哪些 module
不是直接有个清单给浏览器说总共有这些 module 要
就算有其实也是会多不少 HTTP Header
总传输量也是有影响
btw 我也是比较喜欢 rollup 的~
然后其实我觉得这些都还好
这两年最让我感到不可思议的其实是 React Native Web 了
真的是脑洞大开
最后补一下 JavaScript 算不算 compiled language 这几年其实已经有不同意见了
2004 年 YDKJS 作者就认为他不是 script 了
不过其实这都有点像是每个人的想法不一样的意见歧异
※ 引述《shter (飞梭之影)》之铭言:
: 2.高阶语言是用来编译成低阶语言执行
: 机器语言 > 组合语言 > Basic , C , COBOL ..... 以前书上大概是这样写发展的
: 这个道理很容易理解,每一门语言最终目标都是编译成机器语言执行
: 后来 JAVA 跟 .NET 出现了虚拟机器、CLR、中继层之类的概念
: 我包一层中继,你用什么写都行,要在什么环境上跑都好,交给我来处理
: 当然早期这样包一层中继是有执行效率问题的,以前 IE 3 看到咖啡就直觉要变慢了
: 后来看到 Flash 就想到耗能、吃资源....
: 到这边都还可以理解,但近年前端生态真的让人哭笑不得
: Javascript 几乎是非常好上手的语言了,可是还跑出 Coffe Script、Type Script
: 甚至用它自己 (ES6) 写的 都要用工具编译成 ES5 code 再跑
: 从以前随写随用变成至少要搞 babel 跟 webpack 或 rollup 之类东西弄开发环境
: 甚至其他语言也有许多以编译成 Javascript 当目标的专案
: 结果现在写 Javascript 要编译却又没有专业的 IDE
: source map + live server + live update + console 尽量做到最友善的开发体验
: 会有感而发是因为还有一个以前教科书说请大家不要用的 eval
: 现在却变成 webpack 开发良伴,看了一下转译的 code 那精美的 eval 令人兴奋
: 在这个什么都可以转译到 Javascript 的时代,它几乎快变成组合语言的感觉
: 大家都要转成它,它再喂给浏览器或 node.js 或其他 Runtime 跑
: 在可预见的未来,Progressive Web App 应该会继续 Javascript 荣光
: 还真是任何可以用 Javascript 写的东西,最终都将用 Javascript 写
: 在浏览器实做 ESModule 的现在,有机会回到过去不用再编译了吗?
: 看着 webpack 包出来的东西有点头痛
: 不知道 vue-cli 有没有办法把打包工具换成 rollup ?
: 反正 CSS 也不要输出实体档了,通通包进 Javascript inline code 里塞到 head