当前位置:工程项目OA系统 > 泛普各地 > 湖南OA系统 > 长沙OA系统 > 长沙OA软件行业资讯
帮你节省项目开发的7种正在流行编程语言
在企业应用编程领域,谈到主流的编程语言可以用博大精深来形容。现实世界里的应用程序代码绝大多数是用少数几种主要编程语言中的某一种编写而成的。对一些公司来说这种编程语言是Java,而对另一些公司来说这种编程语言则可能是C#或PHP。有时候为了满足诸如游戏等应用程序对性能的要求,企业编程人员也用C++或其他一些常用语言来编程,而这些语言最后几乎无一例外地都要用标准化的SQL语言来和数据库联系。
如果程序员想在企业部门谋得职位,又没有掌握该公司所主要使用的那些主流编程语言,那是很不明智的。不过让人惊讶的是,许多小众语言正在企业界迅速崭露头角。看看这些非主流的编程语言,你会发现有几种语言的运用尤其普及,被用来解决各种常见的问题,另有一些传统的小众语言则是一直牢牢占据稳固地位。因为它们都提供了极具吸引力的功能,因而编程员有必要学习这些新兴编程语言中的一种或者几种,掌握这些语言如何使用字母、括号、花括号及其他标点符号来完成任务。
值得一提的是,虽然下面这几种小众语言都提供了主流语言所没有的功能特性,但有许多还是依赖主流语言而存在的。比如,一些小众语言运行在Java虚拟机上,实际上利用了Java团队的开发技术。而在微软开发出C#之后,它就明确表示想把虚拟机向其他语言开放。这些细节也许可能让这类应用程序的部署更容易,但是对编程人员实际编写程序来说不太重要。不管怎样,下面这几种语言正在企业应用开发领域赢得越来越多的追随者是事实,也许到了该分析一下它们的优点的时候了。
1.Python:适合科学计算
喜欢Python的人似乎有两种:一种是讨厌括号的人,另一种就是科学家。前一种人开发了更容易解读、不像C的派生语言那样到处是左括号和右括号的Perl,从而帮助开发出了Python这一语言。没过几年,由于这种解决办法非常好,结果成为出现在谷歌App Engine上的第一种语言——这清楚地表明,Python拥有在云环境易于扩展的那种结构,而扩展性正是企业级计算面临的最大难题之一。
与Stephen Wolfram为数学家们开发的数学软件Mathematica不一样,Python从不提供明显为了满足科学家要求而调整的任何数据结构或元素,但是这种语言在科学实验室当中居然有很高的人气,实在有点费解。Python的开发者Guido von Rossum认为,Python之所以能在实验室环境流行起来,是因为“科学家们在试图解释结果时,往往需要即时给出某种初步的解释,所以让他们可以非常迅速地工作并且几乎立即可以查看结果的动态语言很有吸引力。”
当然,Python方面有许多函数库可以满足科学家们的大部分要求。NumPy和SciPy只是最有名的函数库中的两个而已。这些函数库作为开源项目日益得到丰富,并专门针对科学计算进行了调整。
将Python用于研究项目的并不是只有像制药公司这样的科研和工程企业。华尔街的许多公司现在高度依赖数学分析,还经常从大学请来科学家,而他们带来了用Python编写代码的习惯。如今Python在华尔街非常流行,甚至有公司提议要求债券招股章程里面列入Python算法,用于明确谁可以拿到怎样的投资回报。
2.Ruby:用于快速建立原型
一些人可能认为,Ruby和Python根本不是“小众”语言,但从企业角度来看,它们的确是常常被挤向边缘的新兴工具这却是不争的事实。话虽如此,Ruby(或者更准确地说Ruby on Rails,即Ruby与Rails框架的结合体)越来越经常被用于建立软件原型。它是在Web 2.0迅猛发展之后进入企业领域的,许多网站最初都是用Ruby编写的试验品。Ruby的众多支持者之一37signals公司实际上就是使用Ruby来部署代码的。
Ruby成功的秘诀在于采用“约定优于配置”(convention over configuration)软件设计模式:命名一个变量为foo后,数据库中的相应列也自动被命名为foo。正因为如此,Ruby on Rails是一款适合建立原型的出色工具,这给了用户键入foo、将变量命名为foo的唯一理由。Ruby on Rails可为用户处理数据的增、删、改等常规任务。
Ruby on Rails站点致力于登记分类可存储在数据库表中的数据。有名的例子包括像37Signals公司的Basecamp、Backcamp和Campfire这些Web应用软件,以及把小组讨论、辩论和时间表组合起来的一批网站。Ruby on Rails可处理这些数据库表的格式编排工作,还能处理好决定该显示哪些信息。如果使用Ruby on Rails的命名约定,不需要大量重复性工作,就能快速开发出用于生产环境的优质代码。
许多生产级Ruby网站运行Jruby,这种用Java编写的Ruby就驻留在Java虚拟机(JVM)上。Jruby用户在同时处理多个线程时可获得JVM的所有本领,这个优点对有许多并发用户的生产级环境非常重要。
3.MATLAB:为解线性方程系统而编写
MATLAB是为数学家们解决线性方程系统而编写的语言,它在企业界越来越受关注要归因于如今的企业需要分析数量庞大的数据。许多比较先进的统计方法要将人与广告、歌曲或网页对应起来,而它们依赖一些算法的强大功能,比如MATLAB提供的那些算法。
随着日志文件变得更庞大,预计MATLAB的应用会更广泛。人们查看浏览的最热门页面列表是一回事,但从一组复杂的路径提取想法却需要强大的统计功能:人们在星期一还是在星期五更有可能购买衣服?产品瑕疵与生产线之间是否存在什么关联?
MATLAB背后的MathWorks公司提供了一大堆白皮书,介绍工程师们在如何搜寻统计解决方案。比如,丰田车队在风洞及其他实验室分析预测其参加美国纳斯卡(NASCAR)汽车赛的结果、加拿大的生物诊断研究所在寻找治疗烧伤的最佳药物等。
与MATLAB近似的还有众多的开源语言,包括Octave、Scilab、Sage和PySci(PySci是上面提到的Python库之一)。所有这些工具都有助于处理复杂的统计分析工作,如公司想了解客户买过什么、该客户将来想买什么等,用MATLAB进行这种复杂的分析工作现已很常见。
4.JavaScript:每个浏览器都会用到
JavaScript绝不是一种默默无闻的编程语言。正好相反,它可能是世界上被编译次数最多的编程语言,那完全是由于每当有人打开网页,每个浏览器都会下载相应代码、重新编译。尽管有上述优势,同时采用AJAX技术的网页也越来越普及,但JavaScript还是很少被认为是在大型机上运行的语言。
倒不是说这方面没有做过努力。早在1996年,网景公司就试图让JavaScript成为其服务器平台上的通用语言,但最后只是在浏览器端站稳了脚跟。最近热捧JavaScript的公司之一Aptana眼看开源AJAX Web服务器Jaxer根本不成气候,只好叫停了开发工作。小型试验公司AppJet使用由Java编写的Rhino JavaScript库,以简化服务器端的代码编写工作。该公司后来在2009年被谷歌收购,现在似乎致力于其他项目。
不过,JavaScript从来不缺新的应用。比如,开源的面向文档的数据库CouchDB没有使用SQL语言来查询,而是采用Map函数和Reduce函数这两个JavaScript函数,前者用于选择,后者用于归并。
Node.js算是最近冒出来的让人比较兴奋的服务器端JavaScript框架之一,它重新激起了昔日的梦想:让客户端编程和服务器端编程彼此协调。其软件包采用谷歌为谷歌浏览器开发的V8 JavaScript引擎,让该引擎决定如何为发出去的数据编排格式。
一般而言,凡是有需要用到少量脚本的地方,JavaScript都能找到新的用武之地。如果大型应用程序的开发人员想要让用户能够编写子应用程序,JavaScript也算是最简单的方法之一。JavaScript将在企业领域继续发展壮大,而每次只需要一小段代码。
5.R:专为统计分析而生
如今,统计分析工作越来越多地用R语言来完成,不过一些纯粹主义者还是用S这个最初的名称来称呼这种语言。Tibco公司销售一款名为S-Plus的商业版产品。
以后恐怕不会有S++了,因为这种语言更多地是一种LISP语言或Scheme语言,只是多了计算统计函数,以及通过漂亮图片显示结果的功能。要是公司老板希望计算机快速处理数10亿行日志文件,查找模式、聚类和预测变量,那么R或S是一种备受喜爱的解决办法。
R可以说是数值和统计方法领域的一把瑞士军刀,可快速理清庞大的数据集——这种数据集太大了,也许称之为瑞士军用大砍刀更合适。Tibco公司Spotfire S-Plus的产品管理高级主管Lou Bajuk-Yorgan表示,现在有许多客户在使用其软件,用来帮助他们研究商业或工程项目如何运作或者项目为什么会失败,其中一个例子就是分析气候模式,找出风力发电机建在哪里最合适。
6.Erlang:面向跨多个服务器的应用开发
你的服务器需要同时响应许多不同的独立消息吗?需要把这些请求分配给不同的处理器核心或在世界上不同地方的服务器吗?这实际上是企业计算难度最大的地方。Erlang就擅长处理这些任务,这种开源语言最先由爱立信计算实验室的科学家们开发而成。
这种语言将传统的函数式编程与已经编译成本地机器码的现代虚拟机结合起来,这种语言结构有利于编程员们开发出更容易跨多个处理器核和多个虚拟机的程序代码。许多Web服务器和CouchDB实际上是用Erlang实现的。这很合理:要求接收用JavaScript而不是用SQL编写的查询语句的数据库本身就是用Erlang编写的。
CouchDB仅仅是个开头。许多处理“庞大数据”的项目经理在构建用一种可以扩展的方式来存储大量数据的系统。Gemini Mobile公司的开源项目Hibari提供了一致、可扩展的聚类,用来存储在故障后可自行修复的键值对。有了功能式框架让编程员可以更容易开发出能高效处理多个连接的大型应用程序。
7.CUDA扩展:适合大规模并行任务处理
CUDA扩展其实是函数库,用于对视频卡编程,以便处理大规模并行任务。严格上来说,它不是一种语言,只是C语言的扩展而已。不过,一些企业的程序员还是开始探究将这种大规模并行架构用于游戏领域制作场面逼真的血液喷溅效果。这里需重新编写循环语句以便实现大规模并行处理,这意味着,重新考虑来自C或C++编程方面的许多惯用手法,CUDA扩展因而显得更加重要。
用到CUDA扩展的机会很多,包括机器视觉、大规模模拟和海量统计计算。数据分析的许多问题天生具有大规模并行的特点,使得GPU处理器值得关注。最近,知名GPU厂商英伟达(Nvidia)举办了一次专门探讨CUDA应用的会议,有几场分会就专门介绍计算流体动力学、计算机视觉、数据库及数据挖掘、金融动力学及分子动力学。光这方面的应用就非常广泛,足以解释为什么大企业的编程员们对CUDA很好奇。
英伟达高级副总裁Dan Vivoli出席了英伟达举办的那次大会,科学家们在会上介绍了探讨GPU的并行计算机制如何适用于这些领域的论文后,他说:“显然,GPU在应用方面进入了广阔的天地。现在,GPU处理器遍及所有不同的学科和行业领域,因此CUDA大有用武之地。”
- 1云计算 让分离之忧不再
- 2做不见面的互联网的OA软件公司才是最好的
- 3用开源软件建垂直搜索引擎
- 4高性能计算平台要贴近应用
- 5电子签名与认证:网商应用知多少?
- 6六大方法让云计算部署如虎添翼
- 7如何选择数字光端机以及光端机使用保养
- 8vSphere、Hyper-V与XenServer 你选哪个?
- 9多租户架构对云很重要
- 10部署适用于云的多租户基础结构
- 11Novell: IWM为云计算护航
- 122011年统一通信十大趋势
- 13三种3G技术的优势分别是什么?
- 14OA软件的综合事务处理与会议管理功能
- 15协同OA办公系统的培训前准备工作
- 16左右托管式VoIP通话质量的五大因素
- 17信息技术与电子政务的“融合”
- 18EDA 和 SOA 的融合以及实践
- 19自动分层存储越精细越好?
- 20配置VLAN让HYPER-V环境更加灵活
- 21Windows 7操作系统下的备份与还原
- 22如何让IaaS服务免受DNS漏洞的威胁?
- 23网络视频监控发展的5大驱动势力
- 24长沙OA软件房地产行业解决方案
- 252010年数据中心网络:双层网络来临
- 26微软HPC Server 2008 R2 Beta2四“新”
- 27基于SOA模式的企业架构设计
- 28中国联通北京手机支付商用亲体验
- 29科技世博会 精彩IT
- 30选购重复数据删除方案的五个指标
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼