有没有计划支持Scala的SIQ(ScalaIntegratedQuery)像F#一样使用“类型提供程序”?

13

SIQ的当前状态是由Christopher Vogt在ScalaDays 2011上进行了介绍。 演示了查询的工作和外观,但据我记得,并没有提到如何表示这些类型,例如是否仍然需要编写样板代码来解释数据库结构给Scala。

F# 3.0增加了type providers(由Don Syme在PDC演讲中介绍:video;由Tomas Petricek在GOTO Copenhagen演讲中介绍:videoslidesblog post),这使得手动编写或生成映射表格(用于连接数据库或其他数据提供程序和语言/类型系统)变得基本上不必要,因为语言可以通过类型提供程序直接从数据库本身查询结构信息。
ScalaIntegratedQuery是否能够将数据库的类型/关系提供给Scala编译器,而无需用户自己编写样板代码?

@Carsten:有时候会有来自团队工作的内部信息或早期报告,所以他会问。谁知道呢,也许Scala设计师会来给出一个好的答案。 - Ramon Snir
1
@Carsten:我在另一个问题中直接从负责F#类型提供程序的人那里得到了答案...真是让人惊讶。 - soc
感谢您提到我的演讲,但是关于F#类型提供程序的基本信息应该来自Don Syme的演讲。我只是玩了一下,他才是设计者 :-)。例如,请参见PDC:http://channel9.msdn.com/Events/PDC/PDC10/FT12,但BUILD的新演讲也可能已经发布了。 - Tomas Petricek
1个回答

12

答案是肯定的。我们将提供一种自动解决方案,无需手动模板代码。当前 SIQ 原型使用代码生成技术,但这方面尚未得到很好的发展,这就是为什么我没有在 Scala Days 上展示它的原因。当 Stefan Zeiger 和我于 10 月 3 日开始我们在洛桑的工作时,我们将继续 SIQ 的开发。我们将审查 F# 类型提供程序以获取更多灵感。谢谢你的提示!


1
这真的太棒了!谢谢!但请确保您使用的技术不会排除将其用于其他事物,例如XML模式定义或WSDL文件。(您可能想要查看的另一种有趣方法是Gosu的“开放类型系统”) - soc
"这个方面目前还不是很发达,这就是为什么我在Scala Days上没有展示它的原因。你是否漏掉了一个“不”?" - soc
我认为截至目前,类型提供程序不再作为一种语言特性提供。 - franklin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接