技术开发 频道

TSS.Net调查:技术人员仍在语言之间举棋不定

   【IT168分析评论】编者按:根据著名的TSS.Net网站的读者调查显示,仍然有众多的技术人员在C#,VB.NET和Java语言这些选择之间举棋不定。值得关注的是,2005-2006年C#的开发者使用率保持稳定,而VB.net和J2EE的开发者使用率仍然在下滑。

    尽管几年来微软.NET平台的C#语言的使用处于高潮,对于微软来说仍然有必要进一步发展它的Visual Basic.NET语言。根据部分分析家和最终用户的说法,原因在于,虽然VB相关工具和编程例子不易理解,但是使用开发技术的公司需要拥有多方面技能的开发人员。

    据Midvale, Utah-based Burton 组织的一位分析家Lyn Robison所说,微软继续支持这两种语言非常有意义。“还有相当一部分VB开发者,而VB.NET提供了通往.NET世界的一座桥梁。C#是.NET框架的规范化语言;目前它和Java竞争得异常激烈。”

    “目前有VB6的开发者需要进一步跟进到.NET,也有Java的开发世界与之竞争,” Robison 说 。“对于这两种语言,继续支持并且在.NET框架上实现另外的编程语言,对于微软来说非常有意义。”

    C#长期以来都是TheServerSide.NET读者最钟爱的语言。根据今年的TheServerSide.NET读者调查发现,大多数接受调查者( 大约61.5%)在使用C#作为他们的主要编程语言,接下来是VB.NET ,占11.1%, ASP.NET (8.8%), Java (8.4%)以及 C++ 占3%。至于选择这些语言成为他们工作语言的原因,因人而异。一部分人出于个人偏好,一部分人因为技术团体,还有一部分人两面下注。但是大多数似乎都认为:对于.NET开发人员,选择C#还是VB.NET没有明显的性能优势,在语法上两者也非常相似。 

    虽然过去开发人员在快速开发大规模企业系统中倾向于选择C和C++,小规模桌面应用多选用VB6(在更早之前),但是VB.NET的功能使这种差异几乎消失了,根据一家位于Indianapolis,为运输和制造业开发软件的公司SolutionAvenue LLC的方案工程师Dave Leininger的说法,“如果你追溯过去,方兴未艾的VB被人们使用因为它更加亲切;C被使用是因为从性能的角度它有一些VB难以比拟的能力,”

  Leininger认为,选择VB.NET还是 C#“如果以可评估的方式使用二者,在大规模系统中并没有什么区别。”

  据Burton组织的Robison所说,“我究竟是用C#还是用Java?”这个问题在企业IT环境中非常典型,在.NET环境下,VB.NET和 C#之间的选择经常归结到程序员的背景,Robison谈到,“如果你有VB程序员,你选VB.NET,如果没有,那就用C#。这取决于开发团队的技术人员。仅基于这两种语言之间微小的差别还不足以做出决定,”他说。“更确切地说,开发者的经验和技术团队是最主要的决定因素。”

  Leininger的工作室和开发小组,跟其他组织一样使用很多种语言,选择时一般取决于项目、客户需要和目前已经掌握的技能。Leininger使用VB.NET, C# 和SQL做开发。他属于典型的被调查读者。这些人通常有一种他们主要使用的个性化的语言,当然他们也使用其他很多语言。读者调查发现88.2%的人使用C#,76.7%的人使用ASP.NET,41.2%的人使用VB.NET,28.7%的人使用Java,还有27.4%的人使用VB6。

  据剑桥、麻省的Forrester调查机构调查研究发现,C#的使用率从2005到2006年保持稳定,根据2006年9月《商业科技消费学软件和服务研究》被调查的部分企业来看,大概在18%。VB.NET的使用率从2005年的37.2%下降到了2006年31.1%。Java/J2EE则从39.5%下降到34.7%。

  Leininger在做选择时的主要依据是看可用技能和帮助。“因为多方面的原因,比如说现有技术,我们可能更多地使用VB.NET ,”他说,“因为有很多VB.NET顾问有助于我们的工作,如果我们不得不去外面做项目的话,尽管情况在18到24个月以后可能会发生变化。不管微软怎么说,我认为它们的语法非常相似,加上它(C#)被内部用于他们自己的项目,他们会使C#成为他们支持的标准。”

C# 走进学校
  位于Phoenix ,Ariz.的Apollo组织(Phoenix大学的母公司)的身份管理经理 Greg Belanger说,VB.NET的命运是他的工作组是选择C#还是Java的原因之一。

  “当我们评估这两者:VB.NET 和C#时,似乎C#更受宠,”他说。“除了传说中的C#更快一些,我主要关心的是我们有大量的写C++和Java的人员,当我们转到C#时他们的代码更加简洁。从VB和经典ASP转型过来的人写程序代码;其他人写面向对象的代码。”

   除此之外,他说,在Java和C#的组织结构上大同小异,开发者可以在这两者之间游刃有余。例如,他说,有一个包含Java和C#服务的面向服务的体系,“如果我有问题或顾虑(对C#写的程序),我可以找到懂Java的人让他们看一下代码,他们会给我指出应该注意的问题。同样,如果我们接手了一个Java的项目,我们能够马上开始工作因为它和C#是如此的相近。”

  Belanger说,C#相比VB.NET的优点是可以忽略的,但是他确实也说C#有更多好的编程例子。“如果我要看设计模式或者单元测试,用C#写的比用VB.NET写的会有更多好的面向对象的代码例子,我最喜爱的工具当然就是C#工具,”他说。Belanger使用JetBrains ReSharper C#重构工具。

“我想集中精力在单元测试上,这是大量的面向对象的开发,大量的重构,”他说。“看起来C#的开发团体和这一切更加协调。”

  对于哪一种类型的测试被他们的软件开发过程所支持时,被调查的读者的答案如下:85.1%的人引用单元测试,引用构建确认测试(47.3%),压力测试(42.9%),装载测试(41.6%),自动测试(40.5%)。


VB.NET开发工具的影响
  工具的可用性有很大影响,Belanger说。“我认为人们容易小看VB.NET,但这是不公平的。我把VB.NET看成是微软所作的缓和VB开发者和经典ASP开发者的东西。在我看来,优秀的面向对象的代码能够像用C#那样容易地用VB.NET来写,但是我认为没有工具像C#的工具那样好用。”

  对棋盘游戏类网站Itsyourturn.com的创始人Patrick Chu来说,C++的背景选择C#是很自然的。他发现过渡很容易,现在他更喜欢C#。“使用C#不久我就发现它比C++容易得多,”他说,“我讨厌C++每次我创建一个新函数时都得将它加入到头文件里。C#不必这样做节省了我不少时间。”
Chu写了一个定制程序来转换C++代码应用于将他的网站运行到C#上。这样一来有意外的好处。“我们的应用程序中存在内存漏洞好长时间了;我一直找不到它。转到C#以后问题就消失了。”
然而,Leininger建议.NET工作室开始学习C#。“如果你认为它永远不会成为主导语言,那就再好好想想吧,”他说。

 Burton组织的Robison说,今后关于Java与.NET之间的竞争会较少,而关于Java和.NET与动态面向对象语言比如Ruby之间的竞争会更多。不过.NET在这一点上可能会有优势,他说。“.NET在接受起来和适应新的编程语言方面比Java虚拟机似乎处于更有利的位置。”

  C#和VB.NET的下一次发布应该令人为之一震。作为.NET全面升级的一部分,微软正在开发一种查询语言,名叫LINQ,非数据库开发人员也能使用。它工作于微软的语言之中。
“我们内部的跟踪数据表明,VB和C#的采用率几乎是持平的,” 微软Visual Studio组的产品经理Jay Roxe说。

“如果把VB早期版本计入在内,Visual Basic仍然是世界上最受欢迎的编程语言和开发环境。正在从Visual Basic 6转到.NET框架的开发者可以从两种伟大的编程语言之间做选择,两者都提供了.NET框架的全部功能,”他说。

  oxe说微软仍继续投重资在LINQ及其跟它具有类似特征的语言这两种语言上。
 
  相关名词:

    refactor 重构:就是牵一发而动全局。你修改一个变量的名称,所有使用该变量名称的所有地方都能自动修改,免去了手动修改的麻烦。随着敏捷开发技术的成熟,软件开发过程中越来越多的需要进行重构。在代码编写过程中也可以运用重构来提高效率。
   最简单的重构的就是重命名了。在不支持refactor的IDE中,要对类进行重命名要进行大量搜索和替换,还要排除名称近似的情况,十分麻烦。而在支持refactor的IDE中,IDE会搜索整个项目中对该类的使用并自动替换成新的名字。如果一个函数太长,支持重构的IDE可以很简单的将一段代码提取出来作为一个新的函数。如果要将一个类抽象成一个接口,IDE也可以方便的将类中的方法提取出来生成接口源代码,项目中使用该类的地方也都被自动替换成新的接口。
refactor还有很多有用的方式,基本上主流IDE都支持refactor。
  
------------严禁转载,转载需和责编联系!------------

0
相关文章