`
suoyihen
  • 浏览: 1356469 次
文章分类
社区版块
存档分类
最新评论

从关于程序语言的无休止争论想开去 -- 如何选择开发语言

 
阅读更多

记得曾经有人问过我,学什么语言好,或者说更有“前”途?而在网上也经常看到关于语言优劣的争论,记得曾经还有.Net和Java两大阵营的激烈“骂战”。我向来不喜欢参与任何一种这种我认为没有任何意义的讨论,因为在我看来程序语言没有好坏优劣之分,只有应用的领域的不同。

我自己从学C开始,但是由于工作中不常用到而基本荒废,如今正在恶补中。Java是我工作的主流语言,既然是Web开发,JavaScript、HTML、CSS这些都是不可缺少的。而有时也会用到C++、C、Perl、Python和Ruby。

在这里我只想申明一个观点:在不同的应用领域的选择最合适的语言。

关于不同的语言适合不同领域的例子比比皆是:C可能无论如何也做不了网页,而HTML估计也不能做驱动程序。

也许最关键的问题不是在这个上面,而是集中在同一领域的不同选择上,比如Java和.Net,这个时候就需要多方面综合考虑。但是相互的“攻击和谩骂”是没有必要的。就比如,一个人喜欢吃包子,而你喜欢吃馒头,你难道就非要说包子不好,馒头如何如何好,甚至想把做包子、卖包子和吃包子,都要大打一顿,然后让他们都改吃馒头,才解气。估计没有人会这么做,因为大家都知道你喜欢吃什么那是个人喜好口味的问题,但是最终的目的是一样的,都是为了填饱肚子。当然程序语言的选择上,可能不仅仅是口味上的问题,还要考虑很多其他的因素。

1、目标领域。我想这是首要的条件,当然估计也没有人会在这个上面出乱子,因为一般不会有人选择HTML做嵌入式开发。

2、公司或者部门的一贯技术路线。之所以提到这一点,主要是考虑到经验积累的原因,并不是不鼓励创新。一个软件公司(指国内大部分的中小型公司)一般都会有比较固定的技术路线,比如J2EE、.Net、LAMP等等,在长期的项目开发和实施过程中,都会有大量的问题出现,同样也就有了对这些问题的解决方法。这就宝贵的经验!作为开发人员,很可能都比较讨厌写文档(我也不例外)。可是如果把自己平时开发过程中遇到的问题和解决方法都能记录下来,若干年后,不失为一笔宝贵的财富。你也是否也有过同一个问题Google很多次的经历呢?

3、未来的发展。这个可能考虑的较少,但是也许要考虑到。当我们面对是用Qt还是用C++开发Symbian程序的问题时,我们可能就不得不考虑这个问题了。

4、客户的要求。选择什么样的开发语言,好像一般没有客户什么事情。可是也许有些比较“谨慎”的客户,在投标之前已经找了“咨询公司”评估了各种平台,从而选择了他们认为“最先进”的一个。那么在这个时候,在以尽量满足客户需求为导向的理念的指导下,我们除了尊重客户的意见,其他还有什么办法?(当然也许有个性的仁兄说,我不做了,换家公司。老板可能并不在意这些吧!)

5、应用的规模和开发周期。应用规模对语言的选择也有着很大的影响,比如我想开发一个企业级的应用,我可能会选择J2EE和.Net,可是如果我只想做一个公司甚至部门内部应用,那么ROR就好了。开发周期也是同样的道理,在很紧张的开发周期要求下,我们就没有办法选择重量级的平台。

6、兼容并包,打开思路。这个不算条件,算一个思路吧。如果我们考察Facebook、MySpace、Youtube这些知名网站的架构,就会发现,它们都是包含了几种不同的语言,而每种语言都在自己的强项上发挥作用。好钢用在刀刃上。批判不是一件坏事情,但是在我们批判的时候,更应该看到它的长处,因为也许有一天我们就要用到了它。

知己知彼,百战不殆。所以即使我们不想用这个平台,是不是也要先了解它,在确定技术方案的会议上,至少我们可以说出让别人信服的放弃它的理由!

作为一个技术人员,学习能力是至关重要的软实力,大家应该没有异议。因为,在争论的同时,也许我们更应该考虑在合适的时候,是不是应该在批判的同时更深入了解下我们批判的对象呢?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics