因为世界往往不是由我们所料想的发展
从历史来看
JavaScript的作者根本没想过会有红的一天
一个十天写出来的语言
加上没有开源社区贡献的年代
这个语言一定是超多漏洞
外加超级不严谨的
当初只是为了抢浏览器市占
谁能料想的到会发扬光大
如果这个语言没人理就算了
谁知道还一统江山
大量的使用者出现
这个语言的缺点与漏洞自然就慢慢被挖掘出来
然后被批评为垃圾语言
那当然就会有一堆语言想要把它取代掉
Dart TypeScript coffee就出现
可惜的是浏览器各家做各家的
厂商也不想帮别厂商主导的语言做嫁裳
那只好山不转路转弄个转译
至少JavaScript各家浏览器支援
不过这样的思考模式也不光是浏览器上啦
JVM上面也一堆啊
像是groovy Kotlin Scala
也是建立在转译
我们无法控制底层市占已经被抢走了
那只好做一层功夫来符合底层
当哪天市占已经强过原本底层支援的
相信原生支援就会出现了
不过很难啦
中间牵涉到厂商的利益冲突
很多时候发展上考量的不只是
语言本身优不优秀
还有参杂了
厂商利益
法律
开发人员成本
等等问题
计算机概论不是计算机定律
所以也别放在心上了
※ 引述《shter (飞梭之影)》之铭言:
: 工作后觉得产业界很多观念跟计算机概论完全颠倒,不知道有没有调适期?
: 当然去看一下原理以及接触一下产业文化就会知道原因,只是一时间不习惯
: 但后来想一想又觉得发展变化很有趣
: 例如
: 1.并列传输速度比序列传输快
: 但现在高速通讯都是序列传输的,并列传输的最后堡垒阵亡大概是在硬盘排线 ?
: 高速后噪声干扰问题反而并列传输严重太多,结果不管 USB SATA SAS 都走序列
: 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