有些是我真的抛弃了,有些是因为其他原因而远离了。
抛弃排行榜第一名,JSF
我的老朋友Athor说,跟你说吧JSF不好,你还坚持,最后还不是放弃。
抛弃理由。web客户端编程就是JavaScript + HTML + CSS, 非要用Java在后台渲染,号称把事情搞简单,结果搞得更加复杂。没有遵循Web开发的本来面目,一定要用Java的世界观去看待世界。多么荒唐。本来我的UI问题,就改一下JavaScript就行了,JSF非要在后面包一个Java类,然后... 一切变得超级复杂。当年我用这个技术做OA和自己的英语单词记忆网站,真是蠢蛋!
抛弃排行榜第二名,J2EE/JavaEE
不要讲什么企业级开发,这不是星际探险的企业号。企业级这个词,在计算机领域就是stupid, 厚重的框架,专门为小白设计的规则。学了那么多规则,结果让人失去了自我思考的能力,也就真的变成了小白。为什么写个CRUD的程序都要用EJB? 进入这个圈套的人有人以架构师自居,沾沾自喜,其实做了Sun, IBM大公司的帮凶而已。顺便说一下,我所在的Esri,也号称是企业级的GIS平台,我们都知道这意味着什么。
抛弃排行榜第三名,SSH
不小心才发现,前三名居然都是Java。Struts/Sprint/Hibernate. 一个简单的JDBC干的事情,用Hibernate能干出多糟糕的玩意。后果严重,你还懂多少SQL, 你还能学到多少数据库的知识?你让程序慢了多少倍?你的程序因此浪费了多少能源?还有用Spring的,什么都是反射,难道本来简单易懂的代码被拆分成若干XML去粘帖,就显得很有架构师的风范?
Struts2,似乎是设计来挑战JSF的,也和JSF一样的操蛋,比谁更复杂吧。
抛弃排行榜第四名,MyBatis
曾经很喜欢你,毕竟你是半ORM,我能完全控制你。也比Hibernate轻快的多,可是无论如何,对于我们这种追求性能的老家伙,JDBC都是最佳选择。自己开发一个Java Bean,将查询结果映射到Java Bean的属性上,是一件再简单不过的事情。更何况还有lombok来简化Java Bean的实现。
抛弃排行榜第五名,ATL Server
2006年,我很得意的炫耀,我可以用VC写网站了。其实那个时候我还是web开发菜鸟,远不如现在这么精通。抛弃理由有几个,第一这是基于windows的技术,互联网公司有多少用Windows做服务器,买的起license么?买得起,我也不干,钱多骚的荒? 第二,基于COM实现的,搞上一堆ATL模板。看看CppCMS,人家不仅跨平台,而且容易使用的多。
抛弃排行榜第六名,COM/COM+
没有办法,当年费了多少心血掌握的技术,到现在没有多少公司在用。已经被市场所抛弃。
抛弃排行榜第七名,ASP.net和C#
对这个技术没有太大的抵触,只不过工作不相干。互联网时代,微软的技术都要靠边站。
抛弃排行榜第八名,Closure
这是一个基于JVM的lisp方言。我花了不少时间学习,并准备大用之。结果启动实在太慢,我每次都要等10-20秒。然后转向了newlisp,从此无法挽回的爱上了newlisp。
抛弃排行榜第九名,MySQL
用了很久。只不过在MongoDB出现之后,凡是没有强事物性的业务,都用MongoDB了,貌似我还没有什么强事物性的数据要处理。
抛弃排行榜第十名,SQL Server & Oracle
企业级数据库,前者是微软的产品,由于从事互联网软件后,果断抛弃。后者太贵,自从改斜归正不用盗版后,就再也没有碰过。
抛弃排行榜第十一名,Eclipse
对多数人来讲这是非常好的IDE,对我来讲却不是。因为我要的IDE应该是Visual Studio这样安装即可用。不要让我配半天插件。NetBeans就是我要的。如果要自己配,我用Emacs DIY一个IDE。所以Eclipse这种半成品对我没有吸引力。自从会了Emacs开发Java之后,果断抛弃。
抛弃排行榜第十二名,Subversion
自从用了Git之后,再也不愿回去。SVN太慢了,而且Git命令功能的确强大。这个,不用命令行的人是难以体会到的。
或许还有很多,困了,以后想起来再加上。
抛弃排行榜第十三名,MFC/WTL
理由很简单,工作中再也用不到了。自己写软件也都是web界面,传统的桌面软件没有机会写了。而且路人都知MFC是个不好的库。为什么不用QT呢?
抛弃排行榜第十四名,g++
一直追着g++不断的升级到4.8.1,终于可以用c++11了。可是当一次又一次的陷入boost模板编译的冗长错误信息甚至误导之后,终于决定使用clang++,从此,再也不必从天书的编译错误中寻找有用的信息。
抛弃排行榜第十五名,ACE
2007年,上海龙软的底层库叫BFL,一个糟糕的跨平台C++库。那年boost还不如今天这么成熟,当时研究了ACE,觉得真是个好东西。可是整个C++社区在boost的领导下风格就是往模板化编程走,ACE再好,再历史悠久。我毕竟要向C++11前进。只能说再见。用boost替代之。
抛弃排行榜第十六名,Ant
Ant是很好的构建工具,如果不断的扩展之,可以做很多事情。可是我没有那么多时间去写这么个大工具来完成我的持续集成,自动测试,自动部署,代码扫描等功能。所以自然就走向了从ANT到Maven之路。
抛弃排行榜第十七名,CMake
开始用CMake是因为在学习使用CppCMS的时候必须的。不过在掌握了newlisp之后,就很容易写出一个替代各种Makefile的脚本来直接调用gcc/clang编译器。有什么比直接阅读编译器文档更能准确控制C++程序编译过程来的方便呢?
抛弃排行榜第十八名,IceScrum
做Scrum可以就用白板,或者Excel。可是当角色越来越多,突然你发现多人合作就是一个work flow. 需要系统将大家的工作连在一起。IceScrum由于收费版本太贵,issue管理功能没有,显然不如Redmine backlogs。
抛弃排行榜第十九名,review board & gerrit
这两个都是用于review的,gerrit是非常专业的review系统,对它我表示尊敬。只不过考虑到实际代码管理中还需要一些项目管理,issue管理的功能,而且要容易学习和使用。GitLab是更好的选择。