|
CP4E 笔录:
|
|
先从我身上这件 Python 汗衫说起。 这件衣服是我的兄弟所设计的。 他同时也设计了其他的 Python 衣物。
他是做平面设计的而并不是一名程式员, 但他学会了 Python 并介绍给一群设计人员。
这些人很多时间都在使用电脑但并不是编程人员, 他们发现 Python 可以很好地用在他们日常的工作之上。
|
|
言归正传。 CP4E (Computer Programming For Everybody) 是一项研究计划。 它的课题是一般人使用编程语言的可行性。 普通人都觉得编写程式是很难的事。 但事实上只要你有合适的工具, 编写程式并不比阅读, 书写更难。
|
|
许多人都同意将来大部份办公桌上都会置有一台电脑, 我认为一般人掌握了编程技巧比单纯地拼揍基本元件更能有效地发挥电脑的功能。 我遇过一位计程车司机, 他自己弄了一套电子地图系统来方便在闹市里找行车路线。 他使用的只是普通的手提电脑和卫星定位系统, 加起来约 250 美金。 这和 Python 的关系不大, 但证实了掌握编程的力量所带来的创造力。 在不久的将来, 具备类似电脑功能的产品将无处不在: 口袋中、 桌子上、 电玩、 冰箱甚至烤箱中。 大部份这样的产品是由专家所设计的。 然而无论多好的专家设计也不可能完全满足用户的愿望 (更多时是用户的古怪狂想)。 目前许多程式提供的所谓选单、 设定、 对话方块其实只是在假装提供贴心的设计。 这些被叫做小精灵的东西往往是在帮倒忙。 我相信让下游用家得到一定的技术才是更好的解决之法, 让他们自己来制作自己想要的工具, 这才是真正的个人化。 真正的用户友善并不只局限在用户友善的介面上, 也并不只局限在各种功能的设计上, 它应包括一个友善的设定环境使用户感到自由、 自在、 自得其中。
|
|
总的来说, 我认为创造是一件好事, 而提供进行创造的工具是很重要的。
|
|
接下来我们来看看, 编程是否真是很因难。 以目前的情况来看的确如此。 就算是行内人, 也会经常写出很糗的程式码。 但这反映的只是现在的编程工具太难了, 而不是编程自身的概念。
|
|
拿学校来做例子。 以前我们教的是 Pascal , 后来改成了 C++, 为的是追求摩登、 为的是把它加到自己的履历表中。 但教学的结果郤是很不想理的, 可悲的是有很多本来对电脑程式有抱有兴趣的学生因为 C++ 太难而放弃了学科。
|
|
C++ 的复杂是出名的, 有时候连老师也会被弄糊涂。 就算在班级中教授的只是 C++ 的部份子集, 人们发现授课的重心往往转移到了解该语言的一些特性而不是去了解一般性、 通适的编程概念。
|
|
有人会说 Java。 在我看来, 它仍是太难了。 一个很简单的 "Hello World !" 程式要引入一堆标头档, 利用数个深奥的关键字。
这些关键字、 标头档所涉的理论要到课程的后期才会加以解释。 Java 并非不好, 但作为初学者的入门教育来说它并不符合由浅入深的先后次序。
|
|
有人建议回到基本的入门软件去。 当我们仔细审视手头的软件时发现它们都名符其实只能入门。 这些语言的用处除了可以写几个简陋寒酸的例子外在真实世界一无所用。
|
|
我们的目标是令 Python 成为每个学编程的人的第一次接触的语言。 我们不必让每个人都懂 c++, 但每个人都应该有起码的编程概念。
|
我们要建立新一代的编程工具, 开设新的课程, 编写新的教育方案。 在这一切中, Python 的语言核心是一个正确的开始。 它所久缺的只是一个完整的综合开发环境。 为让大家更好的理解 Python 的功能, 下面有一些示范。 它们将带出以下 Python 的几个主题:
- 物件导向/面向对象/概念为本
- 高阶
- 即译运行
- 快速原型开发
- 和 Perl / PHP 相比较
- 可利用 c / c++ 进行扩展
- 可整合大型的系统
|
|
“作者示范了 range(), def function(), large integer, class, list, dict{} 等的使用”
|
为甚么 Python 适合于教授编程?
- 它是继承自 ABC: 在 80 年代由研究人员提出。 它被设计来做教育用途。 各种编程的概念如变量、 常量、 本地、 全局、 类别等都在该语言中清晰地呈现出来。
- 编写格式: Python 程式要求以缩排来定不同的码区。 没有 C / C++ / Perl / PHP / Java 中的花括号使它的程式变得更容易看。 这样编排和多数编程人员的习惯一致。
- 可扩允: 可用于解决真正的问题、 现实的问题。
- 跨平台: 在操作系统上 Python 可运行于 Solaris / IRIX / Mac / AIX / RISCOS / OS2 / BeOs / Windows / Palm / Windes CE 甚至 Cray 之上。 在软体平台上, Python 实现了 C / Java (Jython) / .NET / Browser Plugin 等的实作。
- Python 被设计成一整套的工具箱。 各种档案、 网络、 软硬件资讯、 主从架构、 记忆体管理、 多媒体等的操作全部可以由单一语言所调用。 教起来更加统一, 前后呼应。 所有学到的知识和技巧可以不断累积, 组合。
- Python 是即译执行的。 这免去了编译的过程。 同时 Python 有互动的环境和强大的容错除虫功能。 这些对于学习新的概念非常有利。
|
|
Python 可以满足学术界的要求。 它文句结构清晰易明, 教师可以专注于理论知识。 教授赋值条件、 对象继承、 函式库重用的重要性而不是忙着替学生除错。 学会 Python 也可以为未来做准备。 和 Logo 相比, Logo 也是很简单易教的。 Logo 也可以让你明白变数、 回圈和函数的道理, 但你学到的技巧在现实世界找不到用处。 Python 则不然, 它有着近 20 种的内建数据类型, 用户可以在完全不知情之下自由的使用, 这符合学术上的优雅。 Python 程式看上去就像是描述算法的类程式码, 然而它是可以执行的!
|
Python 有实际的用处。 人们用它来测试软体、 开发大型系统、 建造原型。 它很适合用来推动 CP4E 计划:
目的: 把创造的力量带给终端用户。
计划:
- 在试点学校教授 Python
- 在大学中教授 Python
- 在社会上公开教授 Python
|
|
Python 的角色:
教物件的概念、 教编程的风格、 教常用的算法
提供有趣的范例, 如好玩的程式
提供具吸引力的范例, 如用很短的程式作奇妙的事, 使编程看来举重若轻
提供互动环境, 用户可以即时知道错处发生的地方
提供自省的功能, 这使调控变得容易
|
现场问答:
|
问: PHP4 现在已推出了, 请问你会怎样比较两者的速度?
答: PHP4 是很快的语言。 它用在网站上是很好的。 但我从来没有为 Python 的速度担心过。 事实上有些利用 Python 的大型网站它们也表现的很好。
不过我想提出的是, 在任何埸合, 用订造的工具来做特定的工作其效率必然是较高的。
然而 Python 所专注的是较一般性的应用, 它的对象比 PHP 更广范, 它专注在普遍的电脑应用中如何提升生产力。
|
问: 你如何看 Python 和 VisualBasic ?
答: VB 的介面是超一流的。 但是 Python 的语言是超一流的。 从程式语言的角度来看 VB 要逊多了。 VB 是单平台的、 封闭的、 很难扩允的。 除了它的介面外, Python 在任何方面都要领先。 但可幸的是 Python 单凭其语言本身的典雅美丽已可和 VB 相较高下。 将来 Python 有了好的综合开发介面情况会更加明显: 介面是很容易进步的, 但是语言本身则很难更改其框架。
|
|
** 完 **
|
原出处: http://technetcast.ddj.com/tnc_play_stream.html?stream_id=240