是否有人在真正的网络项目中使用Scala-JS
,但不仅仅是在隔离的环境中使用JavaScript
替换?
我想尽可能多地使用Scala(我希望我能)。似乎Scala-JS
声称是我可以使用(现在)或将来使用的库。
这就是为什么我对小工作解决方案感兴趣,以及引导(例如PlayFramework
app Scala-JS
)。
可以证明Scala-JS
可用于实际网络开发工作的解决方案/示例。
我问,因为what I found关于Scala-JS
到目前为止几乎没有真正使用它。
问:有些例子/证明它已准备好用于实际项目吗?
更新(1年后):
例如TypeScript
有很多例子。这就是我说“例子”和“真正的网络项目”时的意思。还有许多在线培训。如果我在Google中查询:“typescript github angular”,它会返回 172 000页。 ScalaJS
绝对不幸地完全没有。
但它有一些:'“scala-js”github angular' - 4 980匹配。但到目前为止,大部分都是“没有商业支持”的“发展的早期阶段”
答案 0 :(得分:28)
我还没有特别看到客户端表单验证。但是,有几个项目有效地使用Scala.js,其中包括:
答案 1 :(得分:15)
我刚刚注意到这个问题,并且可能应该插入 - 如上所述,我公司的产品Querki现在已经完全用Scala.js构建了它的UI。这是关于Scala的8k SLOC,最后我检查过:不是世界上最大的程序,但比大多数网站复杂得多。我猜它会取代原本可能是20-30k SLOC的JavaScript,而且实际上这是该公司合理的唯一方式。
这是一家小公司的测试版,但非常适合生产,而且它是天赐之物:SJS代码 比JavaScript更容易编写和维护它取代了,在实践中更加稳定。此外,将SJS前端连接到我的Akka / Play后端可以极大地加速开发,并减少错误,因为API在端到端Scala中是强类型和无样板的。
由于人们已经问过:优化后的JS代码目前约为1兆,而且现在我的所有基础架构都已编写,增长速度相当慢。 (再加上我使用的JS库也是如此。)这不是微不足道的,但它是每次发布的一次性加载;一旦它被缓存在浏览器中,用户界面非常快,比那里的动态页面快得多。
哦,既然你正在寻找一个完整的例子:可以找到源代码on GitHub。这是一个开放但受限制的,因为它是一种商业产品,但随意挖掘并用它来获取灵感。 (并随意请求有用的部分:我逐渐将广泛有用的部分提升到麻省理工学院许可的库中。)
答案 2 :(得分:9)
我正在使用scala.js为我的创业公司积极构建dashboard webapp。它不完整,但发展很快。
我的初始原型基于angular.js,使用angulate bindings。之后我用scala.rx,scalatags和scalacss的反应式网格替换了角度,它利用了scala类型系统。所有的逻辑/渲染都是类型安全的,并且使用一种语言(scala),而不是分散在" stringly-typed" HTML,CSS和JavaScript
虽然这个webapp是作为内部工具开发的,但它应该能够在真实世界的应用程序中完成后展示scala.js。
答案 3 :(得分:6)
然后
W3C在banana-rf中使用它:github.com/w3c/banana-rdf
@jducoeur建立Querki:github.com/jducoeur/Querki
TypeSafe分享了一个非常实质的模板:typesafe.com/activator/template/play-scalajs-showcase
以上所有内容都展示了相当先进的功能。技术。
细心的读者可以学到很多东西,并为自己确定ScalaJS是ready for prime time。
最后,这个https://github.com/SemanticBeeng/play-scalajs-showcase是原始版本的衍生物,展示了如何应用事件源和功能域模型,从面向CRUD的API转变为功能API。 这是一项实验并且正在进行中。
答案 4 :(得分:4)
最近(2016年),您有sri (Scala React interface)。
这是一个scalajs库,可以构建真正的原生跨平台(移动(ios和android)和web)应用程序。
它基于reactjs和react-native。
使用此模块构建基于浏览器的应用程序:
libraryDependencies += "com.github.chandu0101" %%% "sri-web" % "0.6.0"
答案 5 :(得分:1)
官方Scala.js主页列出了使用Scala.js构建的项目:http://www.scala-js.org/community/
答案 6 :(得分:1)
在Binding.scala和Scala.js的帮助下,ThoughtWorks的TodoMVC应用程序:
我不知道这是不是真正的网络项目,因为它看起来非常简洁。 DEMO仅包含一个源文件,147行代码,而同一TodoMVC功能的ReactJS实现需要488行代码。