软件开发十大语言
《软件开发十大语言》由会员分享,可在线阅读,更多相关《软件开发十大语言(5页珍藏版)》请在装配图网上搜索。
1、软件开发必须掌握的十大技术(转)楼主one_ear (妄人)(恶人谷:修罗传媒董事局主席)2003-02-14 11:09:24在扩充话题/程序人生提问能跟上关键技术的发展,是你在就业市场和未来保持优势的最佳手段。你对我们列出的十门 技术精通吗?哪怕是大略精通?罗素琼斯,执行编辑2002年12月11日我不知道你的具体工作是什么。如果你是某冷门领域的专家而变得不可或缺,或者你们的 公司十分稳固,以你现有的技术就足以安度你的职业生涯,那我不知道你是否有失业的危险。 不管怎样,请你先不要急着寄出那些告诉我你们的公司对用VB3十分满意或你们除C以外 永不用其它语言的信件,并保留起那些讲述.NET将如何
2、把Java扫地出门、XML将如何取代 关系型数据库、或你怎样能用汇编语言或C写任何软件而任何其它开发工具都不重要的信件。现在,想象一下如果你像很多受裁员和公司倒闭影响的同行一样失去了工作,那将会怎样。如果你突然需要搬往它处该怎么办?如果你的公司突然做了技术转向又怎么办?在目前的就业市场,经理们是根据当前和未来的开发需要招聘雇员。作为开发人员,你所 掌握的知识是你找工作和保住工作的关键。你要了解技术的发展方向,跟上技术的变化,这 一点十分重要,即使你永远不用再找开发方面的工作。这里是我选出的当前最重要的十大开发技术,最重要的排在前面。看完本文后,请务必加 入talk.editors.devx讨论
3、组,提出你选出的十大技术。1. XML首先,你要了解XML。我不是说仅仅是XML规格本身,还包括一系列相关的基于XML的 语言:最重要的是 XHTML、XSLT、XSL、DTDs、XML Schema (XSD)、XPath、XQuery 和 SOAPo那些在过去5年内从未碰过键盘的人,可能不知道XML为何物。XML是一种文本文 件,使用与HTML类似的标记。XML能定义一个树状结构,并能描述所含的数据。XML最好的一点是既能存结构化数据也能存非结构化数据。它既能存贮和描述“规格的” (regular)表格数据,也能容纳和描述“粗糙的” (ragged)文件数据。XHTML是现今写HTML的首
4、选方法。因为它是形式完好(well formed)的XML,比起 古老的、通常是畸形(malformed)的HTML文件,XHTML格式的文件更容易处理。XSLT和XSL是用于把XML文件转成其它格式的语言。可转换的格式包括:文本文件、PDF 文件、HTML、以逗号为分隔符的文件,或其它XML文件。DTD和XML Schema描述XML文件所能包含的内容的类型,并让你“验证” XML文件 内容的合理性,而不用写特殊代码以确保内容符合规则要求。XPath和XQuery是用于从XML文件中抽取单个项目或一组项目的查询语言。XQuery扩展 了 XPath,因而更重要。XQuery与XML的关系正像
5、SQL与关系数据库的关系。SOAP是Web服务之间的一个标准通讯协议。尽管你不需要对SOAP标准一清二楚,你应 该熟悉一般的schema和它的工作原理,以便能应用这门技术。2.Web服务Web服务是XML流行后的一个直接产物。因为你能用XML描述数据和物件,因为你能用 schema确保XML文件内容的合理性,因为XML是基于文本的规范,XML为跨平台通讯标准 提供了一个极其方便的基本格式。如果你还从来没碰到Web服务,你可能很快就会碰到, 在未来5年内,你几乎肯定会碰到。熟悉Web服务十分重要,因为它是目前所有跨不同机 器、不同语言、不同平台和不同地点的通讯协议中最简单的一个。不管你需要与否,
6、Web 服务是迈向互用性的重要一步。XML工作组主席John Bosak曾说XML 给Java 一些事做”。实际上,Web服务让所有 语言都有了一些事做。Web服务让在大型机上运行的COBOL应用软件能调用在手持设备上 运行的Java应用程序、能让Java applet与.NET服务器交谈、能让微机软件与Web服务器 无缝连接,并提供了一个相对容易的方法,让企业不光能向外界提供数据,还能提供功能, 而且是一种与语言、平台和位置都独立的方法。3. 面向对象的编程很多程序员仍认为OOP是象牙塔里的技术。但如果你想一下是什么语言在过去的10年里 占主导地位,你就会理解OOP不是象牙塔里的技术oOOP
7、从Smalltalk开始,传到C+和Pascal (Delphi)o Java使OOP大踏步地迈向主流,几年后的VB.NET和C#则完全确立了 OOP的优势 地位。尽管这些语言中的多数并不要求你必须会OOP,但我觉得如果你不了解OOP的基本 概念也不知道如何应用这些概念,你能找到的编程工作将越来越少。4. Java、C+、C#和 VB.NET我把这些语言列在一起,并不是建议你成为每一种语言的专家。我的理由是:学习编程最 有效的方法之一是看代码,而你能看到的大量的代码很可能不是用你所喜爱的语言编写的。在过去几年,各语言的能力越来越接近。现在,你可以用VB.NET写Windows服务、Web 应用
8、程序或命令行程序。即使你只使用一种语言,你也应该学一些其它语言,以便能看懂那 些样例,并将其翻译到你所用的语言。这4种语言是基本核心,还有其它一些满足不同需要、 颇具用途的语言,如 FORTRAN COBOL、APL、ADA、Perl 和 Lisp。5. JavaScript尽管名字有些相像,但Java与JavaScript并无关联。为什么一个脚本语言会如此重要呢? 因为所有主流浏览器都用JavaScript。如果你需要写Web应用程序,你就有足够的理由学 JavaScripto JavaScript可以用作ASP或ASPNET的服务器语言,也可以当做用于扩展XSLT的 功能语言(functi
9、onallanguage)o JavaScript 是 Mozilla/Netscape 中用于激活基于 XUL 的程序接口的首选语言。JavaScript的一个变种ActionScript是Flash MX的编程语言。将来, JavaScript很可能成为新设备的编程语言,以及大型应用软件中的宏语言。与JavaScript相对照的是VBScript。尽管Microsoft的软件对VBScript有良好的支持,但 VBScript在未来的开发工作中很可能是一个糟糕的选择。就是Microsoft也倾向于用JavaScript (或Microsoft自己的变种:JScript)写客户端程序。在选择
10、脚本语言时,请选择JavaScript。6. 正则表达式(RegularExpressions)查寻关系数据库可以用SQL,查询XML可以用XPath和XQuery,查询纯文本文件则可以 用正则表达式。例如,你可以用一个命令从一个HTML文件中查找并删除所有的注释。各种 开发语言内置的一些简单的文本查询功能,如IndexOf函数或VB中经典的InStr函数或 Like操作符,根本不能与正则表达式相提并论。现在,各种主要的开发语言都提供使用正 则表达式的途径。尽管正则表达式本身既难懂更难读(是回到早期计算机时代的一种倒退), 但它却是一个功能强大而且未被充分利用的工具。7. 设计模式正像OOP通
11、过把对象分类以简化编程一样,设计模式对一些普遍的对象之间的交互进行 分类,并赋予一个恰当的名称。OOP用得越多,设计模式就越有用。一些最常用的模式的 名称已经变成了软件开发领域共同使用的术语,所以要跟上信息的主流,你就要对设计模式 有相当的理解。8. Flash MX如果你需要在客户端得到比HTML和CSS更多的图形和更强的编程功能,Flash是你的答 案。用Flash编程比开发Javaapplets或写.NET代码要快得多,也容易得多。在最新版本 (MX)中,Flash不仅仅是画图和制造动画的工具,它已经成为一个编程 功能强大的开发环境:能调用SOAP Web服务,也能调用远端服务器上的Co
12、ldFusion、Java 或.NET程序。Flash无处不在。它的引擎存在于世界上大多数客户端计算机,包括手持设备、 置顶盒、甚至是新的书写板电脑。所以使用Flash能大大扩展你的程序的应用范围。9. Linux/Windows熟悉Linux。在一台旧机器或新机器上安装Linux。下载图形用户界面,在其基础上写一些 程序。安装Apache,写一个Web应用程序。这个世界不再仅仅是属于Windows,这种趋势 可能还会持续下去。如果你是一名中坚的Linux开发人员,那就抛弃你对Windows的憎恶, 看看你能否做一些Windows编程。Windows能继续在台式电脑上称王是有其原因的,这不 仅
13、仅是因为Microsoft控制了这个市场。没人知道你们公司会在什么时候决定从Linux转向Windows (或从Windows转向Linux), 或者你想跳到一家用另一种平台的公司,或者你想出了开发一个杀手软件的好主意,所以你 要争取拥有在不同操作系统上的编程经验。10. SQL尽管SQL不像本文讨论的其它技术那样新,而且SQL的重要性在未来10年内很可能降低, 但它仍然是一项基本技能。很多开发人员还没有掌握这门技术,或掌握得不够,不足以有效 率地使用它。不要依赖具有图形用户界面的SQL生成器替你做事情,你要自己手工地写查 询命令,直到你熟悉基本的SQL语法为止。了解SQL不仅能帮助你日后学习
14、XQuery,你还 有可能马上发现能简化或改进目前项目的方法。培养好奇心最后,(对,我意识到这是第11门技术),好奇心是你最重要的技能。要去尝试各种东西。 新语言或新技术对你当前或将来的工作可能有用,也可能没用,但并不是你所学的每一件事 都是为了工作。不要害怕失败,万事开头难,学新技术也是如此。大多数失败是因为人们希 望太快地学到太多的东西。要对每一点进步感到满意,不要让时间(或缺乏时间)妨碍你。 相反,你要安排时间留心、研究、试验新的开发技术和工具。你可能永远也没有必要成为这些技术的专家,而且我的选择可能根本不适合你的特殊情况, 但通过培养好奇心,你将会发现你应该了解的东西。编辑注:现在就到talk.editors.devx讨论组去评论罗素的选择,并提出你自己的清单。罗素琼斯是DevX的执行编辑。E-mail地址是:rjones。
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。