Linux,人们习惯把Linux说成是一个操作系统,而严格来说Linux只是一个类Unix操作系统的内核。Linux内核的创始人是Linus Torvalds,他开放Linux的源码,使得全球的程序员都可以得到并且改进或者修改这份代码。于是后来就出现了好多Linux的发行版,比如Ubuntu,Debian, Fedora, Red Hat等。hostgator 美国Linux服务器分享了解Linux 和 Python
再说说Python。Python是一门具有面向对象、跨平台、解释型等特点的高级程序设计语言。Python的用途非常广泛,经常用于当作脚本语言用于处理系统管理任务和网络编程。当然除此之外还有很多用途,比如经常用来写web程序,作图像处理,做科学计算,做桌面应用等。Python的语法简单优雅,可读性非常好。
Python然而说到与Linux的关系,可能主要还是其作为“脚本语言”的特点和作用。Python用来做Unix/Linux系统管理非常方便,所以有一些Linux发行版都已经预装了Python,比如我正在使用的Ubuntu。这些Linux操作系统上有不少用Python写的系统程序和应用程序。推荐阅读:《保护Linux独立服务器的分步指南》
对于开发人员来说,Python 是简历上的一大亮点,而且 Python 开发者们也明显会从熟悉 LINUX 平台的角度受益,因为任何 LINUX 发行版都会将Python 作为同绑推出的一项标准功能。Python 能够从许多不同的站点处免费下载甚至是从各类 LINUX 发行版的软件包中获取,这意味着一定会有大量潜在的用户在下载并利用其进行编程。
在 LINUX JOURNAL 于 2011 年 9 月在网上所进行的调查中,24%(约 8600 名用户)将 Python 列为自己最喜欢的编程语言。Python 以极为明显的优势击败了人气榜中位居第二的竞争对手 C 语言。显然,Python 在 LINUX 社区中的人气相当高。而在一些国外大学和科研机构共享的开源代码中我们发现,大部分代码均是Python 或者 MATLAB 写成。尤其是 Python 程序可以在 LINUX 下完美运行,这对于计算海量数据(比如海量数据挖掘)和大型科学计算等需要进行并行计算和网格计算的项目来说,Python 也成了 C/C++之外的一个不错的选择。
另外,已经有不少 IT 企业开始使用 Python 进行企业级程序开发,其中不乏GOOGLE、微软、百度等名企。这些企业有些是使用 Python 开发部分模块,有些是使用其来开发程序框架,甚至一小部分企业完全使用 Python 进行开发。据我了解的几家国外的使用 Python 进行全过程开发的企业,大部分是利用开源资源开发科学计算程序,并且也开放源码供外界下载,这也提供了一个让我了解企业级程序编码的机会。
Python 的优势与劣势:与 C/C++对比
1. Python 的优势
Python 在设计上坚持了清晰划一的风格,这使得 Python 成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。Python 直接编写的程序段有时运行效率甚至高于用 C 编写的程序。从个人开发 Python 程序和 C++程序的经验来看,编写 Python 程序能让我更加集中精力去考虑算法的整体流程框图和逻辑结构,相比之下写 C++程序则需要事先处理许多细节问题。
Python 是一种代表简单主义思想的语言。阅读一个良好的 Python 程序就感觉像是在读英语一样。Python 极其容易上手,因为 Python 有极其简单的语法,它使你能够专注于解决问题而不是去搞明白语言本身。在我最近进行的某个项目的开发过程中,团队中有一名开发者并不熟悉 Python 语言,但是他依旧能在我们标注的注释的指导下轻松地理解其他人所写的 Python 程序,并且现在已经学会基础的 Python 编程。
Python 的免费与开源。Python 是 FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS 是基于一个团体分享知识的概念。因为我主要是在国外的一些开源代码共享网站,如 GITHUB, SOURCEFORCE 等下载及上传开源代码,发现一些科学计算的开源程序,开发者大多都提供 MATLAB 或 Python 的代码,这与 Python 的可移植性和大量共享的开源科学计算包密不可分。这些高效的共享资源,也是吸引我学习 Python 编程的重要原因之一。
用 Python 语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。这一点相比 C/C++来说确实更能让开发者集中精力在算法设计上。我虽然没有 C/C++内存编程的经验,但是在学习汇编语言的时候,仅仅是做一个小型的汉诺塔游戏就已经体会到设计内存布局和存取的复杂性。推荐阅读:《如何利用Linux分销主机系统获得高回报》
2. Python 的劣势
在相同的算法设计下,Python 程序的运行速度总体上看不如 C/C++程序。这是因为 C 或 C++写的程序可以从源文件(即 C 或 C++语言)转换到计算机使用的语言(二进制代码,即 0 和 1),而 Python 语言写的程序不需要编译成二进制代码,直接从源代码运行程序。两者相比,速度高下立分。所以使用 Python开发辅助模块或者小程序,由于不需要编译,直接进行解释运行,所以编程效率会比较高。但是对一些大型程序以及一些不希望移植到别的平台的程序,C/C++还是主流的选择。
在 LINUX/WINDOW 下进行 Python 编程
1. 编程环境
习惯在 WINDOWS 下工作的入门者可能会不习惯 Python SHELL 下的命令行工作方式,Python 也支持在 IDLE 下新建*.py 文件并编写。个人觉得命令行交互也算是 Python 设计者吸收了 LINUX 终端编程的优秀特质,而且这种编程方式对于习惯 LINUX 操作的开发者来说非常亲切,也增加了吸引他们进行 Python 开发的筹码。对于一些习惯用 MATLAB/MATHEMATICA 进行科学计算程序开发的程序员来说,由于 Python 导入科学计算相关模块后对数值计算、符号计算等强大的支持以及类似的交互环境编程,也让他们在使用 Python 时得心应手。
大部分非计算机专业的学生在学习编程语言(如 C/JAVA)等时习惯使用VISUAL STUDIO 等编程环境,而对 Python 偏 LINUX 风格的编程方式感到头疼。其实很多 Python 的程序设计者也推出了类似 VISUAL STUDIO 的集成环境,如WINGIDE, PyScripter, SPYDER 等。我在 windows 下使用的集成开发环境是SPYDER,它提供了编程、调试、交互等功能,并且有强大的在线帮助、函数查询以及实时纠错等功能。这里又体现出 Python 的优势:因为 Python 是解释器解释运行,所以在写代码过程中解释器可以提示语法错误,而 C/C++需要进行编译后才能返回错误信息,相比之下比较麻烦。
2. LINUX 下 Python 编程
LINUX 下并没有 WINDOWS 下的集成编程环境,所以对 LINUX 初学用户或者习惯在集成编程环境下写代码的开发者来说会不习惯。但是 LINUX 下也有一些开发环境非常适合进行 Python 编程。
在 LINUX 下写程序,相信很多人都会推荐 VIM 或者 EMACS。作为现今最优秀的几个文本编辑器,二者都提供了许多强大的功能,不仅仅像 WINDOWS 下简单的文本编辑器和写字板一样的功能,还在非插入模式下提供了许多命令,可以方便的进行高亮、定位、移动、删除等操作,可以说是省去了编程人员双手游移于鼠标和键盘之间的麻烦,而且当熟悉二者的用法后,程序员的双手甚至不用离开主键盘区域。推荐相关阅读:《从独立服务器托管的根访问中获得最大好处》