200分讨论,软件开发究竟是变容易了,还是越来越难了?
最近一直在考虑这个问题,比如SAP ERP,基本靠配置就可以满足客户绝大部分需求。
而JAVA世界中的轮子越来越多,貌似什么东西都可以找到。
而且客户也在进步,不再追求华而不实的定制功能,好像买一台电视机一样,不会提出把面板改成机器猫图案的,那么按照20/80原则,软件80%的基本功能可以事先确定下来,不再需要每次重复开发。从这点来讲,是越来越简单了,以至于高中生也可以加入进来。
但是,剩下的20%,会越来越困难,因为,既然用了别人的轮子,那么要完成20%的功能,除了必须的工作外,还要深入到轮子的内部,彻底了解实现机制,并且按照已然存在的规范去开发,显然造成了一定困难。
轮子往往越来越集中到少数大企业,比如SUN\IBM\MS,他们处于商业考虑,不断搞出花样,那么可怜的程序员也要跟着学习新的轮子,而事实证明,这些工作是浪费生命,而且不会有太大的技术上的提升。
从这点来讲,是越来越难了,而且,越来越无聊了。
一直在寻找银弹,一直失望,那么,大家来讨论吧,你觉得软件开发是难了还是简单了。
参加就有分
[解决办法]
在一定程度上说,
随着大量封装的出现,
软件开发是越来越容易了。
但这种容易又带来了另外的问题,
把程序员都变成了编码员。
[解决办法]
哎
有什么办法?
谁叫人家是老大呢。天天搞新花样害人
[解决办法]
我认为凡是做了2-3年的java程序员应该不会再为懂hibernate不懂spring这样的问题烦恼了,java技术无非就是构建在java语法与设计模式之上的一个又一个应用而已。所以对于程序员来说,应该是越做越简单的。没有成长的程序员就会像楼主说的,越来越难。
[解决办法]
对于入门者来说,变得简单了
对于高手来说,变得越来越难了
[解决办法]
分工的细化,流水线上的工人越来越容易,管流水线的越来越难,随着抽象层次的金字塔越分越高,提高生产力的重任也占用越来越少数量的人类大脑。
[解决办法]
我是实习生(现在在公司里)。
我觉得应该是变得简单了吧,
因为东西都让Sun给写好了,
拿过来直接用就行了,
只要知道他是干什么的
就可以写了。
我懂的也不多。
[解决办法]
最主要是有些框架的广告做的太多,而程序员的最大毛病就是好奇,只要有新的就认为是好了
跟风的越来越多
我总体感觉软件开发越来越容易了,但是仁者见仁,智者见智
有些东西会用了,不见得能用好
有几个能真正明白struts的内部机制?!
这是一把双刃刀
[解决办法]
同意LZ的觀點。
隨著大量框架封裝的出現,使得一個項目的開發速度得以提升。提高了軟件生產效率。對於這種類似於流水線上的程序員來講,是越來越簡單了。
但是這種現象帶來了新的問題,就像樓主所講,這20% 的不同需求,也許會使得我們不得不更改原有的框架。這將給我們帶來很在的困難。
還有就是,所有框架都是死的,它在一些特殊的場合也會出問題,然而解決這樣的問題,必須了解框架內部原理。這給我們帶來問題的複雜度。
[解决办法]
我觉得学习的过程难了,开发的过程相对简单了。
科技在不断的发展,对于IT业来讲,如某某公司又开发了什么什么工具、语言、框架,其实无非就是在简化我们的开发过程,使我们专注于更加重要的事情。但同时我们就必须理解这个东西,吃透它才能更好的解决我们的问题。
例如
有了struts我们不用再像以前一样自己用servlet构建自己的分层机制了。
有了spring的IOC和AOP,使我们的系统具有更好的扩展性和可维护性。
所以在前期学习的时候,变的困难了,我们必须理解和掌握它,但在开发的时候却变的越来越方便,使我们的精力用到了更加重要的地方。
[解决办法]
[解决办法]
???????????现在还没有定论!!!
[解决办法]
我不知道是难还是容易了,
我只知道我现在基本就是复制粘贴了
加班不是攻破难关而是做更多的复制粘贴了
还没有做程序员以为程序员有很大挑战性
做了才知道也是一件不怎么有意思的工作
自己的作品是建立在别人代码之上
一直很郁闷
[解决办法]
是复杂了, 是由于复杂而产生的难度, 真正技术难度反而在不停的被掩盖
[解决办法]
个人觉得项目越做到后面,就越来越简单啊。
呵
我说的是web开发这块啊
[解决办法]
1.从整个软件开发的历史来看,从最原始的纸带打孔式编程,到汇编语言,到B语言C语言,再到现代的面
向对象编程语言C++、JAVA等,软件开发的难度显然是大大降低了。没有用C或是更古老的编程语言开发过大型
项目的同学可能对这点没有体会吧,呵呵。
2.如果仅仅说java,java1.1基本上是没有生产力的(就是不适用于开发大型项目),java应该说是从1.2
、1.3版本开始流行的,现在java已经发展到了6.0(还是7.0?)。对于年轻的java程序员来说,学的可能是
5.0的java,根本没有用过老版本的java,那么我可以告诉你,用惯了5.0,再去用1.4、1.3、1.2的java,你会
觉得非常别扭、非常不方便、非常不好用。从这个角度来说,java语言是越来越简单易用了,那么对于开发来
说也是越来越容易了。
但是,实际真的是这样吗?答案即不是“是”,也不是“否”。
首先,java语言本身越来越易用,现在的IDE也越做越好,还有很多、很好的开源项目、框架,帮你解决了
这样、那样的问题,用java开发项目确实是越来越容易了。想想以前,用servlet+jsp+JDBC开发一个应用,得
写多少个servlet?得写多少JDBC代码?你要考虑解耦合、事务等等各种各样复杂的问题。现在呢,SSH框架横
空出世,帮你把MVC解决了,耦合解决了,ORM解决了,事务解决了,你可以专注于业务代码了。
但是,框架本身又带来很多问题,首先你得学习框架吧?本来你以为学了java,你就可以说我精通java了
,可以出去找工作了。错,大错特错!现在几乎是个java程序员都懂得struts,懂得hibernate、ibatis、
spring、webwork的也不少,哦对了,还有ajax,ajax这个东西只是一种思想,具体的实现恐怕没有100也有80
吧,你说你能懂几种?还有数据库,你至少得精通一种主流数据库吧,比如Oracle、DB2、MSSQL等。嗯,现在
还有什么SOA,SOA也只是一种思想,它的实现也有很多,不过还好就一个WebService算是最流行的,那么你会
WebService吗?WebService的实现方式还有n种呢!
总而言之,java语言本身的进步、加上各种框架、技术的帮助,java开发确实是越来越容易了。但这个是
建立在技术熟练的基础上的。如果对这些个框架、技术不会玩、玩的不熟练,那么对你来说java开发其实是越
来越难了,因为学习这些框架、技术的成本比学习java语言本身的成本还高,因为要学的技术太多了。而且更
严重的是,这些个技术不是一成不变的,而是在不断变化中的,所以你得必须不断学习新技术,那么可以认为
这又增加了java开发的难度。
说了这么多,其实我真正想说的是
1.要不断学习,充实自己,那么开发就会变得简单起来;如果自己的技术落后了,那么开发将会是将很困
难的事。
2.但是,也不要被什么SSH这些表面东西所迷惑,以为会用SSH就牛了?更重要的东西其实是SSH背后所遵循
的设计原则,为什么要用Struts,什么是MVC?为什么要解耦,我直接new一个实现类不一样吗?ORM有什么意义
,到底是用ORM呢还是直接JDBC,如果用ORM那么是用Hibernate还是ibatis呢?思想或者说是设计模式比框架本
身更有意义,因为框架是会变化的,而思想、设计模式是不变的(至少变得比框架要慢得多吧)。套用一下中学老师的话:不要死记硬背,要在理解的基础上记忆。会用框架相当于死记硬背了,理解则是指要理解框架背后的思想,那么以后框架升级了甚至更换了,那么你学起新的框架也就省力了,因为不管是什么框架,他的精髓你已经都知道了,你需要学习的只是他的表象。
[解决办法]
讨论的好热闹啊
呵呵
学习
[解决办法]
应该是工具的进步使得开发(编程)变得简便了,以前用文本编辑器,比如记事本、写字板、ultraEdit。。。等等,要使用最基础的javac、java等命令行,现在有Eclipse、XmlSpy等等,有丰富的快捷键、提示、自动语法检查、自动编译等等,更有图形化的编程工具,不如某某Builder
但是开发的东西越来越复杂了,更加丰富的UI,更加复杂的底层架构,强大的功能。。。
就像原始社会,人们的工具只有木棒、石块等等,只要能打到野兔、野鹿,填饱肚子就可以了
而现代社会可以造出飞机、航母,但是要探索月球、火星。。。
[解决办法]
看后受益匪浅啊,开发难度的降低,带来的是工资的水平的降低,真不知道软件这一行业还算高薪行业吗?
[解决办法]
java三个有名的轮子ssh,真是想说爱你不容易,上手还算容易,等你看了书,有了要求,稍微深入一小下子,哈,原来完全不是那么回事。
[解决办法]
up
[解决办法]
信我回归CODE java!!!
[解决办法]
其实不能单纯的以简单和困难来说明这个问题,因为不同的标准、不同的领域,都是不同的,举个简单例子,你说开枪难不难,当然很简单,现在枪械这么先进,扣一下扳机,子弹就出去了,只要不是向着自己就可以,可以拿奥运会射击金牌难不难,当然很难,全世界就那么一个人,把一件事情做精做深,就算貌似简单的事情也是不容易的,而且编程是一项系统工程,不光是计算机知识,业务领域也应该有所了解,我一直认为,单纯的计算机只是一个工具,只有把计算机与它所服务的业务领域结合起来,深入了解整个系统架构,成为一个高水平的架构师,这才是编程的最终目的。所以这里没有所谓的难或者简单,如果你仅仅满足于编出一个简单程序,可以是不难,可是如果你对自己的要求是成为一个驾驭一个信息系统的架构师,那就不容易
[解决办法]
方向理解对了就简单,盲目追逐就难!
注重Java的内核!
[解决办法]
[解决办法]
需求是水涨船高的,所以不觉得什么容易了什么方便了,底层实现包装得越好,上层逻辑结构就越复杂,老板不会让你轻松的就是了,无论高手低手一律累残为止,
[解决办法]
我觉得是 越作越复杂
特别是这几天作 webservice 用到的jax-ws
看似方便 但还要深入他 我已经糊涂了
[解决办法]
要学的新东西越来越多,
自己的思维越来越少
[解决办法]
顶楼主啊,一般简单的技术网上基本有的,而真正难的技术就要靠自己琢磨了。。。
[解决办法]
越来越容易了,站在巨人的肩膀上能看的更远
[解决办法]
不管难了还是简单了,某个层次上程序员的工资不会出现大的变动。
做编码和做架构他们本身的技术含量在那摆着
[解决办法]
感觉是没有什么区别,框架的出现也只是为了能够规范程序的编码,不用框架一样能够实现。
如果是单纯的使用框架而不去学习为什么框架这样写的话永远都会停留在用上,我们应该学习为什么要这么用才是学习框架的目的吧
[解决办法]
容易了,肯定是容易了,因为我们不用打纸带了!
[解决办法]
对于入门者来说,变得简单了
对于高手来说,变得越来越难了
[解决办法]
了解业务熟悉业务,行业竞争那么激烈......一点也不容易
[解决办法]
技术上来说,封装的东西多了,不用写程序都从底层写起,可以集中精力到应用层以及业务细节上,这比较好,写程序变得容易了。
可是现在需求变化性要是大的话,对于开发人员来说写个真正的好软件反而越来越难了
[解决办法]
当然是越来越容易,这是毋庸置疑的。
楼主说的因为用了别人的轮子而变得困难的部分占20%其实并不成立。
我们可以这样考虑:既然别人的轮子导致难度加大,那么没有这个轮子前难度应该更低。也就是说,我如果不用这个轮子我就不用承担该轮子增加的难度。那么既然没有人逼你用轮子,你又为什么说轮子增加了开发难度呢?
[解决办法]
应该讲变简单了,程序员可以抽出更多时间去了解业务。
[解决办法]
我觉得还是简单了。因为只要对过去应用案例进行总结,抽取出可重复利用的部分做成模块,基本可以满足以后80%的需求,20%实际上也不复杂。应用做得灵活些也不难。
[解决办法]
傻瓜化的开发方式简化了初级程序原的思维,复杂化高级成员的工作
[解决办法]
20/80,80%的程序员还在停留在修改代码的层面上,那么还有那20%才可能是在核心层面。
个人见解。
[解决办法]
越来越难了,一个双核就不知道害死了多少程序员,四核又害死了一批。。。。
[解决办法]
我觉得变容易了 要不大家都说天下代码一大抄
只要有不会的去谷歌baidu一下就有
[解决办法]
入门越来越容易了,精通越来越难了
[解决办法]
流水作业
[解决办法]
技术学了就是自己的,这个年代,不学可不行,不断学习才是硬道理。
[解决办法]