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 ...
随机推荐
- bootstrap无限级分类 jq拓展 之前的无限级分类的封装版~
git地址:https://github.com/zhangjiahao93/jQ.select HTML部分 <!DOCTYPE html> <html> <head ...
- ButterKnife基本使用
ButterKnife基本使用 Butter Knife处理字段和方法绑定. 重要更新: 目前(2016.4.29), ButterKnife的最新版本是8.0.1. Demo项目已更新: htt ...
- Android开发学习——开发调试工具-DDMS应用,ADB进程,Logcat
DDMS -- Dalvik debug monitor service 调试监控服务 对模拟器进行相关配置. ADB进程 Android debug bridge 建立eclipse和 ...
- YourSQLDba版本升级总结
在使用YourSQLDba做数据库备份.维护时,像其它软件一样,版本升级是不可避免的.因为YourSQLDba一直在不停更新版本.扩展功能.下面介绍一下升级YourSQLDba时的具体步骤和一些注意事 ...
- Linux命令学习总结:hexdump
命令简介: hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为ASCII.八进制.十进制.十六进制格式进行查看. 指令所在路径:/usr/bin/hexdump 命令语法: ...
- WINDOWS登录系统之前(欢迎界面)运行指定程序脚本服务
方法一:创建可在系统登录之前运行的服务 PS:需要用到两个程序—Srvany和Instsrv,点击 http://pan.baidu.com/share/link?shareid=4111024491 ...
- iptables一次性封多个ip,使用ipset 工具
ipset是什么? ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也 ...
- EcmaScript相关文档
ecmascript5.1中文文档 ECMAScript 6入门 JavaScript 标准参考教程 ECMAScript 5.1简介 ES5中新增的Array方法详细说明 firefox社区java ...
- netty4虚拟内存不断飙升
去年升级过一个老的netty3的程序到netty4,近期突然注意到一个问题,就是这个程序随着时间虚拟内存会不断升高.之前升级的时候担心存在内存泄露,所以还特意用jstate跟踪过gc回收的情况,并没有 ...
- 每天一个linux命令(1):ls命令
1. 命令格式: ls [选项] [目录名] 2. 命令功能: 列出目标目录中所有的子目录和文件. 4. 常用范例: 例一:列出/home/peidachang文件夹下的所有文件和目录的详细资料 命令 ...