PDC2008系列之一
关于Anders就不用介绍了,大牛人一个。
作为C#的发明者,对于C#将来的发展,Anders提出了自己的想法,并将其融入到C#4.0中。
值得注意的是Anders说得目前影响程序语言设计的因素:声明性(Declarative)、动态性(Dynamic)和并行性(Concurrency)。
我对声明性的理解就是领域驱动开发,就是在软件开发的过程中尽可能清晰的显示出“What to do”,而不是“How to do”,这方面,MS推出了一个叫“Oslo”的东东,还没来得及看呢,我想声明性的活动应该是介于设计与编码之间时的一种活动,从形式上很像一种接近自然语言的伪代码,或者是一种新的我没接触过的开发过程。
对于并发一直没啥经验,知道一些基本概念,但是没有实践过,不过讲座中“盲人摸象”的那幅画很形象。
对于动态,动态语言和静态语言现在都有很火的例子,不过这两年动态语言似乎声音越来越高,JavaScript、Ruby等很多语言都很活跃。我个人对动态语言的印象是开发效率高但不易调试,同时运行效率比较低。
C#在4.0之前应该是一种静态语言,Anders在讲座中提出“不提倡将所有东东全部变为动态,如果我们知道一个对象的具体类型,那么最好还是使用静态方式来使用,但是有一些情况,我们确实不能确定要使用的对象的类型,这时是可以采用动态的方式来使用”。新版本的C#添加了Dynamic关键字,很神奇的一个关键字,同时在CLR的基础上,添加了一个DLR(Dynamic Language Runtime),所有声明为Dynamic类型的变量将在运行时确定其数据类型,并且在程序执行时,添加了一个动态类型检查(Dynamic Type Check)的环节,我怀疑这样是否会降低程序运行的效率。
C#的动态性主要体现在和其他定义为非.NET类型的对象进行通信,主要包括JavaScript、Ruby、COM,我觉得这个调整很好,我先还记得当年做Java项目时,在JavaScript中穿插Java代码的痛苦经历,同时又为在Java代码中如何调用JavaScript而头疼,现在C#终于成功的搞定了这个问题。由于加入了动态特性,新版本的C#允许我们以“白盒”的方式来看待编译器,并且演示了一个功能比较强大的Demo。
讲座中提到的另外一个C#新添的特性是“Optional and Named Parameters”,这个功能很强大,以后再写框架或者共通的代码时,可以少写很多重载的方法,这个特性可以算是“重载终结者”了。
在70分钟的讲座中,Anders至少有40分钟在讲Dynamic,看来这是C#新版本中革命性的变革了,期待Visual Studio 2010能够早日发布。
作为C#的发明者,对于C#将来的发展,Anders提出了自己的想法,并将其融入到C#4.0中。
值得注意的是Anders说得目前影响程序语言设计的因素:声明性(Declarative)、动态性(Dynamic)和并行性(Concurrency)。
我对声明性的理解就是领域驱动开发,就是在软件开发的过程中尽可能清晰的显示出“What to do”,而不是“How to do”,这方面,MS推出了一个叫“Oslo”的东东,还没来得及看呢,我想声明性的活动应该是介于设计与编码之间时的一种活动,从形式上很像一种接近自然语言的伪代码,或者是一种新的我没接触过的开发过程。
对于并发一直没啥经验,知道一些基本概念,但是没有实践过,不过讲座中“盲人摸象”的那幅画很形象。
对于动态,动态语言和静态语言现在都有很火的例子,不过这两年动态语言似乎声音越来越高,JavaScript、Ruby等很多语言都很活跃。我个人对动态语言的印象是开发效率高但不易调试,同时运行效率比较低。
C#在4.0之前应该是一种静态语言,Anders在讲座中提出“不提倡将所有东东全部变为动态,如果我们知道一个对象的具体类型,那么最好还是使用静态方式来使用,但是有一些情况,我们确实不能确定要使用的对象的类型,这时是可以采用动态的方式来使用”。新版本的C#添加了Dynamic关键字,很神奇的一个关键字,同时在CLR的基础上,添加了一个DLR(Dynamic Language Runtime),所有声明为Dynamic类型的变量将在运行时确定其数据类型,并且在程序执行时,添加了一个动态类型检查(Dynamic Type Check)的环节,我怀疑这样是否会降低程序运行的效率。
C#的动态性主要体现在和其他定义为非.NET类型的对象进行通信,主要包括JavaScript、Ruby、COM,我觉得这个调整很好,我先还记得当年做Java项目时,在JavaScript中穿插Java代码的痛苦经历,同时又为在Java代码中如何调用JavaScript而头疼,现在C#终于成功的搞定了这个问题。由于加入了动态特性,新版本的C#允许我们以“白盒”的方式来看待编译器,并且演示了一个功能比较强大的Demo。
讲座中提到的另外一个C#新添的特性是“Optional and Named Parameters”,这个功能很强大,以后再写框架或者共通的代码时,可以少写很多重载的方法,这个特性可以算是“重载终结者”了。
在70分钟的讲座中,Anders至少有40分钟在讲Dynamic,看来这是C#新版本中革命性的变革了,期待Visual Studio 2010能够早日发布。
作者:李潘
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。