C#错过的10年
不知不觉,c#已经诞生n年了,人生有几个十年?c#就浪费了整整一个十年。
这十年里面,电脑发展缓慢,而服务端和手机发展迅速,这是一个移动和后端化的十年,而这个方向,正正是c#没有关注到的,c#把注意力放在了前端,放在了电脑,虽然微软也想弄手机系统,但是失败了,为什么会失败?我也搞不清楚,总之就是失败了。
未来c#还有没有机会?实际上是蕴含一次大变革的。现在世界经济如此困难,中国经济如此困难,这一切都要求社会变革,科技变革,产业变革。既然必将有大翻盘,大革命,那固然人人都有机会。关键在于效率的提升,这个效率不是运行效率,而是应用效率,行政效率。VB诞生,是windows开发的一次革命,类似的,新世界也需要一次新的VB革命。
我的看法,这次的重点在于流程,大数据,大流量,互联关系。比如现在是农村社会,将来就是城市时代,需要的就是聚集起来的能力,一种聚集起来却不会零乱破败的能力。未来的应用,要求面向的不是个人用户,而是集团用户,要求处理的不是一个人的工具性问题,而是一群人的问题,后端必然是一套大数据,一套逻辑严密的系统,而前段是多端接入,流程复杂化。正如2000年提出来的所谓信息孤岛,这种超前的视野没有得到社会认可,而不久,这个正式成为我们需要解决的问题。
未来的应用前端,不再是华丽的界面,不再是漂亮的控件的问题,也不再是处理各种事件,营造一个人性化环境的问题,也不是一个让开发者更加快捷的问题,而是一个能够实时部署,轻车上路的问题,怎样在不同平台,和不同应用沟通,怎么匹配接口。而界面如何随着业务逻辑变化迅速便捷的对应上来的问题。说了这么多,其实有个最好的样板,那就是网页。只是网页缺乏不同app互动的能力而已。
未来前端是软件化的网页,而后端才是软件开发的重心。当从一个单机变成一个多端输入的系统,这里面的变化就要求了更多的存储能力,更好的安全边界,更好的采集能力和分析能力,因为这才是价值所在,有数据不会用,有什么意义?根本的进化,就在于软件复杂度的变化,如果以前开发的是一个小软件,将来就是一个中型软件,甚至大型系统。从程序设计语言层面来说,就是要适应这种复杂化的变动,如何让一些本来复杂很多的东西,突然变得一般程序员也能掌握了,这似乎不可能完成,但是历史上VB做到了。
可惜,c#没有做到,c#这10年,把重点花在“炫酷”二字上,你看,我做得酷不。错错错,你虽然做得很酷,但是你把一件原本就很简单的东西,变得更加复杂了,你没有降低复杂度啊,你是在添加麻烦啊!winform很土,wpf很酷,但是wpf没有很简单啊!同理很多很多都是这样的结果。c#不断的推出更炫酷的技术,简直就是嘉年华,但是缺乏方向感,不知道自己该向那个目标努力,没有能够把技术转化为对生产力的解放。而酷的结果,反而是恰恰的和这十年的潮流反向而行,行业要求的是轻便快捷,而不是不停的添加累赘!如果一个语言在效率上迷失了,那只能说它不再是一个工具,因为工具的特征就是效率。并不是说发展,或者是复杂化是错误的,语言发展和复杂化是完全正确的一件事,但是你不能让你的用户适应你,而是你变复杂,却让你的用户变得简单,这才叫效率!
因此,我观察c#这十年迷失在两点上,一个是方向,如果他在后端变得复杂,添加更多概念进来,增加程序员的“麻烦”,这未必不是不能理解的,因为目标本身就复杂化了,程序员绝对没有办法用一个简单的思维去解决原本就更加复杂的问题,程序员本身也需要学习。可惜c#选择在前段变得复杂。第二个是前面说到的,炫技而不注重效率。
微软这些年,把重心转移到云后端,想必积累了不少经验,慢慢这些成绩也会反馈到工具层面上来,因此c#还是有很大的发展前景的。
C#错过的10年的更多相关文章
- 不可错过的10个超棒jQuery表单操作代码片段
jQuery 绝对是一个伟大的开源javascript类库,是帮助我们快速和高效开发前端应用的利器.可能大家在日常的开发过程中常常会处理表单相关的 javascript,在今天这篇代码片段分享文章中, ...
- iOS开发人员不容错过的10大工具
内容简介 1.iOS简介 2.iOS开发十大实用工具之开发环境 3.iOS开发十大实用工具之图标设计 4.iOS开发十大实用工具之原型设计 5.iOS开发十大实用工具之演示工具 6.iOS开发十大实用 ...
- 每位iOS开发人员不容错过的10大实用工具
内容简介 1.iOS简介 2.iOS开发十大实用工具之开发环境 3.iOS开发十大实用工具之图标设计 4.iOS开发十大实用工具之原型设计 5.iOS开发十大实用工具之演示工具 6.iOS开发十大实用 ...
- Android程序员不容错过的10款在线实用工具
Android十款在线工具,在做Android开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了.Android在线工具,包括在线测试工具,及其他较为重 ...
- Web开发人员不容错过的10个HTML5工具
HTML5已经成为当今世界的一个必定组成部分.由于World Wide Web万维网是使用超文本标记语言来架构和呈现的,于是HTML5成为了最流行的编程语言之中的一个.随着网络的不断扩张,Web开发者 ...
- Web开发者不容错过的10个HTML5工具
HTML5已经成为当今世界的一个必然组成部分.由于World Wide Web万维网是使用超文本标记语言来架构和呈现的,于是HTML5成为了最流行的编程语言之一.随着网络的不断扩张,Web开发人员非常 ...
- 每位iOS开发者不容错过的10大有用工具
内容简单介绍 1.iOS简单介绍 2.iOS开发十大有用工具之开发环境 3.iOS开发十大有用工具之图标设计 4.iOS开发十大有用工具之原型设计 5.iOS开发十大有用工具之演示工具 6.iOS开发 ...
- 学习Swift,一定不能错过的10大开源项目!
如果你是位iOS开发者,或者你正想进入该行业,那么Swift为你提供了一个绝佳的机会.Swift的设计非常优雅,较Obj-C更易于学习,当然也非常强大. 为了指导开发者使用Swift进行开发,苹果发布 ...
- Web开发者不容错过的10段CSS代码
Web开发技术每年都在革新,浏览器已逐渐支持CSS3特性,并且网站设计师和前端开发者普遍采用这种新技术进行设计与开发.但仍然有一些开发者迷恋着一些CSS2代码. 本文将分享20段非常专业的CSS2/C ...
随机推荐
- browserify学习总结
前言 在未接触browserify,虽然我知道它是一个前端构建工具,但还是有几个疑问: 1. browserify出现的日期? 2. 能构建哪些文件? 3. 附加的browserify代码体积是多大? ...
- ReactiveCocoa代码实践之-更多思考
三.ReactiveCocoa代码实践之-更多思考 1. RACObserve()宏形参写法的区别 之前写代码考虑过 RACObserve(self.timeLabel , text) 和 RACOb ...
- 简单的学习心得:网易云课堂Android开发第四章服务、广播与酷特性
1.Service (1)含义:Service是在后台长时间运行的应用组件,所在线程是main线程. (2)使用方式:startService能够执行onStartCommand中操作,bindSer ...
- Spring实现AOP的4种方式
了解AOP的相关术语:1.通知(Advice):通知定义了切面是什么以及何时使用.描述了切面要完成的工作和何时需要执行这个工作.2.连接点(Joinpoint):程序能够应用通知的一个“时机”,这些“ ...
- .Net Collection的一些理解——记录一次向实习生的答疑
公司最近进了个实习生,每天下班前我都会花一些时间来解答一下实习生的一些疑问.今天问起了关于集合排序方法Sort的一些疑问,这让我一下回到自己刚刚入行的时候.那个时候也遇到了集合排序的问题,为发现接口I ...
- SQL范式
第一范式:确保每列的原子性(字段不可分). 如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式. 释义: 1.每一列属性都是不可再分的属性值,确保每一列的原子性 ...
- 从零自学Hadoop(07):Eclipse插件
阅读目录 序 Eclipse Eclipse插件 新建插件项目 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写 ...
- android 项目中出现红色感叹号的解决方法
问题原因]:工程中classpath中指向的包路径错误 [解决办法]:右键项目名称 BuildPath ---> Configure Build Paht...中,然后上面有几个选项卡找到 Li ...
- Sublime Text 技巧
让sublime text2支持中文 安装Sublime Package Control 在Sublime Text 2上用Ctrl+-打开控制台并在里面输入以下代码,Sublime Text 2就会 ...
- redis、memcache、mongoDB 做了对比
from: http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对redis.memcache.mongoDB 做了对比. 1.性能 都比较 ...