Rich Hickey 在 Clojure/West 大会上谈 Datomic

  • Michael Floyd
  • 曹如进

2012 年 4 月 9 日

话题:函数式编程JVM语言 & 开发AI

3 月 16 日 -3 月 17 日,加州圣荷西举办了一场名为Clojure/West的大会,大约 350 名的 Clojure 爱好者齐聚一堂,前来聆听 Rich Hickey 以及众多程序员、开发人员关于新技术、新工具的演讲,其目的是为了更多地了解 Clojure 生态系统的大致状态。Clojure/West 大会的组织者是举办Strange Loop的同一批人。本次大会涵盖了云端 Clojure、DevOps 以及使用 ClojureScript 和 Domina 进行 DOM 编程等主题。InfoQ 有幸现场观摩了此次活动。

从 Rick Hichkey 在QCon 伦敦站现场的发言来看,Datomic是他最近的一项尝试。Datomic 被描述成“一种旨在帮助构建可扩展、灵活、智能应用程序的分布式数据库”。Datomic 以 Amazon 完全托管的 NoSQL 数据库服务作为基础。Datomic 的特色在于 ACID 事务、联接和使用不变性(immutability)和状态(state)的数据模型。为了将查询移动到应用程序中,Datomic 还内置了一个 Prolog 的子集——Datalog。熟悉 Prolog 的朋友应该知道它是一门声明式语言,并带有一个内置推理引擎来根据规则基础对声明语句进行评估。Datalog 是 Prolog 的一个子集,它以规则和数据源作为参数。Datomic 对 Datalog 进行了扩展,可以支持标量和集合,并添加了表达式子句用作调用代码。

Heroku 工程师、西雅图 Clojure 群组(Seajure)创始人 Phil Hagelberg,针对 swarm 编程进行了一个简短的演讲。Hagelberge 将重点放在了学习模型与协同建模怎样在直接跨越距离的同时消除二义性。Clojure 群组的操作过程是首先讨论确定小组内人员的技能(每个小组最多 10 名程序员),而后举行一个研讨会解释项目、确定目标以及传递控制权,目的是让每个人都有机会对项目进行控制。每次会议的结果是将完成的项目推进到 GitHub 中。

周六下午的几个短会是为了让与会者能够快速地跟进一些最新趋势。来自 Relevance 的 Luke Vanderhart 简短地讨论了使用 ClojureScript 操作 DOM。Vanderhart 说,浏览器 API 对于像遍历文档树结点这样的工作并不适合,它是一个多步过程,这就是为什么要在这使用 jQuery。而后他拿 Domina 与 jQuery 进行了对比,他说,Domina 的灵感取源于 jQuery,但是包装得更加清晰,并且可以在 ClojureScript 中轻松地进行组合。

大会还介绍了 Google Closure、用 Clojure 编写 DLS、Clojurepunks 中的 Overtone 和 Unjam、以及其他一些关于云、DevOps、持续测试、JRuby on Rails 和基于 JVM 的其他语言部分。幻灯片目前放在了 Github 上。未来几周,InfoQ 会放出大会中一些演讲,敬请关注。

查看英文原文:Rich Hickey Speaks on Datomic at Clojure/West

函数式编程JVM语言 & 开发AI