《Python is the new BASIC》from Al Sweigart's personal blog - 中译版

Python是新的BASIC(Python is the new BASIC)

这是学习如何对计算机进行编程的基本问题:

public class Hello
{
    public static void main(String[] args)
    {
        System.out.println("Hello World!");
    }
}

上面是 Java 的 Hello World 程序,可以说是最流行的编程语言之一。在上述三行中封装了不同的几个概念,从静态函数到返回类型到 stdout 以及整个面向对象的编程。

10 PRINT “Hello World!”

一行,很简单。早在 Commodore 64 的时代,简单的软件是可以原谅的,这是可以预料的的。计算机编程可以由孩子和普通人的期望仍然存在。而且 BASIC 也配备在大多数家用电脑上。编写简单的程序和游戏时拥有计算机的很大一部分(或者至少是更大的部分)。

如今,随着物理引擎,3D图像,MMORPG 和专业艺术工作(美工)的出现,这种期望已经消失。使用 ASCII 艺术的纯文字游戏被认为已过时,BASIC 的替代品大多数都是拖放、点击界面的游戏套件,将多媒体元素绑定到游戏中,这些游戏大多遵循同样的风格。在所有的图形、菜单和向导的背后,编程的艺术已经失去了。

BASIC 的替代品充其量顶多是笨拙的。我们如何为初学者程序员引入花哨的 GUI,图形动画和爆炸?Visual Basic?HTML/JavaScript?一些随机的,非开源的“4 kidz”编程语言?(它的公司将在三年后弃牌)不!!!你不会是认真的吧!!!

前期复杂度大(BIG Complexity Up Front)的整个方法完全失败了。忘了类(classes)和接口(interfaces)。忘了图形用户界面。忘了剪贴画和火焰头颅的动态GIF。答案一直在 10 PRINT “Hello World!” 行中。我们需要与 C64 一代相同的旧式编程:简单的文本输入和输出,通过逐行编程创建。它通过相关的文本输入/输出和程序处理的数据值来弥补图形复杂性所缺乏的。

当然,即使你确实找到了 Qbasic 4.5 的盗版版本,但这并不意味着你应该使用它。GOTO 被认为是有害的,而 BASIC 蹩脚的IDE 和局限性是从技术角度来看已经过时。那么,什么是可以取代 BASIC ?

 

Python 是新的 BASIC

Python 是完美的继承者。Python 有一个温和的学习曲线,可能的语法,而且 HELLO WORLD 只有一行。“功能齐全(batteries included)”方面为高级学生提供了足够的扩展空间,拥有稳固的社区和第三方库。Python 可以从简单的文本输入/输出开始,然后逐步进行面向对象的编程,然后结合 GUI 工具包和网络编程。Python,在教育背景下,可以扩展。然而,Python 是 Google,NASA 等专业使用的严肃语言。

其他语言怎么样?

  1. Visual Basic 不是新的 BASIC 。奇怪的语法,GUI 设计器+编写代码的组合,仅限 Windows 平台,以及 VB 6 和 VB .Net 之间巨大的裂痕使得 Visual Basic 成为一个糟糕的候选者。
  2. HTML,CSS 和 JavaScript 不是新的 BASIC 。学习标记语言,DOM 体系结构和跨浏览器依赖性使得 DHTML(Dynamic HTML 的简称,就是动态的 html)是一个糟糕的候选人。
  3. PHP 不是新的 BASIC 。结合上面的 HTML/CSS/JavaScript 参数,并投入设置 Apache 和一个完全膨胀的命名空间(namespace)。PHP 是一个糟糕的候选人。
  4. Perl 不是新的 BASIC。对于系统管理员来说,这是一种很棒的语言,而不是初学者。Perl 将远远超过 Python 作为BASIC的替代品。做这件事的方法不止一种,而且大多数多是不可读的,除非你是那个人(The One),你可以清楚地看到金发、深发、红头发...
  5. Java 不是新的 BASIC。嘿,它比 C++ 更好,但这不是一个借口。Java 非常适合应用程序开发,但对学生而言并非如此。这种(99%)纯面向对象的初始学习曲线是巨大的,甚至大多数 Java 程序员都没有克服它(这就是为什么 Singleton 设计模式有这么多用处的原因。)
  6. Flash 和 ActionScript 不是新的 BASIC 。预先巨大的经济成本,专有格式以及 Visual Basic GUI 编辑器的许多相同问题是Flash 无法承受作为 Basic 的替代品。Photoshop 不是一种编程语言。
  7. Ruby 可能不是新的 BASIC。Ruby 和 Python 十分相似,我不能低估它,因为我不知道 Ruby。但是 Python 的社区和库比Ruby 的要广泛,因此对于初学者来说更好。

即时你更喜欢 GUI ,pyglet,pygame,wxPython 或者任何其他图形引擎或者 GUI 工具包也可以用。

 

20 GOTO 10

唉,在 BASIC 上演示游戏编程的经典书籍,如旧的 Atari 书籍早已不复存在。那么,一个9岁的电脑新手或极客在哪里学习Python 编程呢?你可以从几本书开始,但我想推上我的书。《Invent Your Own Computer Games with Python》是根据知识共享许可分发的免费书籍。与其他的 Python 编程书籍不同, IYOCGwP书名的缩写的每一章都提供了不同的游戏源代码,而不是教授编程原理和概念,并将应用程序交给读者,然后直接从示例中解释编程原理。所有的游戏都是基于文本的 ASCII 图形,最长的只有 400 行(包括空格)。在这个网站上可以看看 http://inventwithpython.com

我也在不断地寻求对这本书未来版本的反馈,所以如果你发现了什么或有一些建议/批评,请联系我。

再编辑:我想我说错了,当我说 Perl 是一个遥远的时刻。我认为如果 Perl 是一个遥远的时刻,那么Ruby将是一个更近的时刻。我不懂足够的 Ruby 可以下一个明确的 python战胜Ruby 的定论,我的无知并没有让编程语言变得糟糕。我要说的是,对于刚开始编程的人(和孩子)来说,重要的是有大量的文档和库可供利用。Python 在这个意义上击败了 Ruby(Perl 也打败了 Python,但我仍然不喜欢这个语法,不适合新手使用)。这三个都是很好的学习编程(远远超过 Java 或 C++),但我认为 Python 最终获胜。

再编辑:当我说 Python 是最新的 BASIC 时,我的意思是说它是一种恭维,可以说 Python 是成为非程序员学习编程语言的最佳选择。我并不是暗示 Python 是个不雅的混血儿。事实上,我在写这本书的时候发现,基本上复杂的任务在 Python 中要简单得多,而且没有意大利面代码(spaghetti code)。(wiki的释义,意大利面代码是一个贬义短语,用于非结构化和难以维护的源代码。意大利面代码可能是由几个因素造成的,例如不稳定的项目需求、缺乏编程风格规则以及能力或经验不足。)

再编辑:当我说 Flas h和 ActionScript 有经济成本时,我的意思是 Flash CS3 或 MX 的许可证在数百美元的范围内。我知道 Flex SDK 是免费提供的,但是前面仍然有很多复杂性。

最后的编辑:没有任何讽刺,如果你们不同意我的看法(Python 是教非程序员,特别是孩子们编程的最好语言),那么请用你们自己的语言写一个完整的教程或书。我完全鼓励任何人创作出使编程(编程,而不是使用点击式游戏/应用程序创建系统)更容易访问的作品,这是我觉得我们在过去几十年中已经失去的东西。

发表于2008年6月18日未分类

转载:http://coffeeghost.net/2008/06/18/python-is-the-new-basic/

作者:Al Sweigart

 

下面有六条对于“Python是新的BASIC”的回复

1.Chris说:

2014年10月18日下午4:48

我想知道如何用 python 运行文件。

例如,我想创建一个受密码保护的文件,

pass=input()

if pass = “secret”

run “secret voice.mp3”
像那样的

你能把我电子邮件上的说明发给我吗?

2.T说:

2015年7月31日下午1:29

console.log(“使用html和css的python也不是新的basic”);

3.Robbie说:

2015年7月31日下午1:53

>一些随机的,封闭源代码的“4 kidz”编程语言,它将在三年内倒闭?[不!!!!你不能当真!!!!](http://hacketyhack.net/manifesto

我觉得链接到Hackety Hack很奇怪,对于给出的这句话?

Hackety Hack依然存在,尽管网址不同:http://www.hackety.com

它也是完全开源的:https://github.com/hacketyhack/hacketyhack

它的姊妹项目Shoes目前正在进行一次积极的重写:https://github.com/shoes/shoes4

这是一个伟大的小项目;所以看到它被称为“封闭源代码”并且失效是很痛苦的,即使那不是意图。

4.Ryan说:

2015年7月31日下午4:21

还有 Scratch(https://scratch.mit.edu/)和 Snap!(http://snap.berkeley.edu/)可以说是 Logo,BASIC 等的继承者。当然,还有 Etoys 和 Scratch,它们都有来自 Smalltalk 的真正的计算机科学遗产。

5.Adam Hoke说:

2015年7月31日下午4:46

@Chris:

可以使用 subprocess 模块的 call 函数执行命令行指令:

例子:

from subprocess import call

call(“mymp3player”, “-f secret_voice.mp3”)

https://docs.python.org/3/library/subprocess.html

6.Adam Hoke说:

2015年7月31日下午4:48

抱歉call传入列表

call(['mymp3player','-f secret\u voice.mp3])

 

猜你喜欢

转载自blog.csdn.net/Enderman_xiaohei/article/details/87612455
AL