﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-jasmine214--love-随笔分类-脚本</title><link>http://www.blogjava.net/jasmine214--love/category/54209.html</link><description>只有当你的内心总是充满快乐、美好的愿望和宁静时，你才能拥有强壮的体魄和明朗、快乐或者宁静的面容。</description><language>zh-cn</language><lastBuildDate>Thu, 06 Mar 2014 07:53:19 GMT</lastBuildDate><pubDate>Thu, 06 Mar 2014 07:53:19 GMT</pubDate><ttl>60</ttl><item><title>Python之科普篇 </title><link>http://www.blogjava.net/jasmine214--love/archive/2014/03/06/410676.html</link><dc:creator>幻海蓝梦</dc:creator><author>幻海蓝梦</author><pubDate>Thu, 06 Mar 2014 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/jasmine214--love/archive/2014/03/06/410676.html</guid><wfw:comment>http://www.blogjava.net/jasmine214--love/comments/410676.html</wfw:comment><comments>http://www.blogjava.net/jasmine214--love/archive/2014/03/06/410676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jasmine214--love/comments/commentRss/410676.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jasmine214--love/services/trackbacks/410676.html</trackback:ping><description><![CDATA[<div>软件业的特点，就是层出不穷的新东东涌现。Windows早就革了DOS的命，浏览器差不多革了桌面软件的命，云计算准备再革所有软件的命，最后还追上个乔布斯说一切听他的。 <br /> <br />动荡的软件界，让人眼花缭乱。这一切的后面，是失落的编程族：好容易才精通的东西，随之变得一钱不值。曾经的人才，如同数码产品般的迅速贬值。乃至好多人怀疑，编程是吃青春饭的行当。 <br /> <br />在我前10年的编程经历里，重复着同样的杯具。Turbo C学完了，用Borland C，Visual  C++太麻烦，开始用PowerBuilder快速开发，接上去Delphi、C++Builder、JBuilder，十八般武艺都学完了，结果又蹦出 个新时髦。哪天有个终结？在软件的浪潮里，程序员太渺小了。我们害怕自己，会同过气的语言一样昙花一现，成为过眼烟云。 <br /> <br />不是我见异思迁，而是潮流不可阻挡。但直至Python出现，故事开始转折。 <br /> <br />起源于上世纪80年代末的Python语言（<a href="http://python.org" target="_blank" rel="nofollow">http://python.org</a>），是一种开放源代码的解释型高级动态类型语言，语法简练、类库丰富，以开发效率高著称。 <br /> <br />20多年的发展时间，Python是愈久弥香，经历住了时间的考验。Python是Goolge的三大语言之一；全球最大的视频网站 YouTube，以及国内的豆瓣网也是采用Python开发；最新最热的行当中，python是往往web  game的首选开发语言之一，谷歌和国内的易度云计算开发平台也都选择了Python语言。 <br /> <br />这就是神奇的Python，在交错的语言大战中，Python却成为一颗长青树，不断焕发新的光彩。 <br /> <br />而Python也成为我最近8年的编程生涯的主体，或许这将是我作为程序员的归属，一直走下去。让我们一起分享下这不一样的Python。 <br /> <br />简单是硬道理 <br />==================== <br /> <br />php被很多严肃的开发人员诟病，太简单、太脏了。然而php却被企业所喜欢，连yahoo和facebook都选择了php， php不断在发展，生命力异常旺盛。 <br /> <br />为什么？因为简单。 <br /> <br />程序语言，从机器语言到汇编，到高级语言，不就是简单在驱动吗？程序员也是人，需要更容易使用的语言。时髦点的话，就是语言也要多为咱程序员服务了，人机接口、用户体验要好。 <br /> <br />因为简单，所以开发效率高；因为简单，所以容易阅读和维护；因为简单，所以不怕没人接手；因为简单，重构下也无妨；因为简单，项目经理就不必写伪代码了，直接Coding出框架代码吧. <br /> <br />简单带来的优势，是成指数级别增长。简单省了钱，加快的进度，减少的项目风险，首先老板会喜欢。简单是硬道理。.net同样是靠简单占领了不小的市场份额。 <br /> <br />python语言最早设计指导思想之一，就是想提高代码的可读性。Python语言采用缩进来标识代码块，而Java采用的是配对的大括号来标 识。不仅仅是排版更漂亮，Python的数据结构非常简单和统一，Python自带非常庞大的类库，很多东西拿来即可。这样，相同的逻辑，使用 python可能只需要java五分之一的代码量。 <br /> <br />很多软件爱拿自己&#8220;数百万行代码&#8221;出来说事，表明自己很强大。而在Python的世界里，人们在炫耀相同的功能后，喜欢说我只有几千行代码（比如 Python上的对象数据库系统ZODB就只有不到5千行代码）。背后的意思是，放心用吧，有问题你也很容易维护这个系统；或者如果有时间，你自己也可以 接管这个代码。 <br /> <br />Pythonic之美 <br />====================== <br /> <br />php靠一个&#8220;简单&#8221;占领了市场，php的哲学是quick and  dirty；Python同样简单，但Python的哲学是Pythonic。Pythonic是什么？Pythonic是quick and not  dirty，也就是quick and beautiful. <br /> <br />这个Pythonic之美，代表了程序员的素养和品味。什么是好的代码？什么是漂亮的代码？有一本书，叫做《unix编程艺术》，实际上一本对编 程审美进行洗脑的经典书籍。而Python语言的设计理念，正符合了这种编程审美。因此，Python深受高端开发人员的喜欢，Python和他们有相同 的文化。这如同，很多人将拥有Mac机作为自己审美品味的象征一样。 <br /> <br />让我们再一次领略下Pythonic的禅意，它作为一个彩蛋隐藏在python的this模块:: <br /> <br />  &gt;&gt;&gt; import this <br /> <br />下面是我基于赖勇浩先生的首译，稍作更改后的翻译:: <br /> <br /> （让我们来说说该如何写代码：） <br /> 优美胜于丑陋， <br /> 清晰明了胜于晦涩， <br /> 简洁胜于复杂， <br /> 而复杂又胜于杂乱。 <br /> 扁平胜于多层嵌套， <br /> 适当空行、错落有致胜于拥挤不堪， <br /> 可读性很重要。 <br /> 虽然实用主义往往和上述规则矛盾， <br /> 但所有特例都不足以打破他们。 <br /> 绝不要忽略异常(不写 except:pass)， <br /> 除非你进行精准地捕获。 <br /> 当你遇到含糊不清，不要尝试猜测可能， <br /> 一定有一种，而且绝对是唯一的一种明显的处理方法。 <br /> 虽然你可能一开始很难找到这条路，除非你是 Python 之父。 <br /> 现在就动手好过永远不做， <br /> 虽然不做通常好于蛮干。 <br /> 实现方法如果难以表述，那这思路就肯定不对； <br /> 反之如果容易表述，那可能是个好想法。 <br /> 命名空间是一个值得叫好的想法，我们应当多加利用。 <br /> <br />Python宝库 <br />=================== <br />Python号称自带电池(Battery Included)，也就是有强大的类库。 <br /> <br />Python内建的类库就已经非常全面了。从web抓取，到xml解析，到嵌入式数据库，到压缩包的处理，到邮件协议，到json解析，而且不断在增长。 <br /> <br />如果你还觉得不够，可到<a href="http://pypi.python.org" target="_blank" rel="nofollow">http://pypi.python.o<wbr>rg</a>上 去找，这里有1万多种第三方的类库。从图片处理、到加密算法，到excel文件解析生成，到pdf文件转换，可谓应有尽有，无所不能。探访这里的乐趣，就 如同海边拾贝，如同山间采菌，那种惊喜，那种&#8220;大国大民&#8221;的优越感，让你在心底涌现出投身Python的幸福，进而归属感倍增。  <br /> <br />更重要的是，所有的这些宝贝，全部开源，而且大都是类 BSD协议的开源，您直接用于商业。有了这些，我会经常为自己选择了Python而庆幸，这使得我们像易度这样庞大的应用快速构建起来。 <br /> <br />Python自带强大的包管理机制，简简单单一个easy_install命令，您就可以在线安装升级、卸载这些包。这类似debian/ubuntu的apt包管理机制一般方便。 <br /> <br />全能选手 <br />=============== <br />可能是因为Python语言练就了动态语言的以柔克刚、借力打力的太极推手功夫，加上Python简单导致的生产力指数级增长效应，Python应该是应用最全面的一种语言了。  <br />从脚本、到web开发、到嵌入使用、到客户端、到云计算，python都干得不错。你只需要学会Python这一门语言，老板给你什么任务你几乎都能完成。让我们随着时间的年轮滚进，看看Python应乎潮流的72变。 <br /> <br />操作系统脚本 <br />----------------------------- <br /> <br />几乎所有的Linux发行版本和Mac都自带了Python解释环境，还有Nokia的S60手机平台，可直接运行python脚本。简洁的 Python语法，即便是不大懂开发的系统管理员或者企业IT人员，也可以快速掌握。事实上Ubuntu和Red Hat的安装程序，以及  Gentoo的包管理系统也是用python开发的。 <br /> <br />就我所知，Google的那些爬虫，就大都采用python编写完成。料想他们调整一次调整一次排名算法不会太麻烦吧。 <br /> <br />最佳伴侣 <br />----------------------- <br /> <br />很多软件往往选择会选择将整个Python接上去内嵌到软件中，作为一个操控软件的脚本语言。 <br /> <br />最典型的是各种3D动画软件，大都使用Python来做特效。比如Maya、Blender等；一些2D的图像处理软件，比如GIMP等也可Python来更灵活的处理图片。 <br /> <br />其他的，OpenOffice可以内嵌Python编写宏；知名的地理信息系统ArcGIS采用Python作为脚本语言；一些游戏引擎，也通常 选择Python作为游戏逻辑的编写工具；还有一些有限元分析软件和数据统计分析和挖掘的软件，也采用Python作为使用接口。 <br /> <br />客户端程序 <br />------------------------- <br /> <br />现在的桌面，已经不是Windows一统天下了，Linux和Mac的用户在逐渐增多。谁都想自己写的程序，能够在多个平台上运行。Python就是这为数不多的选择之一。 <br /> <br />国内limodou编写的UliPad文本编辑器就是用Python编写的；而最早的BT下载客户端，也是采用Python。 <br /> <br />Web 应用 <br />-------------------------------- <br /> <br />Web应用是Python大放光彩的领域。豆瓣网站很pythonic，网站风格完全符合python简洁、漂亮、优美的审美。而豆瓣也是采用了python上的一个叫做quixote的web框架开发完成。更大的YouTue.com案例我就不多说了。 <br /> <br />Python上的web轻量级框架，其实可能有数十种之多(这可能需要归功于Python的生产效率)。最流行的是Django，其他的包括 TurboGears、Pylons、BFG等。随着Python上的web服务网关接口（WSGI）的逐渐普及，各个web框架直接的公共部分 (WSGI中间件)也越来越多，有很多框架也产生相互合并的意图。分久必合，我相信统一是web框架之间竞争的最后结果。 <br /> <br />在今天webgame&#8220;肆虐&#8221;的风潮里，Python同样高调登场。5分钟版的开心农场就是采用Python开发的。Python是众多webgame工作室的首选游戏逻辑语言。 <br /> <br />企业应用 <br />------------------------------ <br /> <br />Python上的企业应用代表，著名的包括开源的ERP软件OpenERP。OpenERP从后台到客户端，到web端，全部是采用Python开发完成。 <br /> <br />另外一个就是Plone。Plone是一个世界级的开源内容管理软件，被包括美国中情局在内的全世界众多政府大机构、军方和大企业使用。Plone基于Python上的一个重量级web应用框架Zope开发。 <br /> <br />云时代的新生 <br />--------------------------------- <br /> <br />在如今云计算风生水起的时代，Python被谷歌云开发平台Goolge App  Engine奉为首选的云计算语言。而国内的易度云办公平台，从内部实现到第三方的PaaS开发，都采用了Python语言。当前在云存储方面的新星 DropBox，更是从后台到客户端，全面采用了Python语言。 <br /> <br />如果云代表了软件业未来之一，那Python这一次真正开始走在最前面。 <br /> <br />说说缺点 <br />------------------------- <br /> <br />没有哪个人是完美的，Python也一样。 <br /> <br />Python的一个大问题是，对多处理器支持不好。也就是一个Python进程，目前只能在一个处理器上运行。这对于日益普及的多处理器架构，不 能说是一个缺憾。当然对于web应用，采用多进程负载均衡便能解决这一问题。目前Python也正在提供一个支持多处理器的版本，但是还没有达到稳定的版 本，相应不久的未来这个问题可以得到解决。 <br /> <br />另外一个问题是解释型语言的通病，就是性能问题。这个问题，Python社区有个pypy项目，将Python的解释型执行，转换为编译执行，大 大提升效率。只是这个pypy还没有到正式版本。谷歌内部也启动了一个项目，号称目标是将Python的执行效率提升5倍，让我们拭目以待。 <br /> <br />尾声 <br />================ <br />我们是职业程序手，我们需要经久耐用、多快好省、功力强大的语言。我选择了Python，你呢？<br />原文：<div>http://www.douban.com/group/topic/13347288/</div></div><img src ="http://www.blogjava.net/jasmine214--love/aggbug/410676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jasmine214--love/" target="_blank">幻海蓝梦</a> 2014-03-06 11:37 <a href="http://www.blogjava.net/jasmine214--love/archive/2014/03/06/410676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>