手机版
你好,游客 登录 注册
背景:
阅读新闻

Python 作为一门教学语言该退休了

[日期:2015-09-14] 来源:blog.fujiji.com  作者:Jodoo [字体: ]

在过去的十年里,如果有人正在为初学者寻找一种编程语言的话,我的标准建议是 Python。但是现在,我的这个想法已经发生了变化。

诚然,Python 依然是一门很好的编程语言。它让你集中精力解决问题,而不是关注架构之类的东西 - 那些有一定经验的开发者,似乎已经忘记和背弃了编程学习的初衷 - 思维模式的重要性。Python 这门语言将自己很好地融入背景之中,我们无需过多解释其功能特性及其编程方法学,我们只需聚焦于如何生成一个音符,如何计算所在跑道的运动轨迹,或者,为 扑克或骰子游戏编写一个自动的玩家程序。

然后直到有一天,一名学生一脸无辜地问道:“如果我们不想通过命令行运行这个扑克牌模拟器,我应该怎样做才能将其跑在一个窗体中呢?”

这是一个难以解释的棘手问题,涉及很多各种各样的 Python 图形化开发工具包(GUI toolkits)。事实上, Guido (Python 之父 )每隔几年就会面临同样的问题,每次他都需要重新评估一下 TkInter 是否适合 IDLE - Python 自带的 IDE。

一周之后,另一个问题将会出现:“怎样才能编写一个具有图形化界面的简单游戏呢?”

好吧,是该深入研究一下这个主题的时候了。 Pyglet 看起来很有希望,只是它从2012年起就没有更新过了。还有一些更专业的图形化库,如 SplatGL ,但是它太新了,应用案例也太少。 PyGame 似乎非常流行,甚至还有一本书和它配套。好吧,我们就从学习 PyGame 开始入手吧。

一个月后,更多问题显现:“我怎样才能把这个我给我朋友编写的游戏展现给他呢?或者说,有没有一种办法,可以将这个游戏装在我的手机上,这样的话,我就可以直接将其展现给学校的朋友们,而且他们根本无需安装?”

呃...

所有这些问题已经让我慢慢放弃了把 Python 作为首推教学语言的想法。尽管只能输出单色文本的命令行终端算法脚本依然非常重要,但是你真的需要区分什么是必要的以及什么是人们真正想要的。是的,你可 以找到一些附加的程序包,但是你能确定它们真的经得起真实项目的考验吗?或者,这些程序包明天还会继续得到支持吗?

非桌面技术平台的兴盛进一步加剧了这种复杂性,对此,我表示极大的同情。我学习 Erlang 语言的目的就在于,希望远离 C 和 C++,以使我能够在一个更高的层次上思考。我已经很好地证明了这一点 - 我现在可以将这种纯函数编程风格娴熟地应用在游戏开发领域。但不幸的是,iPhone 冒了出来,在这个平台上,Erlang 根本不是一个合理的选择。

考虑到这些因素,我现在首推的教学语言就是 JavaScript。我知道,我知道,它的确非常古怪。但从整体来看,JavaScript 是一门优雅且现代的编程语言。更重要的是,它恰好位于随处可见的跨平台开发工具之上 - 无论是布局、版式还是渲染。想要显示用户界面元素、图片、或者文本吗?可以直接使用 HTML。想要做一些与图形或者动画相关的事情吗?那就使用 canvas 吧。

我期待着一些对这种思维模式转变的批评和建议,至少在一定程度上,这将有助于人们选择适宜的编程语言。我希望你们的批评和意见不应该涉及 JavaScript 语言的缺点,因为我的重要参考依据不是语言特性、类型系统,或者语法,我的重点在于这种语言是否得到了现代 Web 浏览器的原生支持。

作者: James Hague ,程序员,视频游戏开发公司 Volition 首席设计师。

原文: Retiring Python as a Teaching Language

感谢:Qingniu 帮助审阅并完成校对。

下面关于Python的文章您也可能喜欢,不妨看看:

Python:在指定目录下查找满足条件的文件  http://www.linuxidc.com/Linux/2015-08/121283.htm

Python2.7.7源码分析  http://www.linuxidc.com/Linux/2015-08/121168.htm

无需操作系统直接运行 Python 代码  http://www.linuxidc.com/Linux/2015-05/117357.htm

CentOS上源码安装Python3.4  http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python脚本获取Linux系统信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

Ubuntu下用Python搭建桌面算法交易研究环境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 语言的发展简史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的详细介绍请点这里
Python 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-09/122986.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款