Re: [閒聊] 工作後一些觀念跟計算機概論完全顛倒

作者: othree (OOO)   2019-03-03 11:18:22
路過回一下 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
作者: plsmaop (plsmaop)   2019-03-03 11:22:00
先掃過整個function,再做hoisting生出variable object,再來才是逐行執行,應該還是算script languageㄅ
作者: oopFoo (3d)   2019-03-03 14:31:00
ES Module還蠻好用的。wasm前景看好有機會取代Java VM現在的Front End真的走錯方向了,但是碼農不跟不行。
作者: s25g5d4 (function(){})()   2019-03-03 22:58:00
to 1F 現在大家都用 JIT compiler 的情況下,會有人認為JS 已經不算 script 是很正常的事情,還停留在逐行執行你可能有點脫離現況
作者: shter (飛梭之影)   2019-03-04 11:54:00
對我來說 ES Module 不習慣的地方是它要在 Server 才能 run直接開 file 沒辦法像一般 js 一樣引入執行不過用筆電時總覺得開 Server 電噴比較快想省電....wasm 我也覺得不會取代現有的 js 而是取代你講的應用面向未來搞不好很多套件會用 wasm 發行,到時開發情況大概又跟現在用 ES Modue 到處 npm install 再 import 不同了
作者: oopFoo (3d)   2019-03-04 12:56:00
ES Module 已經可以在Browser上用了。ES module當debug版release的時候再跑webpack。

Links booklink

Contact Us: admin [ a t ] ucptt.com