导读:如今有众多可选的编程语言,这往往是入门者首先要面对的问题。开发工具的选择有时取决于特定的约束条件或者个人喜好。
过去的16年中对近260个团体组织和4000名学生的Python培训过程,让我见证了人们做出这一选择的一些共性原因。大部分Python用户都提到了下面这些原因……
z
image
01 软件质量
对于很多人而言,Python更注重可读性、一致性和软件质量,这使得它区别于脚本语言世界中的许多其他工具。
Python代码在设计之初就具有良好的可读性,因此具备了比传统脚本语言更优秀的可重用性和可维护性。即使代码并非你亲手所写,Python的一致性也保证其易于理解。
如果有想要学习Python或者正在学习Python中的小伙伴,需要学习资料的话,可以加我新建的Python群:767614211
此外,Python支持软件开发的高级重用机制。例如面向对象(object-oriented,OO)以及函数式编程(function programming)。
从设计之初,P****ython就秉承了一种独特的简洁而极具可读性的语法,以及一种高度一致的编程模型。
正如过去某次Python会议标语所宣称的那样,Python似乎是“与人脑思维直觉吻合”,也就是说,Python的语言特性以一种一致和受限的方式进行交互,并自然地遵守一套紧凑的核心概念。这使得Python易于学习、理解和记忆。
事实上,Python程序员在阅读和编写代码时无须经常查阅手册。Python是一个设计风格始终如一的开发平台,可以保证开发出具有一致性的代码。
从哲学理念上讲,Python采取了一种所谓极简主义的设计理念。这意味着尽管实现某一编程任务通常有多种方法,往往只有一种方法是显而易见的,还有一些不是那么明显的方法,而且贯穿整门语言都采用这一套紧凑的交互形式。
此外,Python并不会为你做任意的选择;当交互模棱两可时,使用简洁明了的解决办法要优于“魔法”般的方式。在Python的思维方式中,明确胜于隐晦,简单胜于复杂。
除了以上的设计宗旨,Python还包含模块化、OOP在内的一些工具来自然地提升程序的可重用性。而且由于Python致力于提升编码质量,Python程序员也都自然而然地秉承了这一理念。
image
02 开发者生产效率
相对于C、C++和Java等编译/静态类型语言,Python的开发者效率提高了数倍。
Python代码的长度往往只有C++或Java代码的1/5~1/3。这就意味着可以录入更少的代码,调试更少的代码,并在开发完成之后维护更少的代码。并且Python程序可以立即运行,而无需传统编译/静态语言所必需的编译及链接等步骤,进一步提高了程序员的效率。
20世纪90年代中后期,互联网带来的信息爆炸使有限的程序员与日益繁多的软件开发项目之间的矛盾愈发严重;开发者开发系统的速度常常要求赶上互联网演变的速度。在这一浪潮过后的公司裁员和经济衰退时期,产业图景又悄然改变。公司开始要求更少的程序员来完成相同的开发任务。
无论在以上哪种背景下,Python作为开发工具均以付出更少的精力完成更多的任务而脱颖而出。
Python致力于开发速度的最优化:其简洁的语法、动态类型、无须编译、内置工具包等特性使程序员能够快速完成项目开发,而使用其他开发语言则需要几倍的时间。其最终结果就是,相对于传统的语言,Python把开发者效率提高了数倍。
不论所处的时代是欣欣向荣还是萧条而不景气,也无论软件行业未来的走势是起还是落,这都是一件值得庆幸的事。
image
03 程序的可移植性
绝大多数的Python程序不做任何改变即可在所有主流计算机平台上运行。例如,在Linux和Windows之间移植Python代码,只需简单地在机器间复制代码即可。
此外,Python提供了多种可选的代码库,用于编写包括用户图形界面、数据库接入、基于Web的系统等在内的各种程序。其中甚至包括程序启动和文件夹处理这样的操作系统级接口,也成为Python可移植性的一部分。
04 标准库的支持
Python内置了众多预构建并可移植的功能模块,这些功能模块叫作标准库(standard library)。标准库支持一系列应用级的编程任务,涵盖了从字符模式到网络脚本编程的匹配等方面。
此外,Python可通过自行开发的库或众多第三方的应用来支持软件的扩展。Python的第三方支持工具包括网站搭建、数值计算、串口读写、游戏开发等各个方面(参考接下来的样例)。例如,NumPy是一个免费的,与MATLAB一样功能强大的数值计算开发平台。
image
05 组件集成
Python脚本可通过多种集成机制轻松地与应用程序的其他部分进行通信。这种集成使Python成为实现产品定制和扩展的工具。
目前,Python代码可以调用C和C++的库,可以被C和C++的程序调用,可以与Java和.NET组件集成,可以与COM和Silverlight等框架进行通信,可以通过串行端口与设备进行连接,并且可以通过SOAP、XML-RPC和CORBA等接口与网络进行交互。Python绝不仅仅是一个孤立的工具。
06 享受乐趣
Python的易用性和强大内置工具使编程成为一种乐趣,而不是琐碎的重复劳动。这是一个难以言表的优点,将对开发效率的提升有很重要的帮助。