使用宏的Lisp开发比Python开发更快?..

我一直在阅读心爱的保罗·格雷厄姆(Paul Graham)的"黑客和画家". 他声称他使用LISP和很多 宏. 我好奇的是LISP 固有的速度更快地开发复杂的应用程序.如果您 可以使用宏来创建自己的语言 很有优势... 我意识到Python的操作员超载和OOP,所以我不确定. 有任何想法吗? 有 *证据 *一种或另一种方式吗? 谢谢! 克里斯

# 回答1

如果那意味着我必须学习每种新的编程语言 我想将次要修复/自定义应用程序应用于:不是一个好主意. 可能不仅适用于像我这样的休闲黑客,还适合 当前任大师失去兴趣时,项目的维护阶段 和/或就业. - - 本杰明·尼曼 电子邮件:粉红色在odahoda dot de www:http://www.odahoda.de/
# 回答2

很难说. LISP也有OOP,Google可以关闭. 恕我直言,操作员超载是要避免的,就像 如果您需要快速开发,请避免静态打字 时间表等. LISP有Python没有的一件事:LISP代码是LISP数据. 在这方面进行比较LISP和Python的详尽研究将是 欢迎.
# 回答3

sexpewhede@spawar.navy.mil写道: 好吧,他的VIAWEB公司成立于95年左右,对吗? 所以他可能只是 使用LISP是因为Python还不是众所周知. ;-) IMO Python对LISP的优势之一是它与其他许多 技术. 应该记住的是,格雷厄姆在Viawb中使用LISP在 构建Web应用程序,以便LISP与"外界"的主要链接 是文件系统和apache. 他们没有使用数据库,Apache必须是 修改以与LISP合作.
# 回答4

大卫 那也是我想的. 这是有道理的,但我不确定. 仍然 不是. 问题是诸如" Lang最快开发的问题"之类的问题 在?' 很难确切地回答. 克里斯
# 回答5

那是因为答案取决于许多上下文 问题域以及谁是程序员. 真的,这是不可能的 要回答的问题. 用两个测量两个不同的程序员 不同的语言会给您带来无用的结果,因为您无法确保 这两个程序员同样能力. 使用同一程序员进行 两种不同语言的同样问题,因为她 会第一次从中学习,不可避免地有优势 在第二次. 当然,使用两个不同的问题是 也毫无意义. 然而,最终,这个问题不需要答案,因为 发展"不是唯一甚至最重要的因素 发展. 考虑到可维护性,质量的问题 代码,性能等 使这个问题是一个没有有意义答案的宗教问题, 不 需要以简单的方式回答. 对于 *me *,Python已被证明是开发最快的语言,因此 远,但是很有可能将来想象另一种语言 我可能会学会哪个是 - 对我来说 - 甚至更快,至少 对于某些类型的问题. (但是呢?:-)) -peter
# 回答6

" se xhedydeyde@spawar.navy.mil" 写信: - - 柯克·裁员 "汤米·希尔弗格(Tommy Hilfinger Ads)的正方形院长每天都使 存在的大屠杀. " se xhedeydedydeydeythy@spawar.mil" 写道:大卫也是我的想法. 这是有道理的,但我不确定. 还是不是. 问题是诸如" Lang最快发展?"之类的问题? 很难确切地回答. 真的. 您可能首先要问哪个让您写最少的LOC, 正如70年代的研究表明,程序员倾向于写 无论选择什么语言,相同的LOC/DAY数量. LOC测量的问题是生产力最高的日子 是您重构并消除一千个位置的地方. 那 有点抛弃了整个事情. <迈克 - - Mike Meyer http://www.mired.org/home/mwm/ 独立www/perforce/freebsd/unix顾问,电子邮件以获取更多信息.
# 回答7

sexpewhede@spawar.navy.mil写道: 使用LISP或Forth,总体程序员具有无限的权力,并且 表现力. 有了Python,即使是一个普通的人也可以伸手去拿 星星. 雷蒙德
# 回答8

FWIW,Google对该问题的回答是C ++,Java和Python. 为了 任何给定的问题,这三个问题都是可以接受的. 每个程序员或 工程团队根据他或她的语言做出决定 专业知识.* 雷蒙德 *来源:Greg Stein的主题演讲地址,位于Pycon2005.
# 回答9

因此,LISP适合非常好的程序员,而Python适合平庸 程序员? 此致, fuzzy http://www.voidspace.org.uk/python
# 回答10

Fuzzyman: 对于平庸的程序员,Python也 *也 *. 我认为这是一个 力量,不是弱点. Michele Simionato
# 回答11

2005年7月6日00:30:34 -0700,Raymond Hettinger 写道: +1 qotw
# 回答12

很公平 ;-) 我想发现LISP的力量,但我的力量有限 是时候沉入编程...所以也许我最好把我的 能量和想象力进入Python. *一种语言是一种表达的媒介.* - 保罗·格雷厄姆(Paul Graham) 一切顺利. fuzzy http://www.voidspace.org.uk/python
# 回答13

OP 2005-07-06,Michele Simionato Schreef
# 回答14

您不会说开发"宏"需要多长时间 您应该看到哪种经验丰富的Zope/Plo网站 NE 程序员可以在几分钟内鞭打. 编程的加速一直是关于"标准的 图书馆"(不仅是Python的标准图书馆,还包括您的 标准库). 我说的是稳定,调试, 记录的宏,功能和类别可以 用于快速执行非常复杂的任务. 我发现了这个很好 30多年前,教导了许多年轻的程序员和 大学生这个非常重要的"技巧". 当你写的时候 您最终会遇到常见的例程的软件 在几乎每个软件包(记录,阅读)中使用 从CSV文件,日期/时间操作,...). 如果你有很多 其中可以在您的库中进行选择,您将制作代码 比每次开始的速度要快10-100倍 代码将更加可靠,因为您是 利用长期内调试的稳定代码 时间. 您还将生产更多的代码 "可维护". 在图书馆例程中发现了一个错误? 修理它 然后将其固定在现有程序的100(或1000)中 使用它. -larry bates se xhe ethe@spawar.navy.mil写道:( _@_) Larry Bates 写道: Zope/Plone(作为框架)完全代表DSLS人的种类 已经与LISP建造了数十年. 巨人的肩膀,所有人 那. LISP也有Web应用程序框架:罕见的Web和BKNR, 命名两个. zac
# 回答15

在2005年7月5日的周二,迈克·迈耶(Mike Meyer)写道:这也是我的想法. 这是有道理的,但我不确定. 还是不是. 问题是诸如" Lang最快发展?"之类的问题? 很难确切地回答. 真的. 您可能会首先询问哪个让您编写最少的LOC,因为在70年代的研究表明,无论选择的语言如何,程序员都倾向于编写相同数量的LOC/DAY. LOC测量的问题在于,生产力最高的日子是您重构并消除一千个LOC的日子. 这使整个事情丢掉了. 如:http://www.folklore.org/storyview.py...es_of_code.txt 因此,也许真正的问题是哪种语言允许您删除 代码行最快. 汤姆 - - 查找色情杏子
# 回答16

汤姆·安德森(Tom Anderson)写道: 不,那么问题变成"哪种语言允许您快速 编写许多代码行,然后必须删除". 当然,如果可以的话,手动编写这些行会很愚蠢 自动化过程. 毕竟,不需要代码行,所以 他们真的不必做任何事情,对吗? 因此,自然组装将是获得最高性能的正确方法 从您的自动代码编写程序中出发. 因此,大会显然是最快的发展语言. -peter
# 回答17

[Raymond Hettinger] 使用LISP或Forth,总体程序员具有无限的力量和表现力. 有了Python,即使是一个普通的人也可以伸手去拿星星. 几年前,我很多 在计划和Python之间犹豫不决 日常编程语言. 当时我的感觉是该方案是一种非常快的语言 进入,在其中可以干净,紧凑地实施新概念. 也许python的写作要慢一些,但这是由 事实,python在以后的维护方面或 许多人必须分享大量资源的工作. python内部有些沉重和复杂性,方案是 比较纯净,更简单. 在光明的一面,Python有一个不错的 和全面的图书馆,以及一个有趣的用户社区. 这些 可能会带来大部分差异. - - françoisPinardhttp://pinard.progiciels-bpi.ca
# 回答18

雷蒙德·赫廷格(Raymond Hettinger)写道: FWIW,Google对该问题的回答是C ++,Java和Python. 对于任何给定的问题,这三个中的任何一个都是可以接受的. 每个程序员或工程团队都可以根据其语言专业知识来决定. 实际上,Google对这个问题的回答是" ilog" cplex",其次是视觉基本,英语作为第二语言,PHP和 " Holt Software Associates". ;-) http://www.google.com/search?hl = en&q...= google+Search 鉴于这一发现,我不确定我应该给Google带来很多重量 搜索结果了...
# 回答19

在2005年7月6日星期三08:27:55 -0500, Larry Bates 写道: [可重复使用,稳定,调试和记录的库是一个很好的 事物 ] 绝对地. 我时代的两个相关故事,担任软件工程师 大型电信公司. 这两个故事都始于年度仪式 管理层告诉我们,代码重用是软件的银色子弹 发展. 1.我们回答说,我们需要大约5个日历年才能设计,开发, 调试,并记录足够的图书馆来支付努力. 然后 管理层会告诉我们5年太长了,该项目(S) 会被报废. 我在那里工作了12年,但仍在看 新员工在我离开时就链接的列表代码和构建工具进行了争论. 2.此后(通常在同一演讲中),管理层将 还要告诉我们,他们将通过(a)loc来衡量我们的生产率 书面而不是重复使用,以及(b)新想法和代码的数量 我们提交了专利. 没有更好的示例混合消息. (更不用说我们在C和C ++中进行了全部或大多数编码,并且 每个部门和每个项目都有自己的确定方法 一系列代码是什么样的,但这甚至是较远的主题....) 问候, 担 - - 丹·索默斯(Dan Sommers)
# 回答20

" se xhedydeyde@spawar.navy.mil" 写信: 有很多证据,但是与任何软件生产率一样 问题,主要是轶事. 艰难的科学证据 事物基本上是不存在的,而这些事物的经济学 几乎可以保证它将保持这种状态. - - ---------------------------------------------------- 1.最近有人说,好的Lisp宏基本上是 可执行伪代码. 我认为这完全是正确的 并且是对所有内容的很好的"声音咬合"蒸馏 关于. 2.或者,从另一个角度出发,您不必弄清楚如何 将一堆无关的应用拼凑在一起(Lexers, 解析器生成器,代码生成器等) 建造. /乔恩 - - 'j' - a n t h o n y在罗密欧/charley/november com
# 回答21

弗朗索瓦·皮纳德(FrançoisPinard)写道: 说得好. 写作速度不是一切; 如果是,APL和计划 赢(以及用于弦乐处理的邪恶perl). - 斯科特·戴维·丹尼尔斯(Scott David Daniels) 你好. 而不是列出差异. 共同的LISP和Python共同: 1.动态键入. 2.齿轮收藏 3.充满电的数据结构 4.好的对象系统. (在这里,LISP的人通常声称关闭 是最强大的对象系统...但是我认为Python和Lisp是 与其他人相当. 他们是 彼此不同. 我认为没有拖把的关闭 下. 拖把代表元对象协议...一种没有的东西 已在ANSI LISP标准中指定,但大多数 实施) 5.辅导和类型作为头等对象 6.相互作用的发展. 差异: 1.宏:宏非常强大,双边剑. 不 相信任何人(无论他们赞美他们还是憎恶他们). 去学习 他们自己决定. 2.可读性:通常认为Python更可读性 比任何其他语言. (LISP不是特别不可读). 真正找出哪个更好的方法是学习两者, 决定自己. 我个人喜欢Python,Lisp和c. 现在C唤起了两者的嘲笑 Python和Lisp的人有时也是不正确的. rahul sexexheide@spawar.navy.mil写道:( _@_) 罗科·莫雷蒂(Rocco Moretti)写道: 我们使用这个. 这是库 /命令行工具(不是语言) 进行优化 - 线性编程,二次编程, 混合组件编程等.非常酷,非常非常可怕.
# 回答22

???? 几乎听起来像是种族主义的评论 - 对不起,如果我误解了 Antoon Pardon写道: 对于平庸的程序员,Python也 *也 *. 我认为这是一种力量,而不是弱点. 但是有时候我给人的印象人们希望它发展起来,因此仅适用于平庸的程序员.
# 回答23

OP 2005-07-07,Philippe C. Martin Schreef :但是有时候我给人的印象人们希望它不断发展,因此仅适用于平庸的程序员.
# 回答24

" jayessay" 在消息中写道 新闻:M3 ************@rigel.goldenthreadtech.com ... 几年前,我指出Python读过类似可执行的伪代码. 我仍然认为这是正确的. 谷歌搜索,我发现一些人的创造者 我从未听说过 几年前,关于 *他们的语言的话也同样. 我希望 网页,例如新组帖子,都已过时,因此可以更好地追踪 这种用法的历史. Terry J. Reedy
# 回答25

" Antoon Pardon" 在消息中写道 新闻:SL ************************************************************** 真的. 但是这些论点并没有阻止专家级功能 元类,装饰器和(在2.5中)上下文管理块 (带有块). tjr
# 回答26

特里·里迪(Terry Reedy)写道:几年前,我说python读起来像可执行的伪代码. 我仍然认为这是正确的. 谷歌搜索,我发现几年前我从未听说过的关于 *他们 *语言的同样的事情的创造者. 我希望网页像NewGroup帖子一样,可以过时,以便更好地追踪此类用法的历史. 浏览http://web.archive.org可能会有所帮助. - - robert kern rkdey@ucsd.edu "在地狱的田野里,草长得很高 是允许死亡的梦的坟墓." - 理查德·哈特(Richard Harter)
# 回答27

" Terry Reedy" 写道:几年前,我说Python像可执行的伪代码一样阅读. 我仍然认为这是正确的. 谷歌搜索,我发现几年前我从未听说过的关于 *他们 *语言的同样的事情的创造者. 我希望网页像NewGroup帖子一样,可以过时,以便更好地追踪此类用法的历史. 在讨论的上下文中,想法是伪代码是_direct_ 匹配_domain_中的任务的描述. 如果您的域 是"算法"之类的,那么我会同意Python会作为 一种合理的伪语言,否则没有. 太低了 等级. 与基本CL相同. 它的水平太低. /乔恩 - - 'j' - a n t h o n y在罗密欧/charley/november com
# 回答28

" Antoon Pardon" 在消息中写道 新闻:SL ************************************************************** 除非您认为Python已经是一种只有一种语言 对中等的程序员有用,那么这是有点小的. 那些是 争论是反对 *添加 *功能的提出的,而不是为了删除 他们(至少,我认为我没有在正在进行的 RESUSION RE MAP/FILFER/RELAD/LAMBDA). 还是您在争辩说Python 由于提出了新功能,并且会以某种方式变得不那么有用 被拒绝? <迈克 - - Mike Meyer http://www.mired.org/home/mwm/ 独立www/perforce/freebsd/unix顾问,电子邮件以获取更多信息. (} 是的,保罗是后现代的英雄 每天和每个程序: "经验丰富的LISP程序员对他们的程序进行了不同的划分. 以及自上而下的设计,它们遵循一个可以称为的原则 自下而上的设计 - 更改语言以适合问题. 在LISP, 您不只是写下程序 哇,你也 建立对您程序的语言. 当您编写程序时 您可能会认为"我希望LISP拥有这样的操作员." 所以你去 并写. 之后,您意识到使用新操作员会 简化程序的另一部分的设计,依此类推. 语 和程序一起发展." http://www.paulgraham.com/progbot.html 备注:关于第四的情况可能会同样. 对于某些"伟大的黑客"而言,这可能是一次很棒的自我经历 对于曾经与模块化标准库一起工作的其他人和 认为语言和应用的边界应该是 以某种方式固定以启用这些. 凯
# 回答29

" Kay Schluehr" 写道: - - 柯克·裁员 "汤米·希尔弗格(Tommy Hilfinger Ads)的正方形院长每天都使 存在的大屠杀. Kirk Job Sluder Schrieb: 老实说,我不明白什么是"特定领域的抽象" 可能? 如果抽象不是抽象的好处 从特定领域的特定内容中抽象? 宏的主要优点是您可以创建具有功能的抽象,而功能不容易被描述为函数或类定义. 只要宏用于创建新的语言功能,例如 像关闭此技术这样的对象系统可能是完全合理的 语言开发人员(!),但我仍然认为这是一个坏主意 混淆了语言发展和应用程序的发展 似乎是保罗·格雷厄姆(Paul Graham)最喜欢的编程风格. 在 另一方面将语言发展视为某个应用程序 域我发现它曾经以某种方式达到的想法没有错 不应在任意中改变的成熟产品的状态 出于大型用户社区的目的. 凯
# 回答30

" Kay Schluehr" 写道: 高级语言的通常趋势是抽象 算法细节到特定领域的应用中. 因此,例如 而不是编写一块代码来处理正则表达式 '[a-za-z]+,然后为案例的另一个代码块,'a | b | c',我们 有一个正则表达式库,该库包装算法和 实现详细信息到接口. Python标准库 基本上是此类抽象的集合. 通常在python中 将字符串作为对象而不是作为字节值数量 解释为位于特定记忆的语言字符 像您在c中一样的地址. 面向对象的编程是关于创建特定域的 数据抽象. 这使我们能够谈论Guis作为widgits 除了填充屏幕上的像素外,帧. 或说话 关于电子邮件作为数据集,将存储在 某些格式,无需进行类似SED的文本处理. 只要宏用于创建新的语言功能SU CH作为像关闭此技术的对象系统,对于语言开发人员来说可能是完全合理的(!),但我仍然认为这是混乱语言开发和应用程序开发的一个坏主意,这似乎是Paul Graham最喜欢的编程风格. 另一方面,将语言开发视为某个应用程序域,我发现它曾经达到某种成熟产品状态的想法并没有错,该状态不应以大型用户社区为名以任意方式更改. 好吧,在这一点上,常见的LISP已被正式标准化,因此 更改核心标准将非常困难. 实际上, 此时强烈反对重新打开标准过程 关于大多数需要做的事情的印象,可以是 通过开发图书馆完成. 所以我认为CL是一个成熟的 产品不会以任意方式改变. 但是,从我看来,Python的大量发展涉及 以类,功能和 实例方法以及与C和C ++库的接口. 我会 认为这是Python作为一种语言的核心优势之一, 事实,我们只限于内置功能和标准 如果我们选择成为库. 例如,每当我使用新的 数据源,我通常最终创建一个类来描述的类型 我从该数据源获得的记录. 还有一些功能 我发现自己在程序中多次重复. 宏只是写东西一次并使用它的另一种方式 再次. 凯 - - 柯克·裁员 "汤米·希尔弗格(Tommy Hilfinger Ads)的正方形院长每天都使 存在的大屠杀. 在消息中写道 新闻:11 **************************@g49g2000cwa.googlegroups.com ...大卫,这也是我想的. 这是有道理的,但我不确定. 还是不是. 问题是诸如" Lang最快发展?"之类的问题? 很难确切地回答. 不,这不对. 答案始终是您最喜欢的任何语言,并且最了解最好的语言. 这是一个多余的声明,因为如果您喜欢一种语言,您 经常使用它并学习得很好. 任何特定语言的亲密知识 *远 *更重要 比人们通常会争论的句法和语义魔术. 所以 - 问题真正归结为哪种语言 最佳平衡(易于学习!)和能力. 忍受 但是请注意,如果语言牺牲了能力,而是赞成 容易,然后乐趣过早用完了:-) 托马斯·巴特库斯

标签: python

添加新评论