驳:微软不希望您提出的十个应用开发问题

类别:VC语言 点击:0 评论:0 推荐:

看行业技术的发展,需要有前瞻性的视觉能力。否则你永远只能像把Oracle 8加点东西叫Oracle 8i,再加点东西叫Oracle 9i然后把他们买个好价钱。Windows 95已经很好用了,它把桌面电脑推进了每个家庭。为什么微软还在研究其他东西,其他领域?为什么 Windows 2000? 为什么 XP? 为什么 .NET? 为什么要企业领域,还要无线领域?那不只是赚钱,如果你不理解“任何地点、任何时间、任何设备”享用互联网的真谛,你就看不懂微软在做什么。微软不是为了.NET才.NET,看过了.NET的架构,才会理解它的核心地位。

 

.NET基于XML。一两年前,微软拿XML打赌,XML将是Internet的标准。不久的将来,所有人都可以看到这个结果。而SUN,.COM的一度辉煌冲昏了它的头脑,现在它仍抱着J2EE,在XML上一错再错。
SOAP是不同平台间理想的互通协议,不仅仅是数据,更包括方法调用、服务访问。没有人能够奢望IT业界能使用统一的平台、统一的工具,但统一的数据和访问方式确实可能的。这就是来自W3C的标准 -- XML & SOAP。
UDDI是微软和Arriba、IBM共同制定的,为的就是统一的Web Services描述、定位和互相集成。
.NET Web Services就是基于这样这些公共的标准,也正因为这样,才能做到“任何地点、任何时间、任何设备”的访问,从PC, Pocket PC, Mobile Phone 或 Smart Card。

 

“微软不希望……”的作者喜欢使用一些引用来说明问题,那我们也来看看别的权威机构怎么说。
"Gartner believes Microsoft is now providing more vision and influence regarding this shift than any other vendor."
- Gartner Group

 

"...even risk-averse business must expect .NET-influenced applications to have an impact on their operations by 2H03."
- Gartner Group

 

".NET is a leading example of what we believe will be the dominant architectural model for the third generation of Internet applications."
- Patricia Seybold Group

 

再来看一下微软“害怕”的十个应用开发问题。

 

关于开放标准,Java是开放标准吗?J2EE是开放标准吗?SUN把Java提交给ECMA或其他什么机构了吗?

 

Software Development Mag 载文:"Despite the efforts of the Java Community Process, which has moved the platform forward with third parties providing much input and development, no one buys into the notion that Java is open. Any enhancements to the platform must be turned back to Sun for approval, and then relicensed by the creator....Sun can try to spin this however it wants, but make no mistake. Java is a proprietary language, and represents a proprietary, monolithic model." (http://www.sdtimes.com/cols/moneywatch_033.htm)

 

J2EE也是如此。IBM, BEA, 或者SUN, 在提供商无关和开放的谎言掩盖之下,不过是被这个还是那个软件商套牢而已。
Meta (2000年12月) 说 "...[the Java] platforms' proprietary infrastructure services (e.g., workflow, messaging, persistence, legacy integration) will create substantial barriers to application portability."

 

反观微软,除了上述的XML、SOAP、UDDI,焦点之焦点的C#和CLI(公共语言架构)也已经提交给ECMA组织。只要开发商愿意,它可以在任何平台上支持C#。甚至不采用微软的任何技术,只要遵从XML、SOAP、UDDI标准,Web Services可以在任何平台之上提供。微软无意像SUN占有号称开放的Java一样占有这些标准。但微软推行这些标准,推行基于这些标准的技术、方案和产品。

 

关于开发所使用的语言,在现今世界上总数2千多万开发者中,C/C++有420万,VB约700万,Java约220万,COBOL是130万,其它的则还有不到900万人。真不知道有所谓Visual Basic 的使用率曾有62%这一说,就算现在只有46%了,再加上其它开发语言,Java能占几何?请问文章作者,你这么确定地回答开发人员应使用Java,Java可以用于所有场合?所有人都可以抛弃其它语言转投Java的怀抱?当然如果真的这样了,SUN一定是可以卖出更贵的机器,因为实在是没有比Java更慢的语言了。微软拥有庞大的开发者群体,即使如此,也没有希望所有人都是用VC或VB。当然,正因为VS系列的强大,微软才有能力抽取出一个公共语言架构。才能够发展出多语言开发、调试、错误处理技术、中间语言和高效能即时编译技术(Java也是即时编译,真不知道怎么那么慢!)和垃圾回收技术。

 

C#的推出,在语言上不啻于对Java的致命打击。这是一个真正的面向组件的语言,像properties, methods, events, attributes在C#中有着极好的支持。就像有开发人员说:“自从接触 C#后,Java已对我没有任何吸引力,几乎不用了。”(摘自新浪IT业界论坛)
这是C#的魅力,但即使你不用C#,你依然可以享用Web Services,因为跨平台、开放性和集成能力发生在Web Service之间。保护开发者的已学语言,可以说是保护开发者财产,保护开发商的财产。微软做对了。

 

关于迁移,文章提到了两个方面:VB -> VB.NET, ASP -> ASP.NET。以对VS.NET的个人经验,Beta2之后,VB.NET与VB在语言上达到95%兼容,ASP.NET和ASP则完全兼容。按照微软的一贯作风,它不会在兼容性问题上置众多VB开发者不顾。其次是扩展。回想当年从DOS到Windows,DOS是一步一步从Windows 3.1、Windows 95、Windows Me、Windows 2000、Windows XP中淡出的。当年的确有人抱怨有些游戏在DOS好好的,可到了Windows总需要先费些神,因为这不是简单的升级,而是系统的换代。什么是VB.NET?它是兼容VB语法并扩展以利用.NET Framework特性的更新语言。因为有人惯用VB语言,才会沿用VB.NET,否则,C#会是更好的体验。ASP.NET亦类似。你可以一切照旧,但ASP.NET更包含Web Forms, Server Control,基于SOAP访问的Web Services,对C#用作脚本语言的支持,以及诸如ASP State引起的可扩展性问题的全面解决。

 

象“利用 Oracle 的和 Sun 的迁移解决方案从微软专有的 ASP 平台向行业标准的 J2EE 环境迁移会更容易些。” 这样的谎言,重复一千遍也还是谎言。倒不如通过JUMP这样的方法从Java迁移到C#更为实际。

 

关于对Visual Studio.NET工具和环境的使用,恳请文章作者在如此确定的“不能”答案背后不要轻易怀疑开发者的智商。开发人员对开发工具的使用,有先行者,学习和摸索;有追随者,通过先行者的指导和外部的培训。在业界,对任何一个开发商都有这样的规律,包括Java语言和不同提供商的Java开发工具。退一万步说,即使Visual Basic开发人员在面临新环境而做出转换,这将是同在.NET Framework之上的C#呢,还是去学习Java和Oracle 9i开发套件呢?

 

关于数据访问方法,的确,微软有ODBC,DAO, RDO, ADO, OLEDB 和ADO.NET,而Java世界里只有JDBC。文章作者确实只是简单地罗列一下,简单到ADO+和ADO.NET是同一种东西都不知道,却妄称它们互不兼容。不错,从Oracle销售的角度来看,知道这些名词已经不简单了。事实上,微软数据访问的方法从ODBC以后的发展,是从API到组件方法,从纯粹RDBMS数据源到不同数据源统一接口,也是在性能方面的不断提高,ADO.NET更面向于.NET Web Services。而JDBC借鉴了ODBC在Java中实现后,却再也没有下文。是JDBC发展到尽头了呢,还是失去了创新的思想?

 

关于.NET的稳定性,有必要提及微软和SUN、Oracle对此的不同理解和实现。SUN强调Scale Up,强调它的每台机器达到5个9或时6个9,又怎样呢?每个人都知道当这台机器down掉的时候发生的是什么。Microsoft推行Scale Out,即采用低性能机器群组的方式避免单点失败。这就是它的Application Center 2000的负载均衡技术,和NT 4.0以来的集群技术。它既可以保证计算机资源的充分均衡利用,又可以保证服务的持续运行。.NET是微软下一代的软件平台,在它投入巨大的人力和财力加以完善的前提下,群组技术确保了真正的24x7企业服务。

 

关于微软Visual Studio.NET 和 Oracle9i 开发套件的价格问题,我既不卖Visual Studio.NET,也不卖Oracle 9i开发套件,故没有发言权。况且,文章“微软不希望……”不是引用ZDNet的猜测说2002年之前没有正式产品吗?可比性在哪里呢?

 

写到这里,我有点明白为什么文章第一个问题就说“Visual Studio.NET不会很快成为正式产品”了。或者说,Oracle希望在VS.NET正式推出之前多卖点9i开发套件吧。我是VS、VS.NET的使用者,从PDC、Beta1到Beta2,按照惯例,它的发布将在半年到一年之内。不过,对开发者而言,Beta2已经很好地帮助我们预先了解.NET产品和技术特性了。我坚信Visual Studio.Net是一个值得期待的产品,它将掀起的是下一代分布式计算的革命性浪潮。

 

顺便提及一下,该文章多次把Oracle 9i 开发套件和J2EE放在一起。但事实上,Oracle卖出的是他们的专用扩展,并告诉他们的客户说:核心的J2EE工作不太好。IBM WebSphere如此,BEA WebLogic也如此。Oracle也赶着用9i来趟J2EE的浑水。

本文地址:http://com.8s8s.com/it/it3163.htm