用于元编程的 Python 与 Ruby

标签 python ruby lisp metaprogramming

我目前主要是 D程序员,并希望在我的工具箱中添加另一种语言,最好是支持元编程黑客的语言,而这种黑客技术无法用像 D 这样的静态编译语言来完成。

我已经阅读了一点 Lisp,我很想找到一种语言,它允许 Lisp 所做的一些很酷的事情,但没有 Lisp 的奇怪语法等。我不想引发一场语言之战,而且我确信 Ruby 和 Python 都有各自的取舍,所以我将列出对我个人而言重要的内容。请告诉我 Ruby、Python 或其他语言是否最适合我。

重要:

  1. 良好的元编程。能够在运行时创建类、方法、函数等。最好是代码和数据之间的最小区别,Lisp 风格。
  2. 优美、简洁、合理的语法和一致、直观的语义。基本上是一种经过深思熟虑、使用起来很有趣的现代语言。
  3. 多种范式。没有一种范式适用于每个项目,甚至是项目中的每个小子问题。
  4. 一种有趣的语言,它实际上会影响人们对编程的看法。

有些重要:

  1. 性能。如果性能不错就好了,但是当性能是真正的优先事项时,我会改用 D。
  2. 有据可查。

不重要:

  1. 社区规模、图书馆可用性等。这些都不是语言本身的特征,而且都可以很快改变。
  2. 职位空缺。我不是一个全职的专业程序员。我是一名研究生,编程与我的研究密切相关。
  3. 主要针对由一百万个代码猿开发的大型项目设计的任何功能。

最佳答案

I've read up on Lisp a little and I would love to find a language that allows some of the cool stuff that Lisp does, but without the strange syntax, etc. of Lisp.

我们都不会。

minimal distinction between code and data, Lisp style

可悲的是,代码和数据之间的最小区别以及“奇怪”的语法是彼此的结果。

如果您想要易于阅读的语法,那么您有 Python。但是,代码没有在任何常用的内置数据结构中表示。它失败了——就像大多数语言一样——在你的“重要”列表的第 1 项中。这使得提供有用的帮助变得困难。

你不能拥有一切。请记住,您不是第一个有这种想法的人。如果存在类似您理想语言的东西,我们都会使用它。由于现实世界达不到您的理想,您将不得不重新确定您的愿望 list 的优先级。 “重要”部分必须重新排列,以识别对您而言真正重要的内容。

关于用于元编程的 Python 与 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/144661/

相关文章:

ruby - 无法将哈希表中的符号转换为整数

xml - 在 common lisp 中处理 http 请求和 xml

mysql - 相关元素的 ActiveRecord 查询

Ruby - 命名约定 - 类/模块名称中首字母缩略词的字母大小写?

lisp - 为什么我在 Elisp 中索引列表时遇到问题?

concurrency - Common Lisp 并行编程

python - 为什么这是错误的? `SomeClass.method is SomeClass.method`

python - 子进程和额外的参数

Python序列化词法闭包?

python - 通过python确认当前的电源计划