生产级数据存储的函数式语言实现
有很多用 Erlang 编写的数据存储,例如 Riak、Dynomite、CouchDb、Scalaris,我错过了什么吗?
我知道 Java 和 C/C++ 也被用来编写数据存储(Cassandra、Hypertable 等),但是是否有任何数据存储是用其他函数式语言(例如 F#、Scala、Haskell、Clojure 等)编写的?我问这个问题(以及许多其他函数式编程和 Erlang 类型的问题)的原因是评估函数式编程语言对于现实世界项目的可行性。
作为旁注,有人向我指出,我指的是数据存储本身的实际实现语言,而不是访问数据存储的客户端语言(即:通过 ODBC)。
There are many datastores written in Erlang, for example Riak, Dynomite, CouchDb, Scalaris, have I missed any?
I know that Java and C/C++ have also been used to write datastores (Cassandra, Hypertable, etc), but have any Datastores been written in any other functional languages such as F#, Scala, Haskell, Clojure, etc? The reason I am asking this (and many other functional programming and Erlang type questions) is to assess the feasibility of functional programming languages for real world projects.
As a side note it has been pointed out to me that I mean the actual implementation language of the datastore itself, and not the client language to access the datastore (ie: via ODBC).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
从某种意义上说,你已经回答了你自己的问题。您提到的系统以及评论中的其他系统,ARE都是用函数语言编写的,并且ARE绝对是现实世界的项目,所以答案是是。
In one sense you have already answered your own question. The systems you mention, and others from the comments, ARE written in functional langauges and ARE definitely real world projects, so the answer is yes.
FleetDB 是 Clojure 中的无架构数据库。
FleetDB is schema-free database in Clojure.
你的问题让我有点困惑。您询问用多种语言编写的数据存储。一般来说,当我编程时,我会寻找一个库或 API 来以我选择的语言从数据存储中获取数据或将数据放入数据存储中。底层数据存储是用什么写的(如果用什么写的,有些数据存储只不过是文件布局)我不在乎。
在此基础上,稍加谷歌搜索就会找到 Haskell-to-ODBC 库,我想其他语言也会有类似的设施。我对这些一无所知,所以不会评论它们是否适合项目。
Your question puzzles me a little. You ask about datastores written in a variety of languages. Generally, when I program I look for a library or API to get and put data from and to the datastore in my chosen language. What the underlying datastore is written in (if it's written in anything, some datastores are no more than file layouts) I do not care.
And on that basis a little Googling will turn up Haskell-to-ODBC libraries, and I imagine the other languages will have similar facilities. I have no knowledge of these, so won't comment on their suitability for projects.