软件相关技术及其在国内的应用
【前言】本文结合笔者工作中的一些经验所得,简单介绍一下当前主流计算机软件技术特别是程序设计技术在国内的实际应用情况,并针对当前国内软件技术发展趋势做一下阶段性预测。本文并不是正式的分析报告,仅仅是笔者工作中积累的一些观点和想法的整合,组织结构上比较随意,穿插着自己的一些看法和一些相关技术文档的介绍,还请大家多多指正。
伴随着计算机应用的大众化潮流,其膨胀的市场需求带动了计算机技术及其相关产业的蓬勃发展。而其中的关键组成:计算机软件技术,经过互联网风暴的洗礼已经进入新一轮高速成长阶段。在这个迅速发展的阶段,新技术新平台的出现及其广泛应用成为一大特色,高度的系统开放性和内在逻辑性则是发展的中心和主题。
目前,国内软件技术发展和应用的焦点主要集中在以下几个领域:
一、企业级应用领域
鉴于国内的具体情况(缺乏通用企业级平台产品),这里的企业级应用主要指企业级行业应用领域,以金融、电信、政府这三大行业应用为主(这三大行业的市场总和占据了企业应用的80%以上),其中金融行业核心系统和电信行业核心系统由于传统沿革以及对于性能方面的要求全部采用C/C++实现。而政府机构及电信、金融外围渠道性产品的研发目前基本都选择了J2EE架构以获得跨平台部署能力以及良好的系统伸缩性和扩展性。就目前我个人有所涉及的领域为例,银行核心业务系统全部采用C/C++实现(2000年前的老系统全部都是采用C语言开发,新研发的系统大部分采用C++架构),外围渠道类新产品的研发则大都采用Java技术。政府应用中的重头是国税申报系统,目前是基于Sybase平台开发的C/S结构,同时新一代税务系统已经开始在J2EE平台下着手设计开发。
另一方面,对于一些中小型企业应用,如企业内部CRM、CIM系统,考虑到系统成本以及维护难度等因素大多采用基于Windows Server的ASP+SQL Server组合。
技术主题
1.C++
【现状】98年语言规范的确定标志着C++这个“新”语言的“诞生”,从这个角度来说,C++是一个年轻的语言,不过从演进历史和发展程度来看(C++于1979年4月诞生于贝尔实验室),C++已经相当成熟并在各个领域得到了广泛应用。对C++发展感兴趣的读者可以去看看《The Design and Evolution of C++》这本书,此书中Bjarne Stroustrup将C++从诞生以来整个设计思想与理念变化的过程做了详尽深入的讲述。
无疑,C++已经成为当今世界最流行的高级系统程序设计和面向对象的开发语言,其定位为一种能够如C语言般支持底层的复杂系统程序设计,而又不失C的效率,同时能支持针对大型应用程序开发的数据抽象和面向对象设计的程序设计语言。事实上也只有C++语言才真正实现了同时对高低层次的合理支持。也正由于这些出色的特性C++得到了广泛的使用,从嵌入式系统(如vxWorks)到超大型应用系统(如美国电信网络系统)的应用开发,C++的应用已经弥漫到IT行业的各个角落。
相对而言,国内企业级平台的C++应用整体水平相对较低,大多还停留在相对简单的小规模应用开发层次。一方面由于国内IT业技术发展相对滞后,OOP、GP等新一代编程思想近两年来才得到普及(直到现在,据笔者所知不少高校的计算机程序设计专业教学还停留在掌握Turbo C 2.0编程阶段),老一代技术人员在OOP、OOD(面向对象设计)思想上比较淡漠。另一方面,国内IT技术产业规模化应用不多,缺乏高质量、高产品化的应用系统,很多应用还停留在针对工程项目的Case实施阶段,产品投入少,持续性不强,难以做到成熟的产品化设计和开发,因此对于相对而言需要较长研发周期的C++而言其实际应用较少。同时对于传统的大规模应用(如金融、电信核心业务领域),由于其原有基础架构多建立在面向过程的C语言体系,考虑到系统的延续性和改动维护成本(资金成本,时间成本,以及开发人员掌握基于C++的OOP、OOD的成本等)大多还处于比较保守的观望或者尝试性改良阶段。再者,面临新一代语言如Java、C#的竞争,C++在基于数据访问、网络交互和分布式计算的企业级应用市场受到强有力的挑战,不少技术人员开始将注意力转移到这些新兴的程序设计语言之中。在这样的情况下,国内优秀的C++程序员不多,优秀的企业级C++架构设计师更是屈指可数。
【发展】随着IT应用规模的膨胀和软件系统结构的发展,传统的面向过程的程序设计已经难以满足系统体系设计的需求,在传统应用中,大部分是基于流程的设计,如银行应用系统中的账号开户、取款、查询业务等,往往在一个代码单元(比如对应取款业务的一个Draw.c文件)独立完成从获得数据库连接、读取数据库记录、验证用户密码字段、判断存款状态字段、更新数据库记录、关闭数据库连接等一系列操作(这并不是笔者胡乱猜测,当前国内大多数银行的业务系统正是如此),大家可想而知对于银行的几千个交易而言,如此结构的开发与维护将是怎样的噩梦(即使我们可以采用建立通用类库和定义相应的Structure的方法进行结构调整,但是对于一个日趋庞大的系统而言,无疑帮助有限)。面向对象的设计思想的出现则为解决这类问题提供了有力支持,通过使用对象的封装、继承,将系统划分为若干明晰的对象子体,系统业务功能通过对象子体之间的交互来具体实现,这样一来系统整体逻辑架构相当清晰,对象子体专注于各自独立实现,代码重叠减少而可重用性大大增加。
C++作为传统、成熟的面向对象的程序设计语言也已经得到广泛的应用。目前国内企业级的C++应用可以说刚刚开始起步,发展较晚并且缺乏一个高水平的应用发展环境,同时面临着新一代语言如Java、C#的激烈竞争(这方面有很多争论,有的业者根据理论推理认为C++和Java、C# 解决方案所面向的对象不同因此并不存在什么冲突,但就笔者个人的实际项目经历而言,在新产品研发选型中,C++和Java向来都是一个激烈争论的焦点,从小型的信息管理系统到大型的ERP系统、金融业务系统,C++都面临着可能被Java取而代之的压力。另外从IBM、Sun、HP近年来的产品发展规划中,我们也可以明显看出国际大厂商在这方面已经向Java倾斜),因此C++在国内企业级领域的新产品研发应用中可能会面临比较尴尬的局面,其主要发展将集中在对原有基于C语言技术平台的应用升级以及一些对于实时运算要求较高的领域(如金融、电信核心系统,网络游戏服务器等)(当然这仅仅是笔者个人的观点。)
2.Java
【现状】未来的计算机体系是基于Web的分布式计算,Java无疑是当前满足这一趋势的最佳语言,由于其本身的开放性体系以及其简洁的语法,国内Java技术应用得以蓬勃发展起来。虽然整体水平并不是很高,但是相对C++在国内的发展和应用而言已经是非常大的进步,这从国内众多的个人或者社区性Java技术组织就可见一斑。国内企业级应用中的关键技术和内容主要集中在:数据访问、数据格式转换、逻辑控制、数据传输、数据表示等方面,而这些都是Java的优势所在,因而在实际应用实施中,Java/J2EE俨然已经成为不可替代的企业级应用解决方案。
【发展】作为一门正处于发展高峰期的程序设计语言,Java深刻地体现了“设计”的精髓,严谨清晰的结构使其具有良好的扩展能力和广阔的发展空间,简洁的语法提供了良好的可维护性,同时,通过降低程序员编码的难度使其能够将更多的精力专注于业务逻辑的设计与系统框架的构建。在可以预见的未来3年内,Java将进一步巩固其在服务器端确立的战略优势并同时向嵌入式系统等应用中延伸。目前,国内在Java应用方面已经有了良好的技术氛围和群众基础,涌现出不少优秀的Java技术研讨组织和基于Java技术的优秀作品,相信在未来的3年内可以形成规模化的Java应用。个人认为,Java技术在国内将拥有非常广阔的前景。一方面,基于J2EE框架的Java应用将成为大型商业应用的中流砥柱,另一方面在手机、信息家电、IC卡等嵌入式应用中J2ME也将扮演重要角色。
3. .NET
【现状】作为Microsoft下一代技术平台,.NET无疑担负了Windows平台的未来,无论目前国内外各大论坛上关于.NET前途的争论结果如何,我们最终都不得不面对.NET这个在未来3到10年都要朝夕相伴的新技术。由于出现时间不长,无论是在软件技术最发达的美国还是在我国,.NET还都处于最初的探索和尝试阶段,基于.NET的企业级应用可以说刚刚起步。
【发展】.NET本身并不是一个全新的框架,微软综合了诸多技术,推出了这个跨语言、跨平台的技术规范,它吸取了之前所有技术的精华,相信借助其本身的先进性和微软强大的市场能力,.NET将在不远的未来有所作为。个人认为,在可预见的未来3年之内,ASP.NET将逐步取代目前的传统ASP技术,继承现有的Windows Server应用,同时,由于Windows平台的普及性,.NET将在大多数中小型End Customer系统中得到广泛应用。而随着PC硬件技术根据莫尔定律的推进以及软件技术本身的发展,Windows Server在性能上将逐渐与低端小型机接近,从而在中小型企业应用中获得更大的市场份额。在Grid式计算的下一代互联网技术中,相信.NET会扮演一个前端服务提供者的角色,即运行在高性能小、大型机上的Java应用提供通用的Web Service接口,而由.NET平台提供面向客户接口的应用整合。
相关技术书籍推介
1.C++
C++书籍中不少重量级著作已经在国内登陆,如The C++ Programming Language,C++ Primer等,但这些书籍仅仅只限于C++语言本身,如何利用C++的强大功能设计出一流的软件则是另外一回事,下面这两本书就是关于C++设计方面的经典书籍:
◎ Large-Scale C++ Software Design (ChinaPub上有此书的外版定购)
如果只是单兵做战、写些小玩意儿,不必阅读此书。除此之外,读后你必有大得!这本书的内容不是呆坐在象牙塔里教授、学者们冥思苦想所能得到的,它来自第一线的工程师的经验总结。
◎ Modern C++ Design 繁体版由台湾孟岩译(ChinaPub上有外版定购)
这本书介绍了一组可复用的设计“珍宝”,称为“泛型组件”(Generic Components), 同时还介绍了构造这些组件所使用的技术。这些泛型组件能够在各种软件系统体系中向用户提供类似库的功能。编码和实现的技术将重点置于那些传统上是属于设计阶段的任务和问题之上,而设计阶段的工作通常是在编码之前就完成了。由于是高层次的组件,泛型组件使得我们有可能将复杂的软件体系以非常富有表现力 简洁和易于维护的代码表达出来。泛型程序设计、设计模式与C++这三个要素在这里被组合起来,达成在纵向和横向上的高度可复用性。在横向上,使用一个很小的代码库就实现了一个可组合的 数量不限的结构和行为集合。在纵向上,这些组件的通用性使得它们能够被应用于广泛的应用程序中。
本书的主要读者对象是两类人。第一类是有经验的C++程序员,他们希望掌握最新的库编写技术。本书展示了新的、强有力的C++惯用法(idiom),其能力令人惊讶,有些甚至是人们从来就不敢想的。第二类是那些忙碌的程序员,他们得完成工作,又不可能在学习上付出太大的代价。他们可以略过那些最复杂的实现细节,将精力集中到对这个库用法的掌握上。每一章都有介绍性的解释,以“Quick Facts”结束。程序员们会发现在理解和使用组件方面,这些部份是非常有用的参考资料。组件可以单独的去理解,同样可以很有力 安全和出色地使用。这本书不是一本模式技术书籍 没有打算全面论述模式技术。因为在这本书里,模式是从一个库编写者的实用主义观点来展现的,所以即使是对模式技术更感兴趣的读者也会发现这个观点很有新意。
◎Ruminations On C++: A Decade of Programming Insight and Experience
《Ruminations On C++》集中反映了C++的关键思想和编程技术,不仅告诉你如何编程,还告诉你为什么要这样编程。
这将是C++程序员的必读之作。 因为:
1.它包含了丰富的C++思想和技术,从详细的代码实例总结出程序设计的原则和方法。
2.它不仅教你如何遵循规则,还教你如何思考C++编程。
3.既包括面向对象编程也包括泛型编程。并深入探究了STL这一近年来C++最重要的新成果的内在思想。
本书的作者在使用C++的时候,全世界的C++用户还寥寥无几。他们对C++语言的发展有着突出的贡献。
2.Java
个人将Java书籍分为三类,语言类(如Thinking in java)、平台及相关技术类(如Inside JVM,Java Management Extension)和设计类(如Design Pattern Java Companion Applied Java Patterns),而依个人见解,基于Java的设计是重中之重。众所周知,Java语言本身以面向对象、结构简洁著称,其语言本身并没有太大的复杂性(这与C++形成了鲜明对比),因此,对于Java新手而言,语言教学之类的书籍只需要有一本入门教程、一本较全的参考手册即可(Thinking In Java 和 JDK Document 就可以满足),而学习的重点,也是决定一个Java设计师的优劣所在,则是在于其对具体系统所设计的应用是否满足需求,而设计方面的功力需要相当的理论积累和实际实践并举的。
(1)平台及相关技术类
◎《Inside JVM》
要深入Java的运行机理,必然需要对JVM机制有所了解,Java号称Platform Independent,但JVM本身就是一个Platform,正如我们用MFC写Windows应用程序一样,只有了解了Windows的系统消息处理机制我们才能编写出强大的MFC应用。
◎《O'relliy Java Management Extentsion》
JMX Java Management Extentsion是Java组件管理的扩展规范,也是当前主流J2EE应用服务器(Weblogic,Websphere,JBoss)的核心和基础。
(2)语言类
◎《The Elements of Java Style》
7个人参与编写的140页的书,能不好吗?J
Java Syntax告诉你如何编写机器可以理解的代码,而Java Style则告诉你如何编写他人可以轻松读懂的代码,事实证明,易读易维护的代码通常更加健壮,而Java作为面向大型工程应用的程序设计语言在这方面则显得尤其重要。建议使用Java编程的人都来读读这本手册,不花太多的精力却能给你的工作带来极大的帮助,极具指导意义。
◎《Bitter Java》
设计模式对软件开发来说很重要,这一点从它在技术中所占的数量就可见一斑。不过,鉴于其在开发过程中的实用性,设计模式只解决了问题的一半。反模式——描述“对产生绝对负面结果的问题的一种常用解决方案”——旨在通过向 Java 程序员展示如何避免常见的 Java 陷阱来解决问题的另一半。《Bitter Java》就是这样一本书,它告诉你不该做什么,从而帮助读者避免重蹈覆辙。
◎《Java Pitfalls》&《More Java Pitfalls》
Java界中的Effective C++。
许多Java程序员通过几年的辛苦,不断的碰壁总结出一些零散的编程经验,当他们看到这两本书的时候可能会欣喜若狂,这两本书总结了Java程序设计中可能遇到的大多数问题。不可不读的好书。
(3)设计类
◎《Applied Java Paterns》
GoF的 Design Pattern 是设计模式的开山之作,但由于其采用的是C++的描述方法,并且由于Java语言与C++的差异,java程序员阅读Design Pattern往往有一种陌生感,难以切入实处,而Applied Java Patterns则正是针对Java语言所撰写的设计模式书籍。通过实际Java代码示例,让读者清晰的理解设计模式在Java中的实现并可以在实际工作实现设计模式的快餐化应用。
◎《Thinking in Patterns with Java》
Thinking In java 作者Bruce Eckel关于Patterns in Java 的大作,但现在还处于0.6版本。
3. .NET
.NET 推出时间不长,技术书籍的出版还处于黎明前的破晓阶段,暂时没有类似《The C++ Programming Language》或者《Think in Java》之类学者必备的经典书籍。此时来自微软的文档无疑是最具深入核心资质的学习资源。笔者翻阅过多本国内外相关技术资料,感觉就入门而言最好不过MS Training Book,深入浅出,易于操作。
对于.NET,类似Java,笔者同样将其分为平台技术相关类、语言类以及设计类。
(1)平台技术相关类
◎《Inside Microsoft .NET IL Assembler》(MS Press)
深入剖析了MSIL,Common Language Runtime的内部运作机制,要了解.NET系统机制不可不读的机要大作。
◎《Professional ASP.NET》(Wrox)
Wrox号称Programmer to Programmer,在.NET方面其出版的Professional系列书籍还是比较优秀的。本书主要讲述如何使用服务器控件以及数据访问技术创建ASP.NET Web应用;开发、保护和配置Web Service,以及其中的调试技术、性能、迁移性和互操作性等问题。如果之前有过Web应用设计的经验,那么本书将会是一本非常好的针对ASP.NET的入门及开发手册。
◎《ASP.NET Website Programming : problem –design –solution》(Wrox)
ASP.NET的进阶读物,建议在读完了Professional ASP.NET的基础之上进行研读。
◎《Debugging ASP.NET》
此书面向的读者是产品技术经理或者富有经验的高级技术人员,他们需要对产品的代码进行评审,并进行详尽的测试以确保产品的质量。
本书教授了大型.NET应用的调试策略和技巧,如如何制定代码编写规范以避免常见错误的大量涌现,如何通过.NET调试工具跟踪调试.NET应用,以及针对从传统ASP转移到ASP.NET过程中的一些告诫和建议等等。
(2)语言类
◎《Inside C# Second edition》&《Microsoft Visual C# .NET (Core Reference)》
来自微软出版社的.NET核心语言C# 技术书籍,最具权威的语言教程。
◎《Thinking in C#》 0.1 预览版 MindView
刚刚下载翻阅还未深入阅读,暂不评论,希望能保持Thinking in …系列的一贯品质。
(3)设计类
暂空缺。
二、Windows桌面应用领域
由于国内Windows平台的普及,大量基于Windows平台的桌面应用发展迅猛,同时国内也涌现了一批高水平的桌面应用研发力量。从小型的工具型软件到大型的办公自动化软件,从多媒体播放、娱乐游戏软件到病毒防护等呈现出一片欣欣向荣的景象。
在国内桌面应用开发的正规军中,基于Visual C++ 平台的开发技术得以普遍应用,以下是几个例子:金山词霸(可能是中国用户使用最多的软件了吧,开发工具:VC++),WPS Office(VC++)(上次与金山总裁雷军闲聊之时也谈到Windows开发工具的选择问题,在Win3.1平台吃过Borland OWL的苦头之后,金山已经全面转向微软开发平台,不过好像现在也引入了Delphi,C++ Builder这类开发工具),东方影都(VC++),超级解霸(VC++)。
对于一些小型的桌面应用开发,如共享软件开发领域,Borland Delphi/Visual Basic等RAD开发平台则占领了很大的市场份额,代表如Foxmail(Delphi),超级兔子(VB),Windows优化大师(Delphi),网络伴侣(Delphi)等,当然,也有基于VC++的Netants,FlashGet等重量级作品。
技术主题
鉴于国内桌面应用多集中于Windows领域,这里我们就仅仅对Windows平台的桌面应用开发平台进行探讨。
1.VC++/C++ Builder
【现状】对于Windows应用开发而言,VC++似乎是不二之选,全面的SDK文档,丰富的开发资源,但由于VC++对于RAD开发支持不够,难以进行快速开发和部署,特别是对于GUI开发以及数据库开发的支持比较欠缺,因此对需要进行快速定制的桌面应用(如小型专用软件)而言开发维护成本过高(根据与Netants作者洪以容的交流得知,为了达到最好的效果和灵活性,他在Netants的设计中舍弃了陈旧的MFC框架,利用Windows SDK完成了整个界面设计,可想而知其工作量相当可观),个人认为VC++更适合大中型软件公司桌面应用的产品化研发。
C++ Builder 作为C++语法与源于Delphi的VCL框架的结合,自然继承了两大主流桌面技术的先天优势,但从另一方面来看,这恰恰也造成了C++ Builder尴尬的一面,由于Delphi VCL发展的历史原因,大部分VCL组件都由Delphi程序员用Object Pascal编写,这些组件经过一定改编虽然可以用于C++ Builder,但在兼容性以及程序联调等方面却遇到了一些令人头疼的问题,同时C++ Builder为人诟病的编译速度以及Code Insight速度也使得大部分C++程序员望而兴叹(目前的版本尽管使用了pre-Compiled headers等技术进行相关性能调整,但相对VC++而言,其编译速度还是较慢,不过最新的C++ Builder 6经过笔者的使用感觉已经有了一定的提高,希望这个问题在新版本中能得到更好的解决)。
【发展】VC++从设计思路而言,是面向工程级的开发,作为一个成熟的应用开发平台,无疑VC++已经在桌面开发领域建立了无可替代的地位,其发展似乎不必多说,相信在未来三年内依然可以稳居桌面应用开发工具的首位。
上面虽然列出了C++ Builder所存在的种种不足,但我们必须认识到“存在即合理”的含义,C++ Builder的确满足了C++技术人员对RAD工具的强烈需求,随着Kylix3的推出,基于C++ Builder CLX编写的代码可以无痛苦地移植到Linux平台,这也为C++ Builder应用注入了一针强心剂。如果Borland可以在编译速度等方面做进一步改进,C++ Builder将在C++ RAD方面大有作为。
2.Delphi/VB
【现状】Delphi/VB无疑是快速开发的利器,在国内桌面应用中,Delphi/VB占据80%以上的份额。
Delphi在台湾、新加坡、香港等东南亚地区应用非常广泛,从桌面应用到中小型的企业级开发都可以看到Delphi的身影。随着Delphi.NET、Kylix 3的前后推出,Delphi/Kylix作为桌面应用开发工具发也展到了一个新的高峰,同时借助.NET的威力在服务端更进一步。
同时,VB在东亚,特别是在日本应用非常普遍。相对Delphi而言,由于vb.NET的结构调整较大,其发展可能会暂时面临一个转型中的低迷阶段。
【发展】从技术角度而言,VB不能算是一个纯粹面向对象的程序设计语言,这方面它大大落后于Borland Delphi、Object Pascal (Pascal的Delphi版本)从诞生起就是一个彻头彻尾面向对象的婴儿,其简洁明了的语法使得VB冗长的代码显得单调而乏味。事实上从我个人角度而言并不看好VB的技术体系,除了其衍自Microsoft的皇家血统(因而具备详尽的文档和示例,以及可靠的持续性发展能力),其并不具备技术上的竞争优势。相反Delphi先进的Application Framework已经得到了一致的公认和好评,近10年来的积累也带来了极具规模的追随者,相信Delphi在未来3年内会持续辉煌,成为RAD开发中的首选工具。
3. .NET Windows Form
【现状】刚刚诞生的新一代Windows桌面应用开发技术,尚未得到大规模的应用。
【发展】.NET Windows Form作为Microsoft新一代技术平台.NET的组成部分,无疑将成为Windows平台桌面应用开发的主要技术之一,但目前面临比较尴尬的局面,首先由于.NET运行平台尚未普及,导致基于.NET Windows Form开发的桌面应用难以部署,这一点很大程度上阻碍了其进一步的推广和应用。相对于传统的Windows原生开发工具而言,其代码运行速度也较慢,个人认为其短期内最大的应用领域应该是作为Web应用系统的辅助开发(如编写应用配置管理系统等)。而从长远,综合各个方面的因素来看,.NET Windows Form应用的展开只能是在下一代操作系统Windows.NET成为主流之后,而这一过渡时间可能要延续3年之久,因此,.NET Windows Form的规模化应用应该在2005年之后。
相关技术书籍推介
个人认为,桌面应用设计与企业级应用设计的最大区别在于:企业应用设计关注的重点是良好的系统逻辑架构,而桌面应用大部分注意力集中在交互界面的设计以及结合操作系统接口的功能实现。
在桌面应用设计中,由于群众基础广泛,相关优秀书籍早已经被大家所发掘而得到公认。这里就将笔者读过的几本书做简单的罗列以供大家参考。
1.VC++
◎《Inside VC++》中文版《Visual C++技术内幕》
网上对这本书评价不一,主要是集中在两个中文版(第四版和第五版),不过笔者阅读技术书籍时大多把注意力集中在关键示例和相应描述上,字句上的出入倒是没有什么影响J。总的来说此书比较浅显,实例甚丰,是一本不错的入门书籍。
◎《Inside Windows 2000》
做Windows桌面应用,必须掌握Windows核心基础,本书就是来自微软出版社的Windows核心技术揭密。
◎《MFC深入浅出》
不多说了,侯捷的大作,想深入学习MFC的好导师。
◎《Exceptional C++》&《More Exceptional C++》
前段时间买了本《More Exceptional C++》中文版,不过还没深入阅读,不知汉化如何,之前通过一些渠道阅读了此书的一些样章,感觉还是非常不错的。
◎《C++ 对象模型》、《Effective C++》、《More Effective C++》
这三本是关于C++语言本身的著作,不仅仅拘泥于桌面应用,而是深入掌握C++语言的经典书籍。
2.Delphi
◎《Essential Pascal》
Object Pascal的入门手册,一百来页,初学者必备。
◎《Delphi Developer’s Guide》
非常全面的开发手册,入门之后相信只要这本书常备案头即可解决大部分问题。
◎《Master Delphi》
Delphi的进阶教程,讲述了VCL的内部实现。
3.VB
笔者使用VB似乎也没看什么书籍,DOS下 Quick Basic 积累了一些语法基础,从VB1.0 for Dos 、VB2.0 For Win3.0开始自己摸索(当时也没有什么VB书籍),因此对于Visual Basic书籍情况不是非常了解。据说微软出版社出的几本书还都不错大家可以去翻阅一下.