编程江湖行──招式篇:初入江湖,择木而栖
IT商界
欢迎来到编程江湖,如今江湖中门派林立,正邪不分,招式各异,初入江湖的你必须看仔细了!新的编程语言、开发工具和软件技术层出不穷,连许多有多年江湖经验的高手也开始思考什么语言最有前途,考虑是否去学习Java或者C#?难道曾经辉煌无比的C、C++、Pascal、Basic就要慢慢从这个世界消失?对于编程初学者和爱好者来说,又应该怎么选择编程语言呢?
选择从门派开始
江湖指路:什么是操作系统?编程与操作系统有什么关系?现在就来告诉你:操作系统就是管理整个计算机软件和硬件资源的一组程序;学习编程首先应该选择一个自己熟悉和有发展前途的操作系统,然后再选择在相应操作系统下可以使用的编程语言和开发工具。
现今,常用的操作系统主要有两大派系:Windows系列(Windows 9x/2000/XP等)和UNIX系列(BSD、System V、Linux等)。在这两类操作系统之中,Windows系列操作系统主要应用在家庭和企业,是比较容易使用的操作系统。而在银行、铁路、邮政和政府部门,UNIX则获得了广泛应用。实际上,UNIX是一类操作系统的统称,现在比较流行的主要有:BSD系列(Free BSD、Open BSD、Net BSD等)、System V系列(如:SCO UNIX)、Linux系列(如:Red Hat Linux、中软的红旗Linux等)等。Linux是综合了UNIX派生系统(System V、BSD)的先进技术,并保持了和POSIX标准的兼容性的一种开放源代码的UNIX类操作系统。如今,由于越来越多的厂商对Linux提供支持,它已经在桌面和商业应用中都占有了一席之地,形成了与UNIX、Windows三足鼎立的局面。
如今的编程语言真可以说是琳琅满目、五花八门,老语言不断发展,新语言不断涌现。很多初学者迫切问哪种语言好,学习了哪种语言就可以在未来的职场上立于不败之地。其实语言的优劣是没有定论的,只有你充分了解了一种语言的特性和你的需求之后,才能做出正确的评价和选择。
在后面的文章中,将带你深入了解各种语言的特性,分析它们的特点与不足,以便让你选择一种适合你学习并且有很好发展前途的编程语言。
主流语言的选择
江湖指路:每种语言都有它的优势与缺点,选择语言,应该更多地去考虑你的行业与领域的需求。没有一种高级语言是万能的,C/C++不是,Delphi、VB、Java更不是。究竟选择什么,我们不能只从某个方面考虑而说某种语言好与不好。让我们先做一下简单的分析:
C/C++:有人说,真正的程序员用C++。虽然目前.NET和Java被各大媒体炒得火热,但C、C++一直稳坐编程语言霸主的宝座。因为C、C++的特点是与操作系统及底层紧密相关,它编写的程序执行效率高,占用空间少,语言本身既有高级语言也有低级语言的特点,是编写操作系统及底层应用的最佳选择。比如:做系统编程,网络安全等方面的应用,只能选择C/C++。
VB:VB是一种使用简单而著称的语言,曾经在Windows下创造了不少的辉煌。但是随着Delphi、C++Builder等RAD开发工具(快速应用开发)的出现,它已经没有优势了。如果你是一名编程新手,可以考虑不从VB学起(即使VB.NET 在.NET环境下依然很重要,但是我们有更多理由选择C#。)
Delphi:Delphi(使用的Pascal语法)有和C++相似的特点,但是对于底层操作它并没有优势。Delphi现在的优势是用来开发数据库应用相关的软件。如果你的定位是做数据库相关的编程的话,学习Delphi是不错的选择。
Java:Java是进行网络编程(特别是分布式网络开发)的首选语言。Java的特点是一次编写,到处运行,就是说它的语言代码可以方便地在多操作及平台运行(当然目前还不是说的那么简单,只能等未来了)。J2EE(Java 2 Enterprise Edition)是目前最为成熟的企业级应用开发平台。是开发基于Internet/Intranet的分布式应用的首选平台。J2ME(Java 2 Macro Edition)是目前嵌入式及移动开发的首选平台(有人说,十年之后Java将从PC上消失,只留下J2ME)。如果你要做目前最火的手机软件开发的话,选择J2ME吧。
PowerBuilder:PB是种不错的语言(使用PowerScript脚本),曾经是数据库开发的主流。但是近年来它已经渐渐暴露出的缺点使它渐渐淡出市场。值得庆幸的是,目前刚推出的PowerBuilder 9.0新增了对.NET、PBDOM、XML、DataWindow、RAD JavaServer Pages与PBNI等的支持,是集设计、建模、开发、部署、管理等各项功能为一体的RAD开发工具。但是这可能只能给一些PB的编程老鸟来玩了,对于编程新手或初学者,可能关注得更多的还是.NET和Java。
Web开发语言的选择
江湖指路:对于一位想从事Web(网页)相关开发的人来说,XML、HTML是一定要熟练掌握了。不过它只是最基础的,掌握了它还不能称为程序员?
如果你打算向更高级的方向发展,在现阶段,ASP、JSP,应该是你的首选。原因在于ASP集成于ⅡS或PWS,你可以方便得到,而且资料也最为齐全(还有微软的支持)。
JSP和Java/EJB(Enterprise Java Bean)密切相关。在开发企业级的J2EE应用时,JSP是目前用得最多的技术。另外,JSP有很好的可移植性,这也是应该选择它的原因。
除了ASP、JSP之外,PHP拥有相当不错的特性。它速度快,可移植到多个操作系统,语法和C++、Java相似,数据库处理能力特别强,可以连接处理几十种数据库这些是ASP、JSP几乎无法达到的。
另外,你也可用选择使用传统的编程工具来开发Web程序,比如:使用Delphi/C++Builder来开发CGI、WinCGI、ISAPI、NSAPI等应用。但是对于编程初学者,这些是不予推荐的。
随着.NET和J2EE的推进,Web开发成了主流,基于.NET和J2EE开发Web及分布式应用是未来的一个方向。
等级考试的语言选择
看到这样的题目你是否会惊讶?不错,在这里我就是要谈谈计算机等级的语言选择问题。因为这可是每年几百万大学生和其他许多在职人员都关心的话题!
目前等级考试的可选语言有C,Pascal,Basic,Foxbase(有的省市可能有自己的等级考试,可选Foxpro,C++等)。在笔者看来,早些年的Foxbase虽然设计得相当优秀,但时过境迁 ,它已经是明日黄花,我们再选择它不仅仅是错误,可能还会浪费你大量时间。
如果你追求简单,实用,也不要求以后编写什么高性能应用,Basic依然是不错的选择。在商业领域,虽然VB已经慢慢淡出市场,但学习VB.NET依然可以成为你转入的方向。
如果你不仅为了考试,而且想在以后成为一名专业的程序员的话,学习C绝对是最好的选择。目前很多语言的语法都是以C,C++为基础的,学习了C,你就可以更轻松地转入C++、Java、C#、PHP、Perl等语言之一了。
江湖指路:语言的选择关系到你今后多年的学习和工作,不得不重视。
选择语言是以了解语言为基础的,不要只听别人说什么好就学什么。你应该更多地去了解你想学习的语言本身,然后再做决定。
不要总想着选择最新的语言,以为新的技术就是最好的。
不要在语言的选择上徘徊犹豫,这没任何作用,你需要的是了解更多你想选择的语言的特点,权衡利弊,然后决断。
.NET系列语言的选择
随着.NET的发展,支持它的语言也越来越多。VB.NET、VC++.NET、C#、J#、Javascript等等都可以来编写.NET应用。在.NET环境下选择一种好的语言,也是很有必要的(如果我们考虑程序移植、资料利用的话)。
C#是一种被设计得近乎完美的语言,它综合了C++和Java的优点,克服了它们的一些缺点。虽然.NET能支持几十种编程语言,但作为初学者,从C#着手应该是最好的选择了。另一方面,C#和XML WebService是当初.NET推出时的重点。这样说来,如果在.NET环境下选择编程的话,C#就是最佳选择,这是无庸置疑的。
VB.NET今非昔比,它已经蜕变为一种完全面向对象的编程语言了。在新的Basic语言中,它增加了许多特性和功能,并不再是VB6那样的“假”面向对象了。如果你有Basic的语言基础,那么现在选择VB.NET是个不错的做法。但是如果你从未涉足编程,或者在用其他语言编程的话,选择VB.NET就显得太不明智了。
VC++.NET是VC6的追随者。使用VC++.NET,可以让你体验能够编写.NET及其他平台的软件的乐趣。比如你还想要做Windows下应用程序的话,VC++.NET可以最好地满足你的要求。
J#这种在Visual Studio .NET 2003中刚被推出的语言是否该被选择呢?这种既像C#又像Java的语言,总的来说,是不伦不类的东西。如果你是Visual J#的使用者的话,转移到J#来做开发也应该是不错的选择。但是,如果你是初学者,没有Java,C#的经验,也没有C/C++的经验的话,再选择J#就一定是一个错误了(应该考虑C#)!
江湖指路:对于目前从事或正在学习Delphi的开发者来说,其实完全没有必要再去学习.NET的新语言,因为过不了多久,Delphi 8将全面支持.NET。