主流编程语言的选择和学习杂谈
筛选出一些主流编程语言,对语言特性与环境稍作介绍,希望可以帮助到一些编程初学者与有兴趣学习编程的朋友,供大家了解与选择,少走弯路。Java、C++、C#、Python、PHP是目前主流的编程语言,他们有哪些特性?哪种语言更适合你?如何学习这些语言?
Java,面向对象、安全、跨平台、强大稳健、流行的程序设计语言与环境。由 Sun 公司开发,目前由 Java Community Process 控制。近些年来非常流行且稳定,未来生命周期较长。语言风格较为接近 C++ 与 C# ,而最为人熟知的便是跨平台性。Java 的跨平台性已得到了广泛的认可,在计算机的各种平台、操作系统,以及手机、移动设备、智能卡、消费家电均已迈入成熟的生产化。而国内的 Java 人才需求前景目前也是大好。
Java 的官方网站是 http://java.sun.com/。Java 分为 JavaSE(标准版,面向初学者与桌面开发)、JavaEE(企业版,也称 J2EE,面向企业级开发、网络开发,包括了为人熟知的 JSP,并包含了 JavaSE 的所有内容)、JavaME(微型版,为手机、PDF、机顶盒、消费家电等嵌入设备开发),目前还有正在发展的 JavaFX(一种富Internet 应用程序开发的脚本语言)。Java 的运行环境是 JRE,开发环境是 JDK,均可以在其官方站点下载。开发平台的构建较为简单,开发者下载并安装 JDK 即可,目前 JDK 最新版本是 1.6.15。
最重要的它们都是免费、开源的。而 Java 不需要指定集成开发环境(IDE)JDK 和记事本足以完成。不过在此我推荐使用 Notepad++ 或 UltraEdit 作为代码文本编辑器;Eclipse 与 NetBeans 这两款免费而又强大成熟的 Java 集成开发环境(IDE)。
最近也在进一步学习中开始写 Java 的编程书籍,在此透露一下,它是一本内容全面、语言生动、较快入门、注重实例、分享经验、提供编程思维与设计模式的 Java 编程书。这方面我需要一段时间的努力后,才能与您见面。不过最重要的,这本书将是免费的。在保证专业性与内容质量的同时,这本书将提供免费的阅读与下载。
C++,应用最广泛、成熟、强大、复杂、流行的程序设计语言。你目前正在使用的 Windows 或 Linux 操作系统的大部分内容均出自 C++ 的程序员之手,C++ 非常强大近乎无所不能,而 C++ 代码经过编译后将成为计算机的二进制代码的可执行程序,所以在兼容性、性能上均为优秀。当今如果你学习 C++,再配合 WIN32SDK、MFC 或是 .NET CLR,绝对是开发桌面程序的首选语言。从名字可以看出,C++ 改进自 C 语言,特别是面向对象方面的扩展,但学习 C++ 可以直接学习,不需要且不建议先学习 C 语言基础,可以把 C++ 当作一门全新的编程语言。
如在 Windows 平台下,C++ 首选的集成开发环境(IDE)自然是 Visual C++,它包含在 Microsoft Visual Studio 之中,最新版本是 2008。你可以选择微软官方提供的 Visual Studio 2008 专业版这是最好的选择!微软提供90天的试用版,安装镜像较为庞大,与正式版没有区别,同时包含了 MSDN Library(最权威的开发文档),唯独只是授权序号的区别。下载安装后即可使用。当然,你也可以进行简单的操作将其变为正式版。不过在此不是鼓励大家 使用盗版软件,如在非商用的情况下,这种手段是可行的,也会加快你的学习进度与质量。此外微软也提供了 Visual Studio 2008 速成版,又称为学生版,它是免费的,如仅是学习完全足够。
除了微软的 IDE,你还有其他的选择。在 Windows 下搭建 Eclipse + CDT + MinGW,Linux 和 Unix 下可以使用 Eclipse + GCC++,这些都是开源、免费的。或是更基本的你主需要一个记事本与 C++ 编译器,当然我不推荐这样做。
C#,读作 C Sharp。微软的 C# 就好似是 C++、Java、Delphi 与 Visual Basic 的结合体,是新兴、易学、强大的程序设计语言,它更像 Java完全面向对象,开发与运行都在 .NET Framework 环境中。使用微软强大的 Visual Studio 集成开发环境,这是快速开发 Windows 平台桌面应用程序的最好选择。听起来有点像 VB?不过 C# 比 VB 可强大多了。不过 C# 编译后的程序如 Java 一样是中间语言,运行程序的计算机需要安装 .NET Framework 运行环境,不算大也不算小。但在微软的 .NET 推出多年后的今天,它还没有较好的普及开,可能对你的程序传播会有一定影响。同时 C# 也可以开发 ASP.NET 的动态网页程序,这是曾经风火多年的 ASP 的替代产品。
开发 C# 程序,使用微软的 Visual Studio 是最好的,也是几乎唯一的选择。同 Visual C++ 的环境搭建基本雷同,在此不再复述。目前 .NET 环境已经发展到 3.5,C# 已经发展到 C# 4.0,学习 C# 请选择一本实时性、专业性、全面性的好教程。微软的 Visual Studio 2010 近期也将发布,届时将搭载更为强大的 C# 语言与集成开发环境(IDE)。更多关于微软推出的编程语言请参考09年8月编程语言排行榜:微软系编程语言大阅兵。
Python,新兴的面向对象脚本语言。说其新其实并不是如此,Python 已经具有十多年的历史,且已有非常多的开发者与使用者,最著名的就属 NASA(美国国家航空航天局)。其语言特点是语法清晰简洁,便于学习使用。而 Python 作为脚本语言,跨平台性非常好,几乎在所有操作系统中可以使用,在 Linux 操作系统中便大多原生支持 Pyhton。实质上这款语言非常优秀,近年来用户量飞速增长,可以进行桌面程序开发、动态网页开发、数据运算等。
不需要担心商业授权、付费这些额外的问题,Python 本身就是免费软件、自由软件。在 Python 官方网站 http://python.org/ 你可以下载适用于您操作系统的 Python 开发与运行环境。需要注意的是目前 Python 流行版本有 Python 2.6 与 Python 3.1,2 与 3 的区别较大,虽没改变本质,Python 3 但并不向下兼容。当然这里我们建议你学习 Python 3,它很快就会被流行。
Ruby,较 Python 来说更新兴的面向对象脚本语言,由日本人开发。实质上它与 Python 是同类,具有共同的一些特性、脚本语言、面向对象、免费开源、简洁强大、跨平台性,所以在此就不多作介绍。Python 与 Ruby 都是目前的新兴流行脚本语言,不过它们作为两款出生与成长不同的孩子,终究不同,选择哪一个还得取决于你的应用需要。在 Ruby 的官方中文站点获取更多信息,下载与安装 Ruby 开发与运行环境。
PHP,几乎你现在看到的像是门户网站、博客、论坛它们除去华丽的外表外,网页内部的程序与数据处理都离不开动态网页技术,而 PHP 正是目前最流行、强大、稳健的动态网页开发脚本语言。它的语言风格类似 C、Perl,可以集成在 HTML 网页代码只中,也遵循面向对象,并且易于学习。其实 PHP 还可以开发桌面应用程序,不过因为它的优秀,已主要作为了动态网页开发语言。如果你要学习开发 Web 应用程序,或是今年流行的 Web2.0 站点,PHP 绝对是你的首个选择。因为国内有相当多数量的 PHP 开源程序与学习资源,学习 PHP 的道路一路都会平坦。
因为是动态网页开发,所以开发 PHP 的 Web 程序需要搭建环境需要同时安装一个 HTTP 服务器与 PHP 解析程序,大多情况下你还要一个数据库服务器例如 MySQL、PostgreSQL。目前最流行的开发环境组合就是 Linux + Apache HTTP Server + MySQL + PHP,简称为 LAMP,Linux 操作系统大多均带有了这些程序。而如果在 Windows 环境下,你可以选择自行搭建各种匹配的环境,甚至让 IIS 作为 PHP 的 Web 服务器。或是想图省事,你可以下载安装一个 XAMMP,PHP 环境搭建一步到位!目前国内外大部分数据服务商(IDC)都提供了完美支持 PHP 的虚拟主机,你不用担心程序开发后的运行环境问题。开发与学习推荐的 IDE 有 Zend Studio、Eclipse 甚至是 Dreamweaver。
Perl,最具成熟、灵活性的脚本语言。学习较为容易,但却非常强大。Python 语言的许多特性便是有借鉴自 Perl。Perl 拥有一个大型的第三方代码库CPAN,极大的方便于程序人员的开发和使用。在官方网站下载 Perl 环境,所有的 Linux 系统都几乎集成了 Perl。脚本语言的开发都推荐在 Notepad++ 等高级文本编辑器中完成。
Pascal,曾经风靡全球的高级程序设计语言,特点是语言简明、结构严谨、较高灵活性,名气不下于 C++。前几年流行的 Delphi(一种 Windows 应用程序快速集成开发环境)使用的便是 Pascal 语言,国际信息学奥林匹克、中国信息技术奥林匹克竞赛的编程项目主要语言。如今 Pascal 语言在实际应用领域已逐渐被人舍弃,但依然是非常适合初学者的编程语言。你可以下载使用 Free Pascal 这个目前最好的 Pascal 编译环境,也可以使用 Deiphi。
Basic,或称为 Basic 系列语言,主要有 QuickBasic、QBasic、VBScript、Visual Basic、Visual Basic .NET,甚至有适于儿童学习的 Small Basic。如今 PC 计算机中流行中的 Basic 语言,正是鼎鼎大名的比尔盖茨先生编写,但最初的 Basic 语言来自上世纪60年代两位美国计算机科学家。
上世纪末期与本世纪初期,Visual Basic 作为一款简单易学的 Windows 应用程序开发环境,曾在中国被大量学习使用,现在你在书店还可以看到许多 Visual Basic 考试书籍与题目的身影,不过这些已经是早已淘汰的 VB6 了,我国的计算机等级考试大纲一直都存在严重问题(这是我的想法)。当时被流行的 VB6 让很多人快速的迈入了程序员的步子,但 VB6 因为并不强大,并不能有效开发大型程序。VB 的成功并不在于改进后的 Basic 语言本身,而应是优秀的集成开发环境(IDE)与开发 Windows 程序的便捷特性性。
微软公司在2002年推出了 Visual Basic .NET,正式推出 .NET 环境并让 VB 作为首批成员。如今的 Visual Basic 已经非常强大,但已完全的依赖于 .NET Framework 环境,可以开发 ASP.NET 程序。而且所有优秀特定均已被 C# 吸收,它们如今的差别并不大。我更倾向推荐有意学习 VB 的朋友去学习 C#。
汇编语言,又称组合语言,它是一种低级计算机语言,直接与计算机硬件底层交互。在上世纪 C、Pascal 等高级编程语言出现之前被广泛使用,如今只用于一些底层应用如硬件驱动程序的开发。汇编语言的难度非常高,使得早期的软件开发工作只有一些天才级或怪才级 的人才能胜任。如今汇编语言基本上不用于软件的开发,但对于程序开发人员来说,学习汇编语言可以让你深层了解计算机与计算机程序的原理。如今汇编语言还被 国内部分大学作为必修教程,而汇编语言也会有利于程序的反编译等工作。
好,至此目前主流的程序开发语言均已作介绍。下面是 QA 时间。
问:说了这么多,到底哪门编程语言适合我?我该学哪一个?
答:程序语言并不适合于人,而适用于所要开发的领域或软件的需求。你不能光从名称看出某一门编程语言的含义,也不能跟风别人学什么我就学什么。而在 于你的兴趣,或是你要涉及的领域、开发的程序。如果你要开发桌面程序,那就可以学习 C++、C#、VB、Java如果你要开发动态网页,就可以学习 C#、VB、Java如果你要开发手机程序,就可以选择 C++、Java 或 C#。我提供这么多内容,最重要的便是让你了解每一种编程语言的主要特性,而供你选择。或者你说我实在不知道我要选择哪个,我只是想学,这些特性或领域我 都不了解也不在乎。。如果你确定是如此,而如果你真的想涉及程序开发,建议你继续稍作了解。或学习目前流行的完全面向对象的编程语言 Java、C# 或 Python,这三个编程语言都很优秀,这是我的推荐。而在深入学习后,你会发现了解这三门语言的其中一个,再想学其它编程语言也可以做到触类旁通,很快 可以入手,因为这些语言的本质都是一样的,更何况选择一款编程语言就可以开发出大部分这些语言都可以开发的软件,做这些语言都可以做的事情,只是方式上的不同。
问:我想学习编程,据说要求数学头脑或英语能力?或已经是计算机高手?
答:如果你已经是一个成年人,这些都不是问题。实际上程序开发和数学虽息息相关,但在大部分应用中对数学水平的要求并不高,初中毕业就可以,甚至小 学也没问题。而对于初学者,这些程序开发语言虽使用英文,但实际学习过程中,需要记忆的英文单词并不多,稍作记忆和理解即可掌握,对开发者的英文没有要 求。但是!一旦你涉及到高水平的或是企业级的开发项目,会有更多你所未涉及的知识需要在技术文档中查阅,如 API、SDK 文档,或是 MSDN,这些文档中有一部分内容是英文的。就例如腾讯公司招聘程序员,就会要求开发者的英文水平可以基本读懂这些技术文档。事实上对英文的要求就正如 此,而我建议软件开发者在平日的学习中对英文水平进行一个修炼,对以后的开发、学习、了解新技术与资讯、编程思想都会有帮助。计算机水平上没有什么特定要 求,会打字就可以学编程。不过你需要对所开发的环境如 Windows 有了解,不然你连新建保存文档,或是操作系统是什么都不明白,你如何顺利学习编程?不过这些并不是大问题,基本上可以迅速的学习到。
问:如何学?如何学好?如何编写程序?
答:计算机程序的开发具有点、线、面的性质,更多的需要灵活性。第一,选择一本好教材、好老师,掌握你所学习的编程语言的概念、基本原理、基本语 法,然后逐渐深入,完成语言知识面的学习。第二,熟练编程语言后,你需要学习一种叫做设计模式的理论,与其说有助于开发,不如说是必须进行选择与学习,培 养良好的编程思维习惯。第三,我们的程序需要做的事情就是解决问题!利用掌握的知识,多练习,多实践,多解决身边的问题。开拓你的大脑创造力,你离编程大 师只有一步之遥。学习编程语言就如学习一般显示语言类似,掌握语言的文字、单词、语法,多进行阅读与训练,然后动用你的大脑控制笔去书写优美的篇章。