C#错过的10年
不知不觉,c#已经诞生n年了,人生有几个十年?c#就浪费了整整一个十年。
这十年里面,电脑发展缓慢,而服务端和手机发展迅速,这是一个移动和后端化的十年,而这个方向,正正是c#没有关注到的,c#把注意力放在了前端,放在了电脑,虽然微软也想弄手机系统,但是失败了,为什么会失败?我也搞不清楚,总之就是失败了。
未来c#还有没有机会?实际上是蕴含一次大变革的。现在世界经济如此困难,中国经济如此困难,这一切都要求社会变革,科技变革,产业变革。既然必将有大翻盘,大革命,那固然人人都有机会。关键在于效率的提升,这个效率不是运行效率,而是应用效率,行政效率。VB诞生,是windows开发的一次革命,类似的,新世界也需要一次新的VB革命。
我的看法,这次的重点在于流程,大数据,大流量,互联关系。比如现在是农村社会,将来就是城市时代,需要的就是聚集起来的能力,一种聚集起来却不会零乱破败的能力。未来的应用,要求面向的不是个人用户,而是集团用户,要求处理的不是一个人的工具性问题,而是一群人的问题,后端必然是一套大数据,一套逻辑严密的系统,而前段是多端接入,流程复杂化。正如2000年提出来的所谓信息孤岛,这种超前的视野没有得到社会认可,而不久,这个正式成为我们需要解决的问题。
未来的应用前端,不再是华丽的界面,不再是漂亮的控件的问题,也不再是处理各种事件,营造一个人性化环境的问题,也不是一个让开发者更加快捷的问题,而是一个能够实时部署,轻车上路的问题,怎样在不同平台,和不同应用沟通,怎么匹配接口。而界面如何随着业务逻辑变化迅速便捷的对应上来的问题。说了这么多,其实有个最好的样板,那就是网页。只是网页缺乏不同app互动的能力而已。
未来前端是软件化的网页,而后端才是软件开发的重心。当从一个单机变成一个多端输入的系统,这里面的变化就要求了更多的存储能力,更好的安全边界,更好的采集能力和分析能力,因为这才是价值所在,有数据不会用,有什么意义?根本的进化,就在于软件复杂度的变化,如果以前开发的是一个小软件,将来就是一个中型软件,甚至大型系统。从程序设计语言层面来说,就是要适应这种复杂化的变动,如何让一些本来复杂很多的东西,突然变得一般程序员也能掌握了,这似乎不可能完成,但是历史上VB做到了。
可惜,c#没有做到,c#这10年,把重点花在“炫酷”二字上,你看,我做得酷不。错错错,你虽然做得很酷,但是你把一件原本就很简单的东西,变得更加复杂了,你没有降低复杂度啊,你是在添加麻烦啊!winform很土,wpf很酷,但是wpf没有很简单啊!同理很多很多都是这样的结果。c#不断的推出更炫酷的技术,简直就是嘉年华,但是缺乏方向感,不知道自己该向那个目标努力,没有能够把技术转化为对生产力的解放。而酷的结果,反而是恰恰的和这十年的潮流反向而行,行业要求的是轻便快捷,而不是不停的添加累赘!如果一个语言在效率上迷失了,那只能说它不再是一个工具,因为工具的特征就是效率。并不是说发展,或者是复杂化是错误的,语言发展和复杂化是完全正确的一件事,但是你不能让你的用户适应你,而是你变复杂,却让你的用户变得简单,这才叫效率!
因此,我观察c#这十年迷失在两点上,一个是方向,如果他在后端变得复杂,添加更多概念进来,增加程序员的“麻烦”,这未必不是不能理解的,因为目标本身就复杂化了,程序员绝对没有办法用一个简单的思维去解决原本就更加复杂的问题,程序员本身也需要学习。可惜c#选择在前段变得复杂。第二个是前面说到的,炫技而不注重效率。
微软这些年,把重心转移到云后端,想必积累了不少经验,慢慢这些成绩也会反馈到工具层面上来,因此c#还是有很大的发展前景的。