当前位置: 首页 > 编程日记 > 正文

微软,您的.net为中国程序员带来了什么?

往事如烟:2003年,那时我还在念大三,像中国大多数学生一样,为到底是投诚Java还是效忠.net日夜争论,上下求索,迷茫中特别渴望有一盏明灯照亮我辈学子的前程,当时,各大媒体的报道是市场中.netJava平分秋色,各领风骚,我的很多师哥多曾持此般言论:跟着微软有馒头吃,这些都或多或少的影响着我们的抉择。

我的很多同学基本是选择了.net,原因大部分是相同的:首先,我们为学校免费开发的成绩查询系统、新闻发布系统等等基本上都是基于ASP+Sql Server的,因为他们好学好用,所以抱着老子是英雄,儿子是好汉的心态,进一步学习.net是水到渠成的事情。再次,.net学习资料,开发文档可谓一应俱全,.net的开发过程也确实易于上手,比起我那帮学Java的同学,一碰到问题就得翻遍整个互联网,成天恨得Java咬牙切齿,我们是舒心多了。最后,就是个人崇拜问题了,那时候大家都是学生,除了知道Windows和微软之外,Unix、Linux都只是美丽的传说,谁都不曾一睹芳容。微软就是我们心中的太阳,其他的如SunBea、Borland之流都是些乌合之众,我们靠着微软的这棵大树好乘凉,好奔个灿烂的前程。

毕业后,就依靠.net这个武器拼杀于各个求职现场了,很多公司需要.net技术的,可都是些小公司,那些学Java的同学找的单位都是大公司,待遇不错,发展前景也明朗得多,多年来学Java的悲情苦恨似乎一下子就烟消云散了,而我们.net派则或多或少有点郁闷,但是我们还是一样斗志昂扬的猛虎出山了,并笑言:三年后看我们如何用.net灭了那帮竖子。

两年来在软件业的摸爬滚打,眼界大大拓展,同时对各个平台、编程语言有了较深入的了解,所以,今天我大胆发问:微软,您的.net为中国程序员带来了什么?只为当年我的那一腔赤诚,也为我今天的许多困惑。

我是学.net的,两年来我一直坚守着嫁鸡随鸡,嫁狗随狗的传统道德,对.net,对微软不离不弃,即便在前年那个.net权威向全世界质疑.net战略时,我还是对.net忠心不二,并轻视那权威竖子不足与谋。可以说,.net信仰我一直没有丢失。我是用.net的,两年来我一直在努力学习和掌握它各方面的知识,并对开源项目DNN深入研究,为.net这么的强大功能、这么高的开发效率而自豪,可以说,.net技术水平我一直苦苦相随。

而这些年,.net给我带来了什么?不错,我先要感谢.net,通过它,我学到了很多东西,也顺利的找到了工作,目前月薪也翻了几番,在北京算个入门级的白领,表面上不错,但请仔细来观察我的路程,两年来我所有从事的项目,没有一个是大项目,准确的说,没有一个是超过30万元的项目。为什么?不是兄弟我无能,是你微软老兄不够努力,不够大度啊。你.net绑死在Windows操作系统下,可真正的企业级应用谁用你漏洞百出的服务器?因而也就没有重量级的用户采纳你才华横溢的.net

说句实话(我不怕招来无数板砖),.net无论是在语言设计、框架设计等各方面都比Java来得漂亮,是真正的后起之秀,在Studio环境下编程那是行云流水,痛哉痛哉的事情,也许我是让微软惯坏了,每次我写Java程序时,一打开Jbuilder或者Eclipse时,那慢得如牛的启动速度,极不人性化的操作就直皱眉头,可现实是,人家Java比你.net混得滋润得多,因为人家大度,人家海纳百川,所以钱财滚滚。

每次我们去谈项目的时候,金融、电信行业的用户就明确表示不用.net,为什么?人家的服务器都是Unix的,.net在这里连生存的机会都被你微软自己掐死了,我连给你分辩的机会都没有。中型企业呢?人家也是因为你的Windows服务器不争气,.net不能跨平台而弃之不用。至小型企业,或者稍微囊中羞涩一点的中型企业,.net在这里倒混得有滋有味,可惜这些企业把钱看得比命还重要,开价低得你想哭。而他们的需求也往往简单,有个内容发布系统、留言系统等差不多够了,这些东西在网上一搜一大把,而且都做得不含糊,用得着你开发吗?好不容易有个OA的单子吧,人家小企业根本就不懂软件开发,成天变需求,这么个小单子可以把你呛得出血,人家还说怎么做这么个东西要这多么钱?这时候,我血涌上来了,当时就想全身捆着***包,往微软总部冲

再来横向比较.net在各个领域的应用吧。首先,在桌面应用上,Java就难以望其项背了,用.net开发效率远高于VC,而执行效率也不含糊,你要硬说是Delphi的再生,我也一点意见没有,可还是不太成气候啊,弄弄小程序可以,可是你做产品,有用.net的么?为什么?大多数情况下要附带个.net framework包,2000以下的系统还没法用,而且很多系统功能.net确实没法完成,可以说,桌面开发上,很长一段时间仍然是VC的天下。Web应用上,J2EE势不可挡,ASP.net尽管很优秀,但是由于整个生态环境不好,没有超强的服务器支撑,IIS在应用上差强人意,不能够跨平台,尽管在小客户,轻量级应用上,ASP.net有点人气,但这不过是螳臂挡车,所以说Asp.net要与J2EE争锋,那是关公战华雄,高下立判。还有一个重要的领域,就是移动开发了,这点我现在天天祈祷,微软可千万不要软下来了,终端应用一直是你微软的强项,目前表现还算是可圈可点,你要是.net在这方面也输给了J2ME,我只好另投名主了。

综上所述,目前.net在应用中处于一个非常艰难的时期,确实不像Java,首先在J2EE上大获成功,令人睹目,.net目前还没有在某个领域体现出王者之风,罪魁祸首就是绑死在Windows上,可你要微软改变这一策略,你可以选择等待,就像当年秦香莲等陈世美一样。现实情况,对.net是坚挺,还是另投名主,那就看各位看官的人生规划了,目前我的打算是这样的,仅供参考:

继续深入学习.net,达到一个新的高度,毕竟这孩子也相当不错,尽管那些有钱的企业,大企业都对它没有兴趣,选择了.net你可能会穷一点,但是它的应用领域是越来越清晰了,小型企业应用它肯定长驱直入,我最看好的是移动开发领域,当然这要看Windows Mobile了,它有多成功,那么.net就有多风光,但是我一直坚信在个人终端领域,微软无人可挡其锐。

其次,微软这些年一直高喊要向企业级进军,因为这是块利润最丰厚的领域,看看IBM在中国混得红光满面就知道了,我们个人,当然也要跟上,钱程似锦啊。不过,我是不会带着.net这把剑杀进来的,因为微软在企业级应用做得还很不够,我现在努力的是,学习在Unix下开发,以图进取。当然,有志向的朋友可以有余力攻向VC++,可以做桌面应用,只可惜我们早已陷入了人民盗版的汪洋大海中,你的产品有多出众,盗版就有多厉害,何况在当下中国若非王选、王志东、王永民之软件至尊,你要能做出成功产品,别忘了给我发封电子邮件,你的Fans我是当定了。

天,慷慨生我,地,慈悲养我,天地于我,即有所爱,必有所望!既然今生选择了软件开发,就无怨无悔,我所希望做到的,仅仅是想把我的工作做好,写的软件别人能用上,愉快的用上。

转载于:https://www.cnblogs.com/MoreOVER/archive/2007/10/11/920624.html

相关文章:

NHibernate初学体验记

NHibernate 是一个基于.Net 的针对关系型数据库的对象持久化类库。NHibernate 来源于优秀的基于Java的关系型持久化工具Hibernate。NHibernate持久化你的.Net 对象到关系型数据库,远胜于写SQL去从数据库存取对象。你的代码仅仅和对象关联,NHibernat 自动…

java运算符-逻辑、三元运算符

1.逻辑运算符 逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false。 运算符 运算规则 范例 结果 & 与 false&true False | 或 false|true True ^ 异或 true^flase True ! 非 !true Flase && …

windowsclient开发--为你的client进行国际化

之前博客讲过函数: GetUserDefaultUILanguage Returns the language identifier for the user UI language for the current user. 我们国际化主要是支持三种语言,中文简体、繁体中文、以及英文。 获得用户使用语言 所以我们能够通过GetUserDefaultUI…

大数据主要职位

大数据主要有以下职位: 1)数据分析师Data analyst:指熟悉相关业务,熟练搭建数据分析框架,掌握和使用相关的分析常用工具和基本的分析方法,进行数据搜集、整理、分析,针对数据分析结论给管理销售…

【Vegas原创】DataSet相互添加DataTable

//为DataSet添加DataTableds.Tables.Add(dt);//为DataTable添加DataSetdatatable dt dataset.Table[0]

大数据岗位必知必会的53个Java基础

文章目录1. java中和equals和hashCode的区别2. int与integer的区别3. String、StringBuffer、StringBuilder区别4. 什么是内部类?内部类的作用5. 进程和线程的区别6. final,finally,finalize的区别7. Serializable 和Parcelable 的区别8. 静态…

4514: [Sdoi2016]数字配对

Description 有 n 种数字,第 i 种数字是 ai、有 bi 个,权值是 ci。 若两个数字 ai、aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数, 那么这两个数字可以配对,并获得 cicj 的价值。 一个数字只能参与一次配对…

bzoj 3339 莫队

题意: 求任意一个区间的SG函数。 想到线段树,但是线段树合并很麻烦。 线段树——分块。 分块的一个应用就是莫队算法。 怎么暴力递推呢? 从一个区间到另一个区间,Ans 取决于 Ans 和 加入和删除的这个数的大小比较。加入一个新数&a…

Ajax检测注册用户是否存在

HTML代码如下:LoginValidate.aspx<% Page Language"C#" AutoEventWireup"true" CodeFile"LoginValidate.aspx.cs" Inherits"LoginValidate" %><html xmlns"http://www.w3.org/1999/xhtml" ><head runat"…

Java Robot对象实现服务器屏幕远程监视

Java Robot对象实现服务器屏幕远程监视2006-01-16 17:33 作者&#xff1a; xiepan110 出处&#xff1a; BLOG 责任编辑&#xff1a;方舟   摘要&#xff1a;  有时候&#xff0c;在Java应用程序开发中&#xff0c;如&#xff1a;远程监控或远程教学&#xff0c;常常需要对计…

Oracle常用傻瓜问题1000问

1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码&#xff1f; administrator/administrator 3. oracle 8.0.5怎么创建数据库? 用orainst。如果有motif界面&…

安装需要的第三方库时,命令行输入pip提示不是内部或外部命令

简介 在做Python开发时&#xff0c;安装需要的第三方库时&#xff0c;大多数人喜欢选择在命令行用pip进行安装。 然而有时敲入pip命令会提示‘pip’不是内部或外部命令。。如图&#xff1a; 解决办法 1、在python安装目录中找得到script文件夹&#xff0c;查看文件夹内部是否存…

ehcache导致Tomcat重启出错

最近使用ehcache出现了问题&#xff0c;只要在配置文件中打开缓存&#xff0c;Tomcat在重启时就会报内存溢出异常。按说ehcache自己开启的资源&#xff0c;应该自己关闭才是。经查阅资料发现&#xff0c;需要在web.xml中配置一个监听器&#xff0c;该监听器会在应用程序关闭的时…

[置顶]完美简版学生信息管理系统(附有源码)管理系统

简版学生信息管理系统 目前为止找到的简版系统中最新、最全的java类管理系统 点击进入简版系统 如果无法直接连接&#xff0c;请进入: https://blog.csdn.net/weixin_43419816/article/details/104234590 做CSDN最完美的搬运工&#xff01;

怎样成为一名优秀的系统工程师

一个优秀的系统集成工程师(包括售前和实施)的技术线路笔者注:并不是每个都要求掌握,只是寻找自己的一条技术线路1&#xff1a;网络基础知识&#xff1a;深刻理解网络基本概念&#xff0c;例如>ISO/OSI、TCP/IP、VLAN、各种LAN、WAN协议、各种路由协议、NAT等等Cisco&#xf…

星期六第一次加班

虽然说老板叫我们加班&#xff0c;但是貌似没有我什么事情的饿&#xff0c;和张明在一起&#xff0c;真的很不自在&#xff0c;我知道我很自大&#xff0c;我在漫漫的改变自己&#xff0c;他听不惯我说话&#xff0c;但是有什么的呢&#xff01;我相信他是一个好的程序员&#…

WPF入门(三)-几何图形之不规则图形(PathGeometry) (2)

WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 原文:WPF入门(三)->几何图形之不规则图形(PathGeometry) (2)上一节我们介绍了PathGeometry中LineSegment是点与点之间绘制的一条直线&#xff0c;那么我们这一节来看一下点与点之间绘制曲线ArcSegment 先来看一段代…

zookeeper图形工具——zkui

虽然zookeeper安装包提供了客户端工具zkcli&#xff0c;但是命令特别少 &#xff0c;每次想看看里面的节点信息特别费劲。 幸好有图形工具——zkui&#xff0c;https://github.com/echoma/zkui&#xff0c;下载地址 https://github.com/echoma/zkui/wiki/Download。 上个图&…

第一篇博客,java学生管理系统(挑战全网最全)

java学生信息管理系统&#xff0c;&#xff08;课设必备&#xff09;&#xff0c;附有源码和简版链接 博主虽然技术不高&#xff0c;但是系统写的真的是没话说&#xff0c;留着开学java课设用了。 直接转载链接了&#xff0c;查看系统入口 https://blog.csdn.net/weixin_4341…

ccna实验大全

ccna实验大全启动接口&#xff0c;分配IP地址&#xff1a; router> router> enable router# router# configure terminal router(config)# router(config)# interface Type Port router(config-if)# no shutdown router(config-if)# ip address IP-Address Subnet-Mask r…

实现分布式服务注册及简易的netty聊天

现在很多地方都会用到zookeeper, 用到它的地方就是为了实现分布式。用到的场景就是服务注册&#xff0c;比如一个集群服务器&#xff0c;需要知道哪些服务器在线&#xff0c;哪些服务器不在线。 ZK有一个功能&#xff0c;就是创建临时节点&#xff0c;当机器启动应用的时候就会…

《深入理解计算机系统》学习心得二:关于show-bytes的 学习

此段代码&#xff0c;使用强制类型转换来访问和打印不同程序对象的字节表示。show-bytes打印出每个以十六进制表示的字节。 /* show-bytes - prints byte representation of data */ /* $begin show-bytes */ #include <stdio.h> /* $end show-bytes */ #include <st…

Jquery基础:append、prepend、after、before、appendTo的区别

append() 是在被选元素的结束标签前面(即改被选元素的内部)插入指定内容。 <html><head><script type"text/javascript" src"/jquery/jquery.js"></script><script type"text/javascript">      $().ready(…

域名删除时间及whois状态说明

国际域名状态 Active : 正常状态&#xff1b; Registry-hold&#xff1a;注册局暂停&#xff0c;域名没有解析&#xff0c;不能正常使用&#xff0c;可以续费&#xff1b; Registry-lock&#xff1a;注册局锁定&#xff0c;域名有解析&#xff0c;正常使用&#xff0c;不能更改…

JavaScript中的正则表达式解析

正则表达式(regular expression)对象包含一个正则表达式模式(pattern)。它具有用正则表达式模式去匹配或代替一个字符串(string)中特定字符(或字符集合)的属性(properties)和方法(methods)。 要为一个单独的正则表达式添加属性,可以使用正则表达式构造函数(constructor functio…

Markdown上下标内容多于一项

用{ }括起来。转载于:https://www.cnblogs.com/144823836yj/p/10261391.html

详述FileUpload 控件上传单文件

第一步&#xff1a;添加两个Label控件&#xff0c;一个是用于标题显示&#xff0c;一个是用于上传完成消息提示。 第二步&#xff1a;创建一个FileUpload控件到Page页面&#xff0c;注意FileUpload控件本身只提供文件的选举操作&#xff0c;而实际的文件上传功能需要我们创建一…

基于μC/OS—III的CC1120驱动程序设计

基于μC&#xff0f;OS—III的CC1120驱动程序设计 时间&#xff1a;2014-01-21 来源&#xff1a;电子设计工程 作者&#xff1a;张绍游&#xff0c;张贻雄&#xff0c;石江宏关键字&#xff1a;CC1120 嵌入式操作系统 STM32F103ZE 驱动设计 摘要&#xff1a;本文根据实…

LinkQueue的基本创建

队列是一种先进先出&#xff08;first in first out,缩写为FIFO&#xff09;的线性表。它只允许在表的一端进行插入&#xff0c;而在另一端进行删除元素。和平常我们排队打饭类似。 链队列是用链表表示的队列的简称。一个链队列需要两个分别指示队头和队尾的指针&#xff08;分…

请教一个算法问题,有两个数组A,B,判断A中是否至少有一个元素和B中元素相同...

最笨的办法当然是二层嵌套循环&#xff0c;但觉得应该有更好的方法&#xff0c;但是着实想不出来&#xff0c;想听听大家的意见&#xff0c;大家帮帮小弟 i.e string[] A{"X","Y","Z","W"}; string[] B{"X","E",&…