作为.NET程序员,您需要IronPython么?

.NET作为一个成熟的开发平台,为很多语言的发展提供了肥沃的土壤:历史相对久远的有Managed C++、C#、VB.NET、J#,正值壮年的则有IronPython、IronRuby,而老赵极力推崇的F#则是后起之秀了。面对那么多的语言,选择自然也是一个难题。在大部分开发人员眼中,C#是最为正统的.NET语言,它几乎是为.NET而生的,语言版本更替的速度与.NET Framework相比,一点都不含糊,这不,C# 4.0都出来了。因此,C#通常都是.NET开发人员的首选语言。但是,掌握了C#之后,如果您希望学习多一种语言以增强解决问题的能力;如果您希望了解更多有关编程范式的内容;如果您希望了解DLR甚至编译器的设计;如果您希望……那么,IronPython将会是您的最佳选择,它就像是叮当的万能口袋,只要您伸手,您就会淘到想要的宝贝。

 

有关IronPython的历史,我在这里就不赘述了。简单的说,它是Python语言在.NET上的实现,既保持了Python所崇尚的编程哲学(想了解它?打开IronPython的控制台,在提示符之后输入import this,出现在屏幕上的就是著名的The Zen of Python),又为.NET开发人员带来了新鲜的开发模式。IronPython与传统的.NET开发语言不同,它是一门解释型的动态语言,也是一门多范式编程语言。尽管解释型、动态与多范式都是非常简单的词汇,但是它能够为开发人员带来更为直接了当的解决方案。譬如,在C# 3.0才引入的Lambda表达式以及闭包(Closure),而IronPython早已极好地支持这些体现了函数式编程的特性。即便是现在,使用IronPython实现闭包、duck typing以及运行期绑定都要比C#和VB.NET来得更为直观。也许您对会“直观”这一点不以为然,而事实上,我们在编写程序的时候,除了要让计算机为我们工作之外,还要让他人能够轻松地阅读我们的代码。作为程序员,我们都知道代码的可读性以及可维护性是多么重要,如果从一个软件的生命周期来看,升级与维护是软件最大的开销。您还记得KISS原则么?是的,就是Keep It Simple & Stupid。IronPython可以帮助我们实现这美妙的“亲吻”,真正去拥抱编程。

 

除了为开发人员带来更高的生产力之外,IronPython的出现也让“.NET平台糅合各种编程语言”真正实至名归。想必大家都会记得,早在.NET平台诞生之初,它所推崇的多语言协作理念是其最大的噱头。然而,.NET所述的多语言协作性仅仅体现在IL的层面上,那么在实际的项目开发当中,又会有谁愿意同时使用C#和VB.NET进行开发呢?由于IronPython是一门解释型语言,利用它来实现某些不稳定的业务逻辑就再适合不过了,省却了编译的过程,即改即运行。更重要的,我们可以在C#代码当中直接调用IronPython的代码!这些特性都让IronPython完全能够胜任C#左膀右臂的角色。

 

听Michael罗嗦了那么多,您是否觉得IronPython正是自己的新欢呢?觉得上述文字空洞无物?好吧,最后给大家送上两段代码,Code will tell.

 

代码一,实现了“把一个字符串数组中的元素转化为整数,再将其中的偶数放入一个List<int>容器中”的功能,C#版的代码可以参考老赵的文章《拯救C# 2.0,但是我们真做的到吗?》

 

>>>  strArray  =  [ " 1 " " 2 " " 3 " " 4 " ]
>>>  intArray  =  [int(i)  for  i  in  strArray  if  int(i)  %   2   ==  0]

 

代码二,实现了“找出长度较短的字符串”的功能,C#版的代码可以参考Klesh.Cn精心翻译的好文:C#和Java的闭包-Jon谈《The Beauty of Closures》 中的Example2b.cs 和Example2c.cs:

>>>  SampleData  =  [ " the " " quick " " brown " " fox " " jumped " , " over " " the " " lazy " " dog " ]
>>>  maxLength  =  raw_input( " Maximum length of string to include? "
>>>  maxLength  =  int(maxLength)
>>>  shortWords  =  [i  for  i  in  SampleData  if  len(i)  <=  maxLength]

 

 出处:http://www.cnblogs.com/perhaps/archive/2010/04/23/1718261.html

转载于:https://www.cnblogs.com/mq0036/p/5014253.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值