gpt4 book ai didi

dynamic-languages - 你如何用动态语言进行不同的编程?

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

与使用静态语言工作的人相比,真正知道如何利用动态编程语言的人如何以不同的方式进行编程?

我熟悉关于静态类型与动态类型的整个辩论,但这不是我要讨论的内容。我想讨论在动态语言中实用但在静态语言中不实用的问题解决技术。

我见过的大多数用动态编程语言编写的代码与用静态编程语言编写的代码没有太大区别。俗话说,您可以用任何语言编写 FORTRAN,很多人都这样做。但是有些人使用动态编程语言以不容易转换为例如 C++ 的方式解决问题。他们有哪些技巧?

有哪些讨论如何使用动态编程语言的好资源?不是关于语言语法或 API 引用的书籍,而是关于利用动态语言功能的问题解决方法的资源。

编辑(2009 年 1 月 5 日):我很欣赏下面的答案,但它们似乎并没有解释动态语言倡导者所说的他们所经历的生产力的巨大增长。

最佳答案

我喜欢 slim 的回答。我确实在 Java 和 C++ 上花费了大量时间来制作在 Python/Ruby 中免费的自定义数据结构。并制作专门的函数来处理这些自定义数据结构。是的,在 C++ 中,STL 非常好。是的,Java 中的泛型很好。它们有助于更快地创建自定义数据结构,但是它们仍然需要大量的思考和考虑。

然而,动态语言更易于使用还有一个更根本的原因。这是一个深刻的想法,称为鸭子类型。上面的一些评论是指鸭子打字,但请花时间思考鸭子打字是什么。这是一种完全不同的看待世界的方式。与 Java 和 C++ 等语言不兼容的 View 。

鸭子类型意味着您不会浪费时间定义什么是鸭子。由于不必正式定义您的对象,您可以节省大量时间和精力。获得正确的定义很难。看看我的这篇博客文章,我举了例子:Formal definitions are less useful than you think

事实证明,鸭子打字非常有用。 "Must Ignore" principle in XML是什么使 XML 在网络上如此重要和有用。但这只是鸭子打字的一个实例。

另一种表达鸭子打字的方式是网络口头禅“严格发送,慷慨接收”。这也是一个非常基本的想法。

最后,您可能想回到我的一篇长博文,我在其中解释了鸭子打字以及它与 AI 和建模等事物的关系:Duck Typing, Artificial Intelligence and Philosophy

关于dynamic-languages - 你如何用动态语言进行不同的编程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/379128/

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