您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp.net >> 正文

C#昨天,今天和明天:和 Anders Hejlsberg 座谈,第二部分

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-30 我要参与讨论

 

回到和语言相关的问题,我现在还是想说说LINQ。微软 Visual Stuido .NET 的产品经理 Tony Goodhew 在一次访谈中说过,微软的研究表明越来越多的人倾向于在编程中使用2种或者更多的语言来工作。好像现在有一种感觉,这就是语言只是 syntactic sugar 语法糖块。你选择某种语言是因为你对他最满意。

你认为现在有这种变化吗?我们以前没有过多谈过这方面的。

Hejlsberg:

好吧,的确没有谈过,但是语法是不是走到了尽头?我的意思是我们只是用 XML 文档来描述抽象语法树来表现你想做的,这也是一种语法,但是很显然,这对程序员来说并不怎么有用。因此,我认为编程语言在人们的脑海中占据这一个特别的位置,如果人们用语言说话是表达自己的一种方式,程序语言也和自然语言一样用来表达你自己的。

实际上,语法是编程语言的组成和表现形式,在很多方面,语法影响你如何思考你的程序,等等。因此,我认为语法很重要,非常重要。

Osborn:

那么从语法的角度来看,C#有什么特别的呢?你能给我们描述一下吗?

Hejlsberg:

好,我认为我们现在所说的面向组件类的特点是极为重要的。我们努力的做到没有其他的方法可以做这件事情。我们尝试发现语法间的协同,我的意思是:这很难用语言来精确的形容。那我们来看看语言级别集成的LINQ查询吧。这个可扩展的模型是:我们采用方法调用的方式来实现这一点。当你使用 where , orderby  和  select 语句来写查询语句的时候,我们把这个转换成对等的方法调用:Where, OrderBy 和 Select 集合。我们把你写的查询作为 Lambda 表达式语句传递给相关的方法。

这样,查询就变成连在一起的方法调用,从而查选也变得可读性更好,这就像一个语言胶水一样。上面的转换是立即执行的,如同 foreach 循环转换成:从while 循环中获得一个数字一样。这个小小的改进非常有利于你在更高的层次上思考问题。你明白我的意思吗?

Osborn:明白。

Hejlsberg:从这方面来讲,语法在很大程度上影响了你如何思考问题的,尽管这些语法上的东西根本和事情本身毫无关系。

Osborn:

是的。从书籍出版商的角度来看,我们公司自己的历史数据上显示,古老的C++语言有自己的地盘,在书籍出版量上只有很少的增长;去年VB的销量下降了百分之20到百分之25。C# 书籍销量还算平稳。但是很平淡。

Hejlsberg:哦,这样呀。

Osborn:

情况很清楚,从我们的销量来看,似乎有股从VB转向到C#的动向,或者其他的。可是C++却自始至终占领者一部分市场。

Hejlsberg:

没错。VB 和 C# 在同一个程序员的群体里是相互竞争的。C++ 扮演这一个特别的角色,可是C++的核心是写非托管的代码,是相对底层的编程。我知道我刚才是泛化的说明,你也可以使用 STL 来作基于模板的编程。标准模板库有他伟大的地方。我只是说,从更广泛的背景上看C++写出的应用程序和用 VB 和 C# 写出的程序是应用于不同的目的的。

Hejlsberg:对于C++应用领域的跌落,我感到并不惊讶。

Osborn:

我知道一个人不能用C++来写托管代码。

Hejlsberg:

从个人出发点来看,我也不会用它来写托管代码。但是,你要是让我来写一个编译器,这可不能是

[1] [2] [3] 下一页

在google里搜索更多C#昨天,今天和明天:和 Anders Hejlsberg 座谈,第二部分

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明