【问题标题】:Is there a language that does both what SQL does and general purpose programming?是否有一种语言既可以执行 SQL 的功能,也可以执行通用编程?
【发布时间】:2021-03-10 16:36:54
【问题描述】:

我想实现一些游戏逻辑,对象之间有很多关系,类似于关系数据库或图形数据库。

我不懂任何语言都可以让我这样做:

  • 具有不可为空链接、级联删除等的强大、安全的关系映射。
  • 实现游戏逻辑
  • 编写纯函数
  • 网络
  • 如果可能,提供不错的数据访问性能。 (就像内存中的 SQLlite 是可以接受的)

我想避免使用两种语言,并使用一些相当复杂的 ORM 在两种语言之间映射数据。相反,我想要一种能够满足所有这些要求的语言。

显然,有 SQL。但我不知道任何 SQL 实现:

  • 除了回复 SQL 请求之外,还能够联网
  • 拥有像 F# 这样的语言的许多特性吗? SQL 能够进行函数式编程,但 F# 功能(例如管道、部分应用程序、模式匹配、原始类型上的强类型)呢?

我将接受部分替代解决方案。

请注意,我不需要实际的持久性存储,只需要关系数据库之类的对象关系,甚至图形数据库。

【问题讨论】:

    标签: functional-programming relational-database programming-languages


    【解决方案1】:

    答案是否定的,在您设置的范围内。

    第三宣言的目的是定义一种称为 D 的语言,它具有通用编程语言的特性,但实现了专门针对数据库管理的类型系统和关系特性。如果完全实现,它可能会取代 SQL,但不会取代常见的 GP 语言,例如 C/C++、Java 或 C#。

    There are many GP languages which can do all the things you propose, when used in conjunction with suitably chosen libraries.为了与您描述的内容最接近,您应该坚持使用任何适合您其他需求的语言,并向其中添加一个使用 API 而不是 SQL 的内存进程内数据库。几乎按照定义,这意味着您应该寻找“NoSQL”数据库。有很多。

    这里提到了您的问题:https://forum.thethirdmanifesto.com/forum/topic/is-there-a-language-that-does-both-what-sql-does-and-general-purpose-programming/。您可能会发现后续讨论很有启发性。

    【讨论】:

    • 谢谢。我不知道 D 和第三个宣言。我也很高兴我不是唯一一个指出“对象-关系阻抗不匹配”问题的人。我正在查看“Muldis 数据系统”以...
    • 如果您想进一步讨论这个话题,请访问我们的论坛。另外,如果你得到了你需要的,请接受答案。
    猜你喜欢
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多