我一直在谷歌上搜索最新的网络应用程序,并找到以下语言:
- Opa
- Dart
- Haxe
- CoffeeScript
Run Code Online (Sandbox Code Playgroud)
由于这些语言是新的,因此可用的信息不多.
任何人都可以解释这些语言的优缺点.
编辑:
哪种语言有效?
每种语言都有哪些新功能?
它如何改善现有语言JavaScript?
哪个容易学?
我是Dot Net开发者,想尝试使用Opa,我的问题是:
在阅读了(几乎)整本电子书并查看API后,
我仍然在问自己如何用opa实现"传统"的Web服务器行为.
我理解(至少我相信)opa将
编译时指定的外部资源链接到可执行文件中,使它们成为不可变和永久性的.
但是,如果我想在不重新编译的情况下更改应用程序的样式表呢?
stdlib(apidoc)中似乎有一些方法,但它们并没有涵盖我从其他编程语言习惯的方法.
一个可能的解决方案,我能想到的是利用数据库内部的,
但是这看起来好像有点矫枉过正了一些简单的像传统的文件I/O.
我注意到包含在OpaWhiteBoard示例的源代码中,这里有一个.ml文件:https: //github.com/hhugo/OpaWhiteBoard/blob/master/src/opacairo/cairo.ml
这似乎是OCaml的一些指令("##").我猜这意味着可以在OCaml中写入Opa的扩展,对吗?
我需要读取和写入大量记录(大约1000个).以下示例需要长达20分钟才能写入1000条记录,并且只需12秒即可读取它们(在进行"读取"测试时,我会注释掉该行do create_notes()).
这是一个完整的例子(构建和运行).它只将输出打印到控制台(而不是浏览器).
type User.t =
{ id : int
; notes : list(int) // a list of note ids
}
type Note.t =
{ id : int
; uid : int // id of the user this note belongs to
; content : string
}
db /user : intmap(User.t)
db /note : intmap(Note.t)
get_notes(uid:int) : list(Note.t) =
noteids = /user[uid]/notes
List.fold(
(h,acc ->
match ?/note[h] with
| {none} -> acc
| {some = note} -> …Run Code Online (Sandbox Code Playgroud) 在我的一个项目中,我必须编写HTML和JavaScript代码.我宁愿使用静态类型的语言,所以我正在评估OPA.但是,我的目标是生成静态页面的集合,所以我不关心OPA HTTP服务器和持久层.
所以这里有我的问题:是否有一种(简单的)方法在OPA中生成静态页面的集合?
它是服务器吗?或者我需要在apache后面运行Opa吗?基本上 - 如果我想部署一个Opa应用程序,它会像在VPS上启动可执行文件一样简单,还是需要一些其他堆栈元素?
编辑:注意到一个类似的问题,但我感兴趣的是我是否可以使用JUST exe部署 - 而不是在任何服务器后面.
我认为新手会被"做"弄糊涂,我从语言设计的角度对此表示怀疑.你不想在一个新语言的生命的这个阶段混淆新手,几乎每个人都是新手,你想要新手,以建立社区和临界质量;-)
'do'的文档(3.8.3.做或不做)说:
这种结构有一个很好的理由:在Opa中,每个函数定义(更常见的是每个不在顶层的值)以一个值结束,这是函数的结果 - 相反,一旦我们达到第一个值,我们有功能的结果,所以功能完成.
这是我在上面加粗的部分,我想知道:为什么在达到第一个值后功能完成了?为了避免在OCaml中看到这样的事情,我们是否"引入"?:
let _ = (some expression)
Run Code Online (Sandbox Code Playgroud)
在Opa的语言设计中使用'do'的替代方法是什么?如何处理这个问题(从语言设计的角度来看).
我只是在调查OPA,试图从传统的LAMP背景中实现跨越,所以这是我的第一个新手问题:
我可以拥有两个共享相同数据库的OPA应用程序,比如一个写入数据库而另一个从中读取数据库?
Node.js本身支持工作线程和子进程的创建.那些使用过Node.js的人可能熟悉流控制库,如Async.js或Step.
既然Opa在Node.js堆栈上运行,有没有办法将Async.js库用作javascript模块?
是否有任何Opa语言的绑定允许线程或某种异步流控制?我怀疑没有,但我很好奇在Opa中实现线程或异步流量控制的可能选择是什么?
*现在我知道我可以用非Opa语言将我的工作转移到另一个脚本,但这是我唯一的选择吗?
提前谢谢,因为我是Opa的新手并且正在努力了解它的功能!
opa ×13
javascript ×2
node.js ×2
asynchronous ×1
coffeescript ×1
dart ×1
deployment ×1
file-io ×1
haxe ×1
hosting ×1
ide ×1
ocaml ×1