|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有专家说:java不是跨平台,java就是平台,这很好的定义了java的特点。有了java,你只需要等待java平台在新平台上移植。这还不错吧!只是,java不是一个平台,而是多个平台。你需要在这个java平台移植到另一个java平台。 我一向以为,.NET是今朝计划的最大度的基本软件平台,这个平台从计划之初,就对与一些临时困扰软件开辟者的老成绩从基本长进行了从头思索,而且给出了十分好的办理计划。好比像Assembly的观点,像AppDomain的观点,关于平安成绩的办理计划,的确是思索得十分周密。.NET刚出来的时分,像JeffreyRichter,JeffProsise等老牌微软手艺专家,都在镇静地高呼看到了软件开辟的将来,这类呼声生怕也不克不及完整当作是替微软在摇旗宣传。现实上,.NET自己的优胜性不单单制服了微软阵营,也制服了一部分隔源手艺专家。GNU构造就启动了一个项目来仿照.NET,这应当是关于.NET手艺优胜性的最好注脚。
但是几年上去,.NET的开展切合微软的预期吗?切合已经对微软科学得如痴如醉的fans们的预期吗?生怕不是如许的吧。
.NET手艺是杰出的,可是实行上年夜巨细小掉误的中央有良多。从年夜的方面来说,像.NET如许面向Internet的手艺系统,实质上必需跨平台。只要跨平台,才干掩盖收集上的各个节点,使原本是异质的收集同质化,使.NET成为Internet的API,假如能告竣这个方针,则.NET就千秋万代了。但微软并没有如许做。在将.NET扩大到Linux、FreeBSD等其他Internet支流平台上的过程当中,微软的体现一直是犹夷由豫,迷迷糊糊,十分暗昧。
为何如许分明具有严重计谋意义的步子却总迈不开?最复杂的推测是,微软忧虑如许做会客不雅上勉励人们利用Linux/FreeBSD等操纵体系,从而直接减弱Windows,间接冲击微软的次要利润来历。别的,.NET自己还处于疾速变迁中,阵线拉得太长也会带来手艺系统保护上的困难。
明天的微软已是一个至公司,各部门各产物线之间的好处干系交织庞大,即便是分明准确的决议也要在权要主义的台球桌上撞个七荤八素才干落袋,况且像.NET跨平台如许严重的计谋性决议。总之,直到如今,我们仍旧只能在Windows上利用.NET(不要跟我叫真提甚么Mono)。如许就把一个原本可以成为掩盖Internet的将来软件情况酿成了Windows自己的一个API晋级版,计谋意义折损泰半。回忆一下2000-2002年间.NET的那些早期宣扬,甚么XML,WebServices,甚么.NETMyServices,何等保守的面向Internet的企图!有人说事先微软对手艺开展趋向判别掉误,这是乱说。那里有掉误?XML岂非不是已成为收集数据形貌的尺度了吗?WebServices岂非不是为SOA奠基了基本吗?.NETMyServices岂非不恰是明天Google朝思暮想想做的事变吗?那里有错?只不外本人不刚强,见势不妙就打退堂鼓罢了!
即便从WindowsAPI晋级版的角度看.NET的实行与推行,掉误仍旧很年夜。微软在向.NET转移的过程当中,关于怎样处置好上一代手艺(基于C/C++/COM)与.NET过渡的成绩上体现得很不成熟。几个月内偏激的宣扬移山倒海,把敌手们吓得心有余悸,把fans们弄得心驰神迷,把本人也灌得晕晕乎乎,能够说是乱了仇人也乱了本人。甚么能够即刻转?甚么要有中临时的转型企图?甚么坚定坚持不乱?上高低下产生了严峻的头脑凌乱。了局在手艺平台过渡如许严重的计谋步骤中呈现强行军、年夜跃进的左倾时机主义举动。能够一定地说,WindowsVista的严峻跳票,与保守的手艺转型有间接的干系。回忆汗青,想一想微软从DOS过渡到Windows时期的小心翼翼,全面稳妥,使人不但欷歔,同是一家公司,前后不同咋就这么年夜呢?
让我们再退一步,看看成天跟我们打交道的这几个.NET编程言语好了。微软在微不雅层面上最年夜的掉误就是对VB.NET言语开展偏向的决议掉误。原本,在.NET平台上的三种支流言语VB、C#和C++有一个十分明晰的定位。C++专攻底层,与CLR同级,开辟效力放两旁,把“强”字摆两头。C#作为CLR上的体系言语,办理.NET上的体系软件开辟,开辟效力和功效分身,但也毫不在哪一边冒头。如许一来,留给VB一个光彩任务――使用开辟。VB应当是一个夸大临盆率,夸大烦琐易用,疾速开辟的言语,但凡跟这个方针相抵触的,都能够请出VB,脏活累活让C#和C++往做吧,让我们VB漂大度亮体面子面地往做veryhighlevellanguage,在开辟效力上5倍10倍地凌驾C#,那才是VB的任务!汗青上VB在微软手艺系统里不是一向饰演如许的脚色吗?汗青上VB在这个脚色上的体现不是一向都很出色吗?CLR是干甚么的?言语互操纵为了甚么?不就是为了各个言语各展所长,最初一对接,完美无缺,大快人心吗?岂非我没事制造20种统一个level,表达才能不异,连语义模子都差未几的言语耍着好玩吗?
但是你看看VB.NET干了甚么?在Perl、Python已充实证实了静态言语在临盆效力上的能力以后,VB.NET不仅没有在VB6的基本长进一步走向静态,走向高临盆率,反而往回缩,言语变得比之前更严厉了,增强了范例体系的束缚,一年夜堆对临盆效力有影响的庞大面向工具特征被坚决果断地到场VB,一个复杂明快的VB酿成了庄重庄严VB.NET,酿成了C#的等价Basic版。假如没有C#,这统统都没甚么毛病,但是有了C#,还放一个几近能够句对句翻译的VB,有甚么意义呢?除让老VB6的开辟者悲忿欲尽,除把.NET开辟职员毫无需要地分别为两个不克不及自在相同的阵营,除让MSDN文档的长度延伸一倍以外,关于开辟者供应了甚么本色的优点吗?其了局是,.NET支流言语系统里呈现了一个基本言语,两个临盆率和才能等价的中级言语,而在高临盆率的使用开辟言语这一栏里,写着一个“暂缺”。
如今VB的那些产物司理也许总算意想到了这个成绩,在VB的My名字空间里到场一年夜堆便利的特征。很好,你们终究看分明VBers的脑门上写的是甚么了:不尚浮名,只务实效。惋惜啊,晚了!
可怜的程序员,还是逃不出移植的命运! |
|