读者来信
很多人向我询问关于 Python 以及我对 Learning Python 的评论。为了回答他们的问题以及那些没有提问的人的问题,我起草了这个回复。
首先,关于这本书。它显然是由一位一直在教人们 Python 的人编写的。我会说读者对象是经验丰富的程序员,至少对我来说,这很好。
现在,为什么要选择 Python?它是“未来的语言”吗?我认为是。它在很多领域都很有意义。让我尝试解释一下。
易于学习:Python 是一种小型语言。也就是说,它的语法很简单,命令数量也相当少。
强大:Python 的强大之处(很像 C 语言)来自于它的库。虽然语言和语法并不复杂,但调用正确的函数来完成任务才是使其强大的原因。有很多可用的函数,但您可以根据需要学习它们。例如,如果您想进行 CGI 编程,可用的函数功能强大且分组良好,方便您查找。
由于是解释型语言,您可以快速尝试各种操作。
Python 是可扩展的:如果您需要添加某些内容或需要快速执行某些操作,您可以轻松添加代码来完成。对于需要快速执行的任务,使用 C 语言是合理的。
Python 不会教你任何坏习惯。语法中几乎没有“陷阱”,而且我还没有发现需要编写巧妙的变通方法来处理语言限制的情况。
Python 是面向对象的,但方式很好。我曾涉猎 C++,但从未真正做过面向对象编程。Python 鼓励模块化和面向对象编程,但并不强制要求。因此,您可以为一次性问题编写快速而粗糙的解决方案,但也可以以易于阅读、易于调试、易于维护的方式为大型问题编写解决方案。我将此与 Perl 进行对比,Perl 鼓励您使用快速而粗糙的解决方案,并且必须特意创建面向对象的解决方案。
Perl 是包括 tr、sed 和 awk 以及 shell 脚本在内的各种 UNIX 工具的逻辑延伸。虽然 Perl 对于任何使用过这些工具的人来说似乎很熟悉,但对于不熟悉这些工具的人来说,考虑 Perl 是没有意义的。您甚至无法定义 Perl 的语法,因为它实际上没有任何语法。另一方面,Python 从形式语言的角度和编程的角度来看都设计得很好。
我希望这有助于解释 Python 在您生活中的定位或可能定位。
—Phil Hughes phil@ssc.com
我一直在阅读您对 Linus 的采访,同时等待我们的互联网连接恢复——非常非常有趣的阅读。我不知道 Linux 世界是否对这种“人文趣味”的东西感兴趣,但我知道听到这个普通人谈论自己,他的成长经历,他的平凡生活等等,而不仅仅是通常的 Linux 宣传,Linus 似乎在避免这些,谢天谢地,这很棒。这可能是因为他不像其他人那样对此感到敬畏,因为是他把它组合起来的——他真是太谦虚了。您真是令人愉快的记者。
—David Penn dvdpenn@yahoo.com
非常感谢 Linux Journal 十月号 Jason Kroll 撰写的精彩短文“愚蠢的编程技巧”。它把我带入了 SVGAlib 的世界。我很喜欢他的 shapes.c 程序,甚至自己修改它也很有趣。
在过去的一个月里,我一直在尝试其他东西,但一直急切地等待着您在上个月的文章中提到的更令人印象深刻的东西。唉,当我翻阅本月新鲜出炉的 LJ 时,我找不到任何关于控制台图形的提及。
您计划在未来继续刊登这篇文章吗?
—Patrick A. Kirchner kirchner@csd.uwm.edu
“技巧”一文在十一月号的排版中不小心遗漏了。它在十二月号恢复,并将继续作为 upFRONT 的常规专题 —编辑
在阅读了 1999 年 11 月号中对 Linus 的采访后,我们注意到微软创造了一类新的计算分析问题。
NP 完备性:所有非确定性多项式问题都是等价的,我们知道我们可以解决所有问题,但不知道需要多长时间。
NT 完备性:所有 Windows NT 机器本质上都是相似的,我们知道它们最终都会崩溃;问题是,它们多久会崩溃,以及崩溃时会带走哪些数据?
感谢你们制作了一本关于世界级现象的世界级杂志。
—Phil Salkie, pvs@howman.com Jennifer Hamilton, jhamilto@umdnj.edu
啊哈,笔误有时也很有趣。对于错误感到抱歉,但不为笑声感到抱歉。感谢来信 —编辑
在第 67 期的“最佳技术支持”中,Sam Hart 说他担心安全问题,因为普通用户可以读取 lilo.conf 文件并从中获取 LILO 密码。两个建议是将 lilo.conf 放在软盘上(合理)或修改 LILO 的源代码(如果您想做比必要更多的工作,也可以)。
最简单的解决方案是在 lilo.conf 及其目录上使用 chmod。事实上,LILO 文档也是这样说的。
—Michael James Obrien mobrien@unm.edu
在十一月的文章“使用 Java Servlet 进行数据库连接”中,Bruce McDonald 谈到了 IBM 的 Servlet Express。该产品现在被称为 WebSphere,并且已经有一段时间了。WebSphere 支持最新版本的 Apache 和 IBM HTTP Server。如果您在 Windows NT 平台上,它甚至支持更多的 Web 服务器。看来您关于 IBM 产品的信息不是最新的。请访问 http://www.software.ibm.com/ 了解更多信息。
—Jakob Carstensen jakobc@us.ibm.com