2009年7月4日星期六

IronPython @ Pyton

CodePlex IronPython Workspace
 
wiki
 
初试IronPython与.NET的集成(二)
 
IronPython in the Browser
 
example:
 
Python v3.1 Final发布
 
python的优点到底在哪里?
如果你抱着C/C++哪怕Java的那种编程思想,你不过是穿跑鞋走路,用一档开汽车罢了。任何语言,你都可以用它写出冗长混乱无比的代码。让我慢慢列举Python比C++代码量少的原因:  
   
  1.   自动内存管理。这条省了很多事情。  
  2.   内置高级数据结构,比如序列兼数组,字典,元组,字符串等。在C++中使用类似的高级数据结构不是一件容易的事情。看看C++版层出不穷的问题就知道了。值语义,迭代子,Python程序员从不关心这些问题。  
  3.   函数式编程。由于解释执行的关系,效率上Python更倾向于调用函数而不是直接使用循环。而且函数式编程能提供更强的表达能力。从C/C++/Java这些传统语言出来的人往往领会不到这点。比如,如果要统计一个文本文件里单词的个数,一个典型的Python程序是这么做的:  
            words   =   sum([len(line.split())   for   line   in   file('words.txt')])  
  一个典型的C++程序是这么做的:  
          size_t   counts   =   0;  
          ifstream   file('words.txt');  
          string   word_dumper;  
          while   (file   >>   word_dumper)   ++count;  
  在这里C++程序使用了累加器和循环,读者是通过程序的动态语义来表达程序的功能的。也就是说用实现来表达程序。  
  而Python程序是用表达式和函数来表达程序功能,其语义可以几乎直白地(用英语)读成:   对文件每行单词个数构成的列表求和。Python内置了很多常用函数,辅以comprehensive   list,能够组合表达出非常强大的功能而不失优雅,这是C++望尘莫及的。  
  C++程序风格的优势在于贴近机器,效率较高。而Python程序风格的优势在于贴近人类,以可读的意义取胜。显然从代码量/语义数的简短来说,后者更胜一筹。而且由于Python的易读性和语义的连贯性,你往往可以在一行里塞下更多的语义而不显得拥挤。  
  4.   Generator编程。Python的Generator可以和C++的Iterator做个有趣的对比。但是显然Python的Generator功能更加灵活强大方便。有空你可以想想如何在C++中实现类似的功能,你会发现很费劲。用iterator模拟出来的程序的可读性更是不能与之相比。  
  5.   动态类型。Python的对象携带类型信息,使得Python的程序很容易实现Generic编程而无须任何模板机制。  
  6.   Lambda表达式使得Python可以在任何地方定义短小精悍的匿名函数。这对于有大量回调小函数的程序非常方便。习惯Java匿名类定义的程序员大概对此深有体会。  
  7.   最后,作为一门高级语言,Python提供了非常丰富的语义,其中每一项都要花C++好几行代码来写。综合种种因素,说Python程序往往要比C++短小十倍并非夸张。  
   
  "并没有见到python有什么语言特性可以节省大量的代码编写。"这句话只能说明你还没学会Python编程。你可以多读读别人的优秀代码。你可以读读Python官方网站上的一些关于编程技巧的文章,相信能开拓你的视野。
 
 
 
  Zope可以做Web服务器,但这只是它的一个feature。它的本质是一个文档数据库。知道Domino吗?简而言之,Zope是用Python写的,以Browser做客户端的Domino。
 
 
 
  关于Python的大型项目,我想最知名的就是Zope,然后有twisted(它既是一个类库,也是一个framework)。此外还有gadfly,medusa(其实这两个是Zope的子项目,但是Perl没有这个重量级的产品吧),以及Chandler。这些都是纯Python的程序。 
 
向     
  arya(行者)   
  shhgs()  
  cpunion(int   argc,   char**   argv)   
  等致以敬意..
 
 

没有评论: