Scala.js:將Scala編譯為JavaScript的編譯器
原文 http://www.infoq.com/cn/news/2015/03/scala-js-javascript
Scala.js 是一款將Scala代碼編譯為JavaScript代碼的編譯器,該編譯器支持全部Scala語言特性。借助于Scala.js,開發者能夠使用 Scala開發從前端到后端的Web應用,而且Scala.js還帶來了在服務器和客戶端之間復用代碼的可能性。Scala.js值得關注的特性包括:
- 支持Scala語言的所有特性,包括宏(macros),僅有 一些語義的不同 ;
- 同JavaScript代碼具有良好的 互操作性 ,如Scala.js代碼中以類型化或者非類型化方式使用jQuery和HTML5、創建Scala.js對象和JavaScript代碼中調用對象的方法;
- 集成了Scala的流行構建工具sbt ,支持依賴管理和增量編譯;
- 能夠使用Scala IDE進行編碼;
- 能夠生成一個源代碼和生成代碼的映射,從而提供了Scala.js和Scala二者之間平滑過渡的調試經歷,在瀏覽器中單步調試Scala代碼且且支持源碼間的映射;
- 集成了來自谷歌、用于生成緊湊且高性能代碼的工具 Closure Compiler ,為產品以生成最小的代碼;
- 生成非常高效的JavaScript代碼,參考 基準測試信息 。 </ul>
- 測試框架: uTest 、 MiniTest 、 Little Spec 、 Nyaya 、 zcheck 等,這些測試框架實現了在JVM和JavaScript間的交叉編譯;
- UI框架: scalajs-react 、 scala-js-binding 、 scalajs-angular 、 scalajs-angulate 、 Widok 等;
- 序列化庫: uPickle 、 Prickle 、 Scala.js Pickling 等;
- 其他: 用于客戶/服務器端通訊庫 autowire 、HTML模板庫 Scalatags 、可視化庫 Paths.scala.js 等。
Scala.js已形成了一個良好的生態圈,生態圈內容包括:
Scala.js基于 Scala許可協議 發布,代碼托管在 GitHub ,當前最新版本是0.6.2。有關Scala.js的API、使用指導和參考指南,請讀者參考官方提供的 相關文檔 。此外,官方還提供了 使用教程 、 開發文檔 以及在瀏覽器中查看運行效果的 在線工具 。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!