技术开发 频道

探讨C#编程语言的未来

  【IT168 专稿】作为微软.NET框架的标志性语言,C#在微软的开发战略中扮演了一个非常关键的角色。随着该语言呈现出动态和功能编程语言的特性,其角色也将不断向前发展。

  在2007年11月份,微软发布了C# 3.0,并引入了功能编程的概念,例如它支持以前在微软F#语言和语言集成查询(LINQ)中的lambda表达式。而目前正在开发的C# 4.0将增加对动态类型的支持。微软最初发布C#的目的是响应Java语言,现在这个命令式、静态类型和面向对象编程语言正在呈现出更全面的趋势。

  微软技术专家、C#之父Anders Hejlsberg最近花费了不少时间来谈论C#编程语言的未来发展方向,因为许多开发者对于C#这个他们非常喜爱的编程语言正在遵循的发展路线感到担忧。

  Hejlsberg表示,从某种意义上说,C#正在变为一个混合编程语言,或者说是一个多维编程语言。它是面向对象的,它又支持功能编程,现在其4.0版还将是动态的。“我认为,从其它不同的领域借鉴最好的编程思想是非常自然的事情。没有人规定一个编程语言必须是静态类型或者动态类型的。我认为它们都具有自己的长处。”

  开发者无需担忧C#迷失方向

  在2008年10月微软开发者大会上,当Hejlsberg讨论动态类型如何能够简化COM接口处理和其它复杂的交互时,某些开发者们深表赞同。不过,也有一些程序员担忧C#会向新的方向分化。

  来自Euronav公司的技术主管Brian Morris博士表示,C#的一个令人失望之处是其复杂性不断增加,日渐增加的复杂性提高了其入门门槛,更糟糕的是,理解和维护其代码变得非常困难。开发人员盲目的去使用新功能,但实际上更好的解决方案是使用该语言一个更简单的功能。Lambda表达式就是这样一个功能。

  Ronald Jones是一个具有20年编程经验的老程序员,他目前已经熟练掌握了C# 3.0,他建议微软停止已经在进行的语言功能改变。Jones写到,“微软每一次对C#进行修改,都会影响其普及范围,影响其稳定性,让人们不再希望将其作为未来开发时所选择的平台。编程语言不需每年都修改或增加其功能。企业难以接受一个像C#这样经常变化的语言。”

  Hejlsberg表示他知道经常修改语言功能所带来的危险。不过他表示,“你不能对语言的底层经常进行修改。对于C#来说,它的核心设计是一个命令式的面向对象编程语言。你可以对其增加从功能编程语言和动态编程语言所借鉴来的功能,但是其核心设计并非发生改变。”

  Hejlsberg表示,他的团队一直比较注意为C#增加太多功能所带来的危险。他表明了其开发团队工作的连续性,该团队自1999年以来每周举行三次交流会。“一直到今天,我们依然在通过这种会议来进行交流,而且一直是在同一个会议室中。”

  微软不会重C#轻VB

  对于Visual Basic和C#之间的关系,很多开发者提出了质疑。Hejlsberg表示这两个编程语言的相同之处将继续存在。

  Hejlsberg表示,“我们经常说某一个语言适合某一个团队,不过这种说法实际上未必就十分准确。看一下围绕这两个编程语言的开发者社区,你会发现两者之间实际没有太多不同,它们可以创建相同的应用,它们希望使用相同类型的功能。选择使用哪一个语言往往和其所处周围的环境和时期有关。”

  来自纳什维尔的软件开发者Ron McCullough至今一直在使用VB,并且没有放弃它的打算,他通过电子邮件表示,“使用VB进行了多年开发后,我发现C#非常难用,开发速度也非常慢,而且缺少我在VB中所看到的许多不错的功能。”

  来自奥罗拉的加拿大程序员Rick Piovesan对此表示赞同,他表示,“作为一个软件承包者,我更喜欢首先选用VB,只在具有某些需要的时候才选用C#。不过,现在客户项目越来越多的要求使用C#,不过令我吃惊的是,与VB相比,微软Visual Studio对C#的支持非常难用和简陋。我一直在不断查找我需要的功能到底在哪儿。”

  无论是Piovesan还是McCullough都认为,微软倾向于推广C#的使用。不过Hejlsberg表示,微软对这两门语言并不会厚此薄彼,一个功能如果被增加到C#中,那么也会被加入到VB中。

  Hejlsberg表示,“我可以这样说:我认为开发者无需因为担心VB不会像C#那样不断向前发展,而放弃VB转向C#。我们可以向所有人保证会同时丰富这两门语言。”

0
相关文章