为什么做 Java 开发的公司需要那么多程序员?
因为用了spring。
原因1个人能干的活,现在分m层,c层,v层,后面还有数据层,业务逻辑层,需要很多人,每个人负责1层中的1小块,天天开会。
设1个系统每层5个模块,分3层,那模块和层的最多调用排列组合关系是
5**3=125种
如果是10层
5**10=9765625种
如果是18层
5**18=3814697265625种
看到没?因为分层过多,指数爆炸了。
无数个可能选择,导致选择成为难题,所以需要天天开会。
你看搞java的人,比搞c++人要多好多,原因就在这里,c++虽然复杂,但用模块划分,每个人承包一个模块就可以很清楚地分工,用动态链接库,可以很好地物理分层。
但java就不一样,天天搞ioc,aop这种把静态语言动态化应用,编程全面xml化,开发个应用,后面需要安装几百m的jar包来做平台支撑,安装布置又需要一批人。
spring的mvc,导致了复杂度大幅上升,实用的框架分层需要8层10层,说实在话,像淘宝,京东,这些网站,复杂度并没有他们宣传的高,都是业务应用,都是crud,技术含量其实很低。
他们这些网站吹得像神一样,主要是他们的商业模式成功,能赚钱,并不代表技术水平有多高。
如以前一个网管做了一个导航网址,流量很大就赚钱了,但这种开发html的技术并没有多高,也没见他天天吹开发html水平有多高。
当年12306网站的并发,比他们更高,几个大学生用开源软件搭一个也能支撑90%的并发,后面持续改进,都可以用。
可见这些公司都是用重金收购了一大批人才,但是这些人才多数都是浪费,被高薪包养了而已,平时没事干就喜欢干分层,分18层来开发,开会时人多热闹。
在网站上实现高并发方法很多,各个语言都可以实现,并不一定要用java,如facebook用php都可以实现高并发,微软用.net可以实现高并发,腾讯用c++实现高并发。
人家安卓系统是一个人开发出来的原型,比特币也是一个人开发出来的,linux的初版也是一个人开发出来,很多3d引擎一开始也是一个人开发的。
实际上在软件开发上,人数多根本没有用,多数人只是混子,拉后腿的。
所以java的spring分层框架,就是这些人没事时写出来的八股文,很多小公司就是用这种n层框架,天天开会,导致开发工期不断加长,工期加长,老板天天去人才市场招人,说要招高手,高手去了又要寻找一次银弹,把框架分层重构一遍,工期又拉长了,不断恶性循环,所以开发java的人特别多。
工期不断拉长,成本不断上升,人越来越多,赢利越来越难,很多老板也因此倒闭了。。。