gpt4 book ai didi

design-patterns - 跨语言标准库?

转载 作者:行者123 更新时间:2023-12-04 03:54:11 26 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




所以我们都知道,学习一门编程语言只是在平台上获得生产力的一小部分。学习 Java 库比学习 Java 编程语言花费的时间要长得多,C#、JavaScript、Python、Ruby 等也是如此。

作为程序员,我们可以很容易地观察到 for 循环或数组在任何编程语言中都是 for 循环或数组。一旦你学习了这个概念,你就不需要重新学习它,确保语法不同,但重新学习这个概念是零努力。显然,标准库并非如此,这意味着我们必须重新学习如何完成常见任务,例如文件操作、与数据库通信、在我们使用的每个平台上进行网络连接,这既低效又痛苦,必须有一个更好的出路。

W3C DOM 是一个跨语言库的示例,无论使用哪种编程语言,它都应该具有相同的函数名称和相同的语义。 W3C DOM 很难使用,但至少一旦你用一种语言/平台学习它,它在其他语言/平台上是一样的。

是否在任何地方为 2011 年左右的开发人员关心的最常见任务定义了一组跨语言库。

  • 文件 IO 操作
  • 网络
  • 流程管理
  • 数据库访问
  • 集合和数据结构
  • 密码学、数字签名、加密哈希
  • 不涉及 UI 代码的任何其他有用的东西

  • 澄清:我对绑定(bind)到当前平台(如 .NET 或 JVM)的 API 不感兴趣,因为它们与单个公司相关联,在许多情况下,它们的 API 已经过时了,如果今天重新设计它们会更干净/更好的。作为一名主要的 Java 开发人员,看着甲骨文接管 Java 起诉谷歌是一场真正的恐怖表演。我真的不希望我在掌握一个平台上投入的时间被一个单一的实体控制,而是成为某种开源项目,最好的设计会获胜。

    澄清:我正在寻找在许多不同语言中相同的 API,而不是与单一语言相关联。例如,考虑读取文本文件的内容。我必须打开文件,读取内容,......等等相同的错误处理语义。我知道不同的编程范例,所以我可以接受 API 的 OO 版本、功能版本……等等。

    最佳答案

    一个有趣的问题...我认为执行更专业功能的库有更多机会通过多种语言绑定(bind)来开发(并且您开始在各种 Web 服务中看到这一点)。不幸的是,尽管开发人员努力使语言绑定(bind)尽可能自然,但提供的抽象往往相当简单,并且经常让人感到“陌生”。也许更好的说法是它们往往是单调的。例如,低级 POSIX API 实际上确实代表了标准库的一种最低公分母,但挑战在于不同的语言(可以)甚至在使这些基本抽象变得“自然”的过程中以非常不同的方式处理这些基本抽象。对于那种语言。另一个问题(正如在之前的文章中提到的)是,就其本质而言,标准库必须达成一致,这本身就极具挑战性。不幸的是,这个过程通常会导致 API 无法真正满足任何人的要求。 (例如......我们真的必须支持 36 位字或科普特日历吗?取决于您的观点。API 应该是面向对象的、功能性的还是其他类似流的东西?也取决于您的观点。只是指出这可能是一个比人们想象的更复杂的问题。

    应该注意的是,已经努力为标准事物提供更好(至少更一致)的 API。一个例子是 Plan9,这是一种操作系统,其中一切都是文件。总体而言,评论褒贬不一。

    关于design-patterns - 跨语言标准库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654826/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com