本文内容部分整理自wikipedia。
No.1 Java
历史、发展与现状
Java最初由James Gosling在Sun Microsystems开发并于1995年作为Sun Microsystems的Java平台的一个核心组件发布。该语言从C和C++继承了很多语法特性并拥有更简单的对象模型和更少的低级设施。Java应用程序通常被编译为字节码(class文件),它可以运行在任何Java虚拟机(JVM)上而不管是何种计算机体系结构。
Java语言创建时立下5个主要目标:
- 它应该是简单,面向对象,和熟悉的
- 它应该是强大,安全的
- 它应该是架构中立和便携的
- 它应该是高性能的
- 它应该是解释,多线程和动态的
截至2009年11月,JDK最新版本为JDK 6 Update 16。
应用领域
Sun公司定义了4个针对不同Java应用环境的平台:
- Java Card–针对智能卡环境
- Java ME–针对资源有限的环境
- Java SE–针对工作站环境
- Java EE–针对大型分布式企业应用或互联网环境
学习路线
1. Java基础
《Thinking in Java》
《Core Java 2》
《Java 5.0 Tiger》
2. Java进阶
《Effective Java》
《Java与模式》
3. Java EE
《Java Server Pages》
《Expert One-on-One J2EE Design and Development》
《Expert One-on-One J2EE Development without EJB》
开源项目
No.2 C
历史、发展与现状
C语言是由UNIX的研制者Dennis Ritchie和Ken Thompson于1970年研制出的B语言的基础上发展和完善起来的。
C语言可以广泛应用于不同的操作系统,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点。在C语言的基础上发展起来的有支持多种程序设计风格的C++语言,网络上广泛使用的Java、JavaScript,微软的C#等。
1983年,美国国家标准委员会(ANSI)对C语言进行了标准化,于1983年颁布了第一个C语言标准草案(83 ANSI C),后来于1987年又颁布了另一个C语言标准草案(87 ANSI C)。最新的C语言标准是在1999年颁布并在2000年3月被ANSI采用的 C99 ,但由于未得到主流编译器厂家的支持,直到2004年C99 并未被广泛使用,增加了若干新特性后C99已经逐渐让C语言和C++分道扬镳。
应用领域
由于C具有代码便携、高效率、可访问特定硬件地址、type punning和系统资源的运行时需求较低等特性,它的主要被用于“系统编程”,包括实现操作系统和嵌入式系统应用。
由于C的高效率和广泛使用,许多其他语言的编译器、库和解释器也经常由C来实现。
C有时也用作实现其他语言的中间语言。
C也在实现终端用户应用程序中广泛使用,但随着应用越来越大,大部分开发都转移到其他语言。
学习路线
1. C基础
《The C Programming Language》
《Expert C Programming》
《Pointers on C》
《C Traps and Pitfalls》
《数据结构(C语言版)》
2. C进阶
Linux C编程
《TCP/IP Illustrated》
《Unix Network Programming》
开源项目
No.3 PHP
历史、发展与现状
PHP或PHP:Hypertext Preprocessor,是一种广泛使用的通用脚本语言,最初专为网络开发中生成动态网页而设计。它可以嵌入到HTML中并通常运行在通过配置处理PHP代码生成网页内容的Web服务器上。
PHP最初由Rasmus Lerdorf于1995年创建,如今主要由The PHP Group维护并作为事实上的PHP标准。
截至2009年11月,最新版本的PHP为5.3.0。
应用领域
主要为互联网应用。
学习路线
《PHP Manual》
《Beginning PHP and MySQL: From Novice to Professional》
《PHP and MySQL Web Development》
开源项目
No.4 C++
历史、发展与现状
C++由Bjarne Stroustrup与1979年在Bell Labs开发,作为C语言的增强版。
C++被视为一个中级语言,因为它既包含了高级语言的特性又包含了低级语言的特性。
C++最初命名为“带Class的C”,1983年改名为C++。
1998年C++标准委员会为C++制定标准并发布了ISO/IEC 14882:1998国际标准。
2003年委员会又发布了ISO/IEC 14882:2003标准,修正了一些缺陷。
2005年“Library Technical Report 1”(简称为TR1)发布,并为当前主流C++编译器所支持。
而下一代C++标准(所谓的C++0x)正处在开发中。
若干团体提供免费或私有的C++编译器,包括GNU Project,MIcrosoft,Intel,Borland等等。
C++设计哲学:
- C++被设计为静态类型的通用语言,并拥有像C一样的便携性和高效率
- C++被设计为直接和全面支持多种编程风格(过程式程序设计,数据抽象,面向对象编程和泛型编程)
- C++被设计为给程序员选择的权力,即时程序员可能选错
- C++被设计为尽可能与C兼容,以提供从C平滑迁移到C++的能力
- C++不提供平台特定的或不通用的功能
- C++不提供不被使用的功能的过度开销(“零过度开销原则”)
- C++被设计为不需要复杂的编程环境
应用领域
C++被广泛应用于软件行业,至今仍为有史以来最流行的语言之一。
其应用领域包括系统软件,应用软件,设备驱动程序,嵌入式软件,高性能服务器和客户端应用程序,视频游戏等娱乐软件等等。
C++也被用于硬件设计中。
学习路线
1. C++基础
《易学C++》
《C++ Primer》
《The C++ programming language》
《C++ Coding Standards》
《The C++ standard library》
2. C++进阶
《C++ Templates》
《Effective STL》
《Generic Programming and the STL》
《The Design and Evolution of C++》
《Inside the C++ Object Model》
《Effective C++》
《More Effective C++》
《Design Patterns》
《Modern C++ Design》
开源项目
No.5 VB
历史、发展与现状
Visual Basic(VB)是由Microsoft开发的包含IDE的事件驱动编程语言,它源自BASIC语言。
VB拥有GUI和RAD系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。
程序员可以轻松的使用VB提供的组件快速创建应用程序。
1991年4月,Visual Basic 1.0 for Windows问世,1992年9月Visual Basic 1.0 for DOS发布,最初的设计由Alan Cooper完成。
1992年11月,VB2.0发布。它对于上一个版本的界面和速度都有所改善。
1993年夏,VB3.0发布,分为标准版和企业版。其中包含一个数据引擎,可以直接读取Access数据库。
1995年8月,VB4.0发布了32位和16位版本,其中包含了而对类的支持,从此逐步引入了面向对象的程序设计思想。它还引入了“控件”的概念,使得大量已经编好的VB程序可以复用。
1997年2月,VB5.0发布,它包含了对用户自建控件的支持。VB 1.0~4.0都必须将源代码编译成VB伪代码后解释执行,而5.0以后VB支持编译成本地代码,但必须在VB运行库的支持下工作。
1998年夏,VB6.0发布。VB6是VB.NET至今仍无法完全取代的版本。
2001年,Visual Basic.NET和.NET Framework发布。由于其使用了新的核心和特性,所以很多VB程序员都要改写程序。
2002年,Visual Basic.NET 2002(v7.0)问世,此后Visual Basic包含在Visual Studio套装中,并需要运行在.NET Framework环境下。
2003年,Visual Basic.NET 2003(v7.1)推出。
2004年,Visual Studio.NET 2005测试版本发布,包含了.NET Framework2.0的测试版本。
2005年11月,Visual Basic 2005(V8.0)发布,其中Express版永久免费。Visual Basic 2005的显著优点是可以直接编写出Windows XP风格的控件。
2008年2月,Visual Basic 2008(v9.0)发布。
应用领域
VB主要用于开发Windows桌面程序和数据库应用程序,而VB.NET还可以用于企业级大型应用程序的开发。
学习路线
MSDN
《Programming Microsoft Visual Basic .NET》
《Programming Microsoft Windows with Microsoft Visual Basic.NET》
《Applied Microsoft.NET Framework Programming in VB.NET》
开源项目
No.6 C#
历史、发展与现状
C#是由Microsoft于2001发布的一种面向对象且运行于.NET Framework之上的高级程序设计语言,之后成为Ecma和ISO规范。C#的开发由原来Borland的Turbo Pascal设计者Anders Hejlsberg所带领,最新版本为3.0,同.NET Framework 3.5在2007年一起发布。C#下一版本4.0正在开发中。
C#的设计目标:
- C#旨在设计成一种简单、现代、通用和面向对象的编程语言
- C#支持以下软件工程原则:强类型检查、数组边界检查、未初始化变量引用检查和自动垃圾收集,以及软件健壮性、持久性和高编程效率
- C#设计为开发可在分布式环境中部署的组件
- 源代码可移植,并支持C和C++程序员很容易的迁移到C#
- 支持国际化
- 支持在独立的或嵌入式系统环境中编程,从非常复杂的大型操作系统到功能有限的小型系统都支持
- 尽管C#程序在内存和处理能力等需求上有一定的经济性,但并不确保具有C或汇编语言一样的性能
应用领域
以Web开发和Windows程序开发为主
学习路线
MSDN
《Understanding .NET》
《Programming C# 3.0》
《Professional C#》
《Essential C#》
《C# 3.0 Design Patterns》
《Microsoft C# Windows程序设计》
《ASP.NET 3.5 Unleashed》
开源项目
No.7 Python
历史、发展与现状
Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。
可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响,并且结合了Unix shell和C的习惯。
Python哲学:
- Beautiful is bettern than ugly
- Explicit is better than implicit
- Simple is better than complex
- Complex is better than complicated
- Flat is better than nested
- Sparse is bettern than dense
- Readability counts
应用领域
由于Python功能强大,应用范围非常广泛,包括简单工具、数据处理、GUI程序开发、多媒体、科学计算、网络编程、游戏编程、企业应用等等
学习路线
《A Byte of Python》
《Core Python Programming》
《Python源码剖析》
开源项目
No.8 Perl
历史、发展与现状
Perl是一种脚本语言,最初的设计者为Larry Wall,与1987年首次发布。
Perl借取了C、sed、awk、shell scripting以及很多其他编程语言的特性,其中最重要的特性是它内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
Larry Wall持续监督着Perl核心语言的开发,包括即将推出的Perl 6。
O’Reilly Media出版的《Programming Perl》封面是一匹骆驼,如今骆驼成为了Perl的象征。
Perl哲学:There’s More Than One Way To Do It.
应用领域
系统管理、数据处理和Web开发为主
学习路线
《Programming Perl》
《Learning Perl》
《Professional Perl Development》
《Perl for System Administration》
开源项目
No.9 JavaScript
历史、发展与现状
JavaScript是一种广泛应用于客户端Web开发的脚步语言,最初由Netscape的Brendan Eich设计并于1995年首次亮相。
JavaScript是ECMAScript标准的一种方言,它是动态的、弱类型的、基于原型的、视function为一等公民的语言。
应用领域
主要用于网页开发
学习路线
《JavaScript The Definitive Guide》
《Professional JavaScript for Web Developers》
开源项目
No.10 Ruby
历史、发展与现状
Ruby是一门面向对象的动态语言,最早由Yukihiro Mstsumoto于1995首次发布,它的灵感和特性来自Perl、Smalltalk、Eiffel、Ada以及Lisp。
由Ruby语言本身还发展处了JRuby、IronRuby等其他平台的Ruby语言替代品。
Ruby的理念是强调人性化,非常直观,按照编程的人认为它应该的方式运行。
应用领域
以Web开发为主,也用于系统管理、数据处理和游戏脚本等领域
学习路线
《Programming Ruby》
《Agile Web Development with Rails》
《The Ruby Way》
《Ruby for Rails》
《Design Patterns in Ruby》
开源项目