目前WEB开发, 主要就是Java, Asp.net, Php三个方向, 从2005年开始就一直工作于asp.net+sql server方面, 但目前已经分部分精力在搞Java+mysql方面, 元旦之际, 若大办公室一个人在加班, 处理了一些事情后冷静想了一下这二类开发的长缺点这处。
感觉光阴飞逝呀, 自从有了微信后, 小小的节日也给我们这些时尚流的人刷得很隆重似的, 但元旦对我来说, 只是一个普通的日子,在这里祝大家新的一年生活多滋多彩,激情扬溢。
Asp.net开发, 用了几年神器一般的VS IDE与SQL Management Studio, 不管从哪一方面来说, 二个项加起来使用就如和18岁童颜巨乳女优约会般的感觉,温馨美好浪漫甜密。 不会有任何情绪, 从工作到结束, 不会在业务外的地方浪费一丝时间。 虽然是一名工作十年的穷吊丝, 也感觉到自己在某一领域是一名高富帅的感觉。
Asp.net拥有傻瓜式的IDE,使用十年左右时间了, 感觉已经让我失去了对事情摸索的习惯, 习惯一切就是天然无害或污泥而不染的感觉。
从开发环境安装-->新建项目-->页面设计-->代码开发-->代码调试-->日志输出-->生成编译-->项目发布, 在开发方面微软已经是一条龙服务, 比莞式ISO服务还周到。
在服务器运行方面阿里云这个大物又帮我完成了一切,配上几个web服务器, 添加个SLB负载均衡帮我们解决了压力流量分布单点故障, 添加个RDS又帮我们解决了数据库方面的一切问题, 还配有云盾啥啥的, 再配在配一套Hadoop+HIVE离线数据分析平台来进行各部门想要的数据, 一切就是这么完美。
开发人员只解决业务代码, 做一些高并发的地方进行优化, 对一些访问大的页面生成静态页面, ASP.NET发展到现在就像游击队手上拿着机关枪在射杀日本俘虏那样的简单, 小兵张嘎的实现版。
对大项目有完整编制团队可以选择多层开发, 项目经理只管构架, 主程负责接口, 高程负责类实现与一些算法,初程负责一些业务流程代码, 美女帅哥负责前端页面的js,div等等。对小项目三二人团队就用简单的三层开发, 李天平老师已经做出了一个神器, 建设个SQL数据库, 生成了50%的可用代码。(题外:目前在中国很多团队开发工程就三五人,用asp.net来开发简直就是完美的合作, 最近二三年使用Java,感觉真的是晕, 就三五个开发工程师团队开发的项目, 搞SSH框架, 一人负责一个模块, 开发时自己定义一个interface, 再到另一层实现一个类, 我KAO! 在JAVA方面没用SSH框架就好像没脸, 是男人没JJ的感觉, 其实不外乎就是复制,粘贴这些工作!)
asp.net从项目的开始到结束, 不会有半点紧张感觉, 不会出现任何突然间的情绪, 天天唱着小曲上班,吹着口哨下班。 生活感觉还是那么的美好, 要感谢党,感谢祖国,感谢....
但一个完美的东西发展得过于简单, 就没有物以稀为贵的市场需求, 当asp.net工程师越来越贬值, 做着越来越简单的工作时,而且微软对这些东西还收费的时候, 一切都改变了, 当asp.net连吊丝都当不起时, 真不知前路为何方? 前景会如何?
asp.net再不作一些改变, 再过二十年, 相信全中华人民共和国所有14亿群众, 应该没有几个人是不懂这门技术了, 相信到时已经普及到小学一年级的水平了, 如果还有少量公司在用asp.net, 应该是这样: 大公司招一些博士带科班生, 中型公司招一些科班生带培训生, 小型公司招一些培训生带小学生。
当年我们还在用ASP时, 很多人都说, 这等解析型脚本语言的劣货, 不面向OO,加个Com技术也是私生子,早应淘汰。 以前很多asp的公司纷纷转型到asp.net, 这是因为在以前版权问题在中国基本不会发生任何法律问题的时候, 现在不同了, 微软在中国招了千军万马, 成立部门或外包部分区域给其它公司, 对版权进行清查, 而且中国政府也越来越重视盗版问题, 所以asp.net的生存环境就发生了重大的影响, 大公司基本是视而不见, 中型公司是视而不用, 小型公司视为鸡肋。 只有一些公司偷偷的使用或用来做一些内部平台。 从此asp.net不再是上得厅堂下得厨房的18岁童颜巨乳女优。
(这段内容是在我觉得php与asp都是一类解析型的语言为前提下讨论)
当php这种免费脚本型语言整合了免费的mysql, 符合了世界大多公司的胃口, 这种以前给大家BS到井底的脚本型语言又变成了高富帅,不再指责它的页面与代码混乱, 也没有人指责是不是项目式的管理开发, 一切都可以接受, 就像8/90年代穿扎脚的牛仔裤,9/20年代穿宽筒牛仔裤,扎脚的已经快消失了, 但到了2010年后, 扎脚的牛仔裤又很流行了。 这就是市场, 市场决定一切需求, 过去一切的指责在一定需求下也会转变, 不知马克思的转化论有没有帮我们开发人员想过这方面。
我相信asp.net如果放开源码, 免费windows server系统, 免费sql server,再在跨平台上面对mono项目进行收购开源更新,对移动平台开发加强, 不用三天时间, 大家又开始重复以前指责asp的情况, 指责php这类的技术比丑小鸭还丑, 各种以前指责的话题又会重显一次。 虽然对java的冲击虽然没那么明显, 但相信也会改变很多。 很多人会提出, Asp.net性能不好比不上JAVA, 京东就是典型的例子, 最后还是得从asp.net重转java。 如果asp.net开源, 在百花齐放,百家争鸣的环境下, 这些问题应该都是可以得到解决的, 主要是目前没开源,而且平台又收费, 公司还要投入太多成本去研究这东西, 值不值得的问题。
综合以上:Aps.net是一个完美的产品, 但问题就是太过于完美了。 工作可以像游戏一般轻松,没压力,没有物以稀为贵的存在感, 一不小心就给人从穷吊丝的台阶挤下来。
最近二三年经常用到Java开发, 感觉JAVA是一门很不错的技术, 但JavaEE目前在大陆已经给框架绑死了, 开口闭口都是SSH, SpringMVC等等, 在大多公司如果说我是一直用的是servlet,或我单用Struts + mysql类开发, 或只用struts+hibernate开发,你对JAVA技术再叼再牛, 在面试官那里已经是60分以下, 你不会SSH你就是不合格。
在国内的公司, 多数是作坊式迭代开发为主, 团队没有完整的编制(产品经理,项目经理,系统分析师,高程,主程,初程,UI为主)基本上就是三四人的团队,一人做爹又做妈还兼职做钟点工, 开发时先在interface层打完接口, 复制过去实现类里面, 接着写代码, 可能才华太低发现不了这样开发的好处到底在那里, 唯一想到的就是增强了开发人员的ctrl+c/v的键盘操作。
JavaEE开人发员, 多数使用eclipse这个半成品, 如果和vs比起来, 连半成品都不如, 对英文水平好的人来说, 绝对不汉化, 对一些在国内毕业了好久已经把英文还给老师的工程师来说, 汉化成这鸟样, 真的不知怎说, 对存在的项目还要import, 像VS那样有个sln项目文件 , 双击就搞定, 而且import进来了, 还要对jdk的版本进行更新。 环境配置也麻烦, 需要jdk安装, 再建啥java_Home,再下载tomcat, 再建CATALINA_HOME, 再下载mysql, 再配置, 再改mysql.ini, 这些做法就是大家平时所说的OO了吗? 我看就是典型的面向过程。 初学朋友很多可能在运行,调试这二个方面都要搞很久, 为什么总是Source not found, 如果你没选debug, 你设置一万行断点也起不了作用, VS开发里面, 你运行时, 随便点一下,次次有效, 就这叫OO。
大家不要说这些习惯就好,因为这些话题讨论不来, 既然目前大家对代码是否OO又存在这么多的要求呢,为什么不能把这些工作也OO化呢? 我觉得像VS那样有个SLN文件来管理项目一切才是OO。
在SSH方面, 我感觉在国内这种人才流失这么大的环境下, 真的不建议使用。 当你代码真的是错了三岁小孩子都看出来时, eclipse当然会提示你, 有个小红XX标志一下。
但SSH以XML来解决很多问题, 讲啥耦合, 讲效率。
如果在XML里面动了一下, 你怎连启动都启动不起, 这叫OO吗? Java方面的开发工程师整天喊着OO, 像这些工作, 真的是已经OO了吗?Console输出的信息如果你懂的很容易解决, 如果不懂的,需要在百度上翻来翻去。
有时xml文件给人家动了一下, 或在改XML文件中途停一下出去,有人不小心碰了一下键盘,你就惨了。
我个人认为觉得把耦合变成一些配置XML的方法是最笨的,而且还要用到反射, 我真不知道效率怎更好。
举个例子:
首先Asp.net里有一个Page_Load, 任何页面加载时要显示的东西, 在这里整出来就能绑定到页面,不管是控件的值还是其它的数据控件都可以以OO形式进行绑定。
Java首先要转到一个Action, Action处理了再通过变量取得值绑定到页面? 这种设计是一种怎样的OO呢? 我看这是一个真正的面对过程。
再讲MySQL, 最好的IDE也就是Navicat, 只做一些简单的建表, 写写函数, 查询的功能, 大约15%的成品率吧。
综合以上:Java是一种完美的技术,完美的跨平台,完美的移动开发,性能高稳定好,而且开源运行免费, 再配上让人发疯的工具, 让专业的人用这专业的工具做专业的事情, 待遇自然就高,市场需求自然就大。 但工作真的让人烦恼, 同时希望JavaEE潮流不要给一些框架绑定。
二者合结总结:相对于大多数工程师来说, Asp.Net能让你用着高大尚的东西享受着比不起吊丝般的待遇, 而Java让你用着半成品享受着吊丝般的待遇! 关于待遇方面我不太想深入讨论(所谓行行出状元,我讲的是平均数据), 51job自己查查去, 前几天我也查了一下, 前者和后者没得比。
最后的呐喊, 在互联网信息产品都是免费使用从服务中赚钱的年代, 微软能否改变一下, 让asp.net开源, 运行平台全免费, 加强.NET对移动平台开发的能力, 让asp.net也能进行大公司的视野。 让我的白头发慢长一些时间, 说真的用eclipse 进行SSH开发, 真的让人头疼。