以微软强大的营销能力,Visit的流行将会成为不争的事实。但WPF将会顺风顺水的成功,重新掀起一场GUI领域的大洗牌,我看结果未必。
WPF不乏创新,大有气吞河山、一统WEB以及桌面软件的雄心壮志,但个人认为正如微软的.NET战略一样,规模过于庞大 ,同时要在两个战场开战,很难在短期内完成既定目标。而技术领域的创新是日新月异的,如果一项技术在短期内不能迅速得到认同,那么就很快有了竞争者,沦为过渡的技术。
目前,微软籍其在桌面软件上的绝对优势,理论上应该可以比较迅速的推广其WPF,但要想挑战其他技术在Web上的统治地位应该难度较大。一方面来看,现有的技术所具有的简单性和标准化已经深入人心;另一方面,WPF作为微软独有的技术,截至目前尚不能看到完整的规格说明。同时,.NET下尚不能拿出能与PHP,PYTHON, RUBY竞争的动态语言,极具竞争性的VB也沦为了C#的Backup,总不能让众多ASP.NET的Fans拿C#等来和PHPer们拼灵活性吧,何况就.NET现有的类库规模,仍不能和Java社区的力量相比较。在轻便性,功能全面性上.NET占不了优势,那所能依赖的就只剩下平台了,而众所周知Windows并不是WEB服务器运行的最好平台,Linux才是。
从个人的体验来看,学习微软的技术会有种先易后难的感觉,为什么呢?对于一些初级,共通性的问题,微软通过层层包装,给出了简单的实现方法,使你能获得最好的体验,而对于一些较有深度的问题,则需要你揭开包装,重新理解原理后找到解决方法。过程固然不错,但容易导致大量的不求甚解并使许多人永远停留在初级的阶段,这对于新技术的广泛应用并不是好事。ASP.NET作为WEB开发的一项技术,把HTML包装的非常好,基本需要的都有了,但在我们需要工具箱之外的控件时,我们发现除了需要学习C#,我们还要学习更多的东西,因为没有任何统一的方法来解决所有复杂的问题。ASP.NET如此,WPF也必将如此。
作为程序员,我梦想能够用统一的方法解决所有的问题,但是在现实中我会尝试使用LINUX,PHP,Javascript,......来解决各式各样的问题,这些技术都能够给我带来不同的乐趣,如果只使用一种技术来解决这些问题的话,我会乏味。