文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程Asp.NetC#昨天,今天和明天:和 Anders Hejlsberg 座谈,第二部分
精品推荐
特别推荐
·技巧实例:ASP.NET生成静态页面实现方法
·ASP.NET、JSP及PHP之间的抉择
·.net基础知识错误注意二十二点知识
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·.NET基础知识-什么是.NET
·初学C#+ASP.NET+Oracle时积累的备忘点滴
·专家详解:复杂表达式的执行步骤
·asp.net中的加密方法
·DataGrid常见关注问题解决方案
·学习笔记 ASP.NET 5种页面转向法
·ASP.NET网络编程中经常会用到的27个函数集
·ASP.NET之上传文件管理策略
·专家:用.NET动态创建类的实例讲解
·ASP.NET WEB服务和Flash打造MP3播放器
·精通ASP.NET中弹出窗口技术
·asp.net常用代码
·asp.net创建文件夹的IO类的问题
·Asp.Net函数集
·Asp.net cache 简述
·如何最大限度提高.NET的性能 (续)
热点TOP10
·DataTable控件的使用
·ASP.NET上传文件的实例
·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
·ASP.NET购物车的实现及结算处理
·在ASP.NET中防止注入攻击[翻译]
·使用ASP.NET2.0的ReportViewer查看RDLC报表
·asp.net程序中最常用的三十三种编程代码
·ASP.NET 2.0的导航控件treeview和menu的实例
·asp.net常用代码
·在C#后代码里使用IE WEB Control TreeView
·Lucene.net 实现全文搜索
·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
·Access 通用数据访问类(asp.net 2.0 c#)
·.Net分页控件发布
·ASP.NET之上传文件管理策略
·AspNetPager分页控件--使用方法
·asp.net 2.0中gridview里嵌套dropdownlist
·ASP.net在线购物商城系统完全解析
·手把手教你在Win2003下配置ASP.NET开发环境

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

日期:2007年7月8日 作者: 查看:[大字体 中字体 小字体]


回到和语言相关的问题,我现在还是想说说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:

从个人出发点来看,我也不会用它来写托管代码。但是,你要是让我来写一个编译器,这可不能是托管代码,那我还是会用C++的。经过这么多年的发展,我认为作为一条通用的规则,写托管代码的理由会越来越多。原因很简单啦,硬件变得更加强大,牺牲点 CPU 和内存来换取更高的生产效率来说就变得更重要了。我觉得这时一个非常有价值的命题。并且,我坚信这会逐渐的成为共识。另外,托管世界的也变得更加精彩啦。也就是,越是有创新的地方就越有更多的程序被企业所应用。

泛型和C#
Osborn:

侃了这么多,我们来说点关于 C# 2.0 的事情吧。很明显,C# 语言朝着泛型的方向发展有很长一段时间了。

Hejlsberg:没错。

Osborn:

那么,相对于其他的语言而言C#的泛型有什么不同呢?

Hejlsberg:

哈哈,靠,很明显我更想让你说:就在C#和Java之间比较吧。

Osborn:没错,我也是这个意思。

Hejlsberg:

首先,我非常高兴的我们在2.0里面加入了泛型编程。你现在看我们做的C# 3.0 里面的很多东西都是泛型在起作用。这的确是意义深远的,引入泛型后为类型系统开辟了一个新的空间,也打开了实现更多可能性的大门。比如:没有泛型的帮助,我们不可能做到语言级别集成的查询LINQ。从这个意义上讲,这是更多有趣功能后面的发动机。泛型也是现实编程世界里的解决方法的好帮手。

对,有更多的类型是很好的,这意味着你可以更快的发现错误,因为只有很少的运行时动态检查程序的类型,因此你可以写出很好的代码来。

现在,看看 java 和 C# 这对冤家吧,从语法学上面看两者实现泛型的形式是很相似的。他们都像 C++ 的模板,这是继承下来的。

现在我们抛开表面看本质,Java 和 C# 的泛型实现机制是截然不同的。我认为最大的不同在于:.NET平台下的泛型不只是一个语言特色。泛型根植于 CLR 和 .NET 的类型系统。这也就是为什么泛型可以在运行的时候表现出来。

而 Java 则选择了另一个不同的方式实现泛型,一言以蔽之,他们是在编译时实现的。而且 Java 编译器把泛型化从代码中移除了,并注入了对象,有效的对象替代了类型参数信息。也就是说呀,Java 在运行时根本没有泛型这一说。这就有意思啦,一方面可以让泛型跑在一个未经修改的 VM 虚拟机上,另一方面强加给你很多让然吃惊的限制和规则。相对于我们的泛型实现来说,java 的泛型并不能带来性能的收益,很显然吗,不管外表 List<T> 看起来多么泛型,Java 在运行时压根没泛型这马事儿,你不得不自己做运行时的动态检查和类型转换。


[1] [2] 下一页 




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

下一篇:在ASP.NET中跟踪和恢复大文件下载

C#昨天,今天和明天:和 Anders Hejlsberg 座谈,第二部分 相关文章:
·《边看边打赚大奖--迅雷宽频》部分问题及答案
·主板各部分图解
·3D编程指南第一部分:快速进入移动JAVA 3D编程世界
·破解的一部分注册码!希望能帮到大家,
·创世纪战3第二篇章-剧情攻略 - 游戏攻略
·叶子猪大话攻略:[红]第一和第二坐骑任务攻略
·《第二次机器人大战alpha》全程对话剧情功略 - 超级机器人大战攻略秘籍 - 超级机器人大战
·Cisco IOS Cookbook 中文精简版第二十三章 IP组播
·国内的部分免费论坛程序汇总
·新手必看《 3dmax渲染部分的精彩问答》
C#昨天,今天和明天:和 Anders Hejlsberg 座谈,第二部分 相关软件:
·昨天今天明天 赵本山&宋丹丹&崔永元 赵本山小品集
·最好的Photoshop6完全自学手册第二章
·Windows 97(Windows95第二版)
·金山词霸2006 SP1 with 牛津英汉双解词典 全功能第二版
·中华艳情文库(第二十辑)
·历年考研英语真题阅读理解部分中文翻译(1992—2003年word版)
·大学英语精读第二册(02)
·第二次太平洋战争
·易达第二代身份证照片处理系统(lab色彩版) V1.4
·《仙剑奇侠传四》宣传动画第二版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot