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

     记得曾经有人问过我,学什么语言好,或者说更有“前”途?而在网上也经常看到关于语言优劣的争论,记得曾经还有.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这些知名网站的架构,就会发现,它们都是包含了几种不同的语言,而每种语言都在自己的强项上发挥作用。好钢用在刀刃上。批判不是一件坏事情,但是在我们批判的时候,更应该看到它的长处,因为也许有一天我们就要用到了它。

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

 

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

时间: 2024-09-19 16:38:42

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

如何选择开发语言或者开发工具

不管是PHP还是Java还是Python或者 XXX吧,我们在初学的时候都会面临一个问题:如何选择版本. 在此我收集千锋的一些学员.同事.大神.菜神的回答:(排名不分尊贵)      1.学语言就要学最新的,因为最新的代表趋势.      2.学习最稳定的版本      3.不要去追求新的,用的顺手最重要      4.随便选一个,没啥区别   也许你会觉得上面的答案也许有道理,好,那么针对上面的回答其实还是有很多问题的      1.趋势代表未来的一种态度,但是很多东西就算代表趋势,但也未必走

如何才能减少无休止的修图时间?提升高效率修图秘密

  今天要说的是如何才能减少无休止的修图时间,把更多的时间花在享受生活和拍摄上的小技巧.从此和熬夜修图说拜拜! 让我们面对这个赤裸裸的事实吧,那就是我们都不喜欢修图!无论现在的软件多么人性化!其实我们喜欢的是把自己出色的照片和大家分享的时刻,为了这种分享的喜悦,我们才在电脑前花了那么多的时间和精力,但是,很少人真的热爱修图的过程.既然如此,我们今天就来说说如何减少图片编辑的时间,加快图片处理速度. 杜绝选择困难症 无论是在家庭日拍了许多有趣的照片,还是在婚礼上记录了许多感人的瞬间,往往会发现你拍

c-VS2013C语言代码无语法错误后调试窗口无显示结果的原因

问题描述 VS2013C语言代码无语法错误后调试窗口无显示结果的原因 include include int main() { int a[2],sum; a[1] = 0; a[0] = 35; sum = a[0] + a[1]; printf("%c", sum); return 0; } 解决方案 %c -> %d 在最后加上 getch() getchar() system("pause") 三者之一 解决方案二: 调试的时候,你设置断点了吗,是不是

[网络对话]警官孙健:面对无休止的网上谩骂,我不知该怎么还击

新华网记者 韩元俊 因为在山东滕州"打狼行动"事件中发表了与爱狗人士不一致的观点而遭受谩骂和"http://www.aliyun.com/zixun/aggregation/13015.html">人肉搜索",山东省济南市公安局民警孙健一度感到十分痛苦.他以微博运营商没有及时处理网友谩骂侮辱的评论为由,将微博运营商告上了法庭.12月26日, 济南市市中区法院做出一审判决,要求被告微博运营商删除相关侵权言论,并向原告赔礼道歉. "滕州打狼&q

xcode-[c语言]无语法错误,但是结果不对,大一水平,求帮助~~!

问题描述 [c语言]无语法错误,但是结果不对,大一水平,求帮助--! 编译环境 xcode #include int main(int argc, const char * argv[]) { int k,i,j,a[4],m; printf("请输入4个不同的数字n"); for (i=0;i<4;i++) scanf("%d",&a[i]); for(i=0;i<4;i++) { for(j=0;j<4-i;j++) if(a[j]&g

u boot-S3C2440CPU 仿GT2440开发板u-boot启动程序,串口无信息输出

问题描述 S3C2440CPU 仿GT2440开发板u-boot启动程序,串口无信息输出 CPU:S3C2440 SDRAM:2个MT48LC32M16A2TG-75IT NANDFLASH:1个K9F2G08U0B 电路连接图同GT2440一样,就是换了个大点的SDRAM,硬件电路(包括串口)无任何问题,问题出现在软件,由于软件代码是从GT2440的u-boot移植过来的,可以再GT2440上正常运行,用示波器量SDRAM时钟管脚在刚上电时波形的时间明显比正常运行的GT2440板子上SDRAM

cmd命令执行jav...-用cmd命令执行java程序后,无响应,无报错

问题描述 用cmd命令执行java程序后,无响应,无报错 如图,回车执行后,无响应,简单问题,新手诚心提问,望不吝赐教. 解决方案 可能你的那个jar包就没有输出. 解决方案二: 无响应,无报错,说明你运行的程序已经正确的运行,结果就是这样没有响应 解决方案三: 可能他就是这样的一个包,做了该做的,就没有输出 解决方案四: 还要看你的程序是否按期望的结果运行了.是不是做了对应的动作,如果没有,那么就有可能程序虽然没出错,但是有bug 解决方案五: 应该输出什么?程序要实现什么

android app crash点forceclose后程序长时间无响应

问题描述 android app crash点forceclose后程序长时间无响应 如题,点home键,再点击程序图标启动,依然这样,只有从最近任务中杀死才能重新启动.不知道大伙有没有遇到过这个问题.

【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】

原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创]   第一题 #include<stdio.h> int main() { unsigned int a=6; int b=-20; printf("%d\n",a+b); (a+b)>6? puts(">6"):puts("<=6"); return 0; }  答案是:>6   第二题 #include<stdio.h>