㈠ 現在最流行的編程語言是什麼初學者應該學哪一門
今天這篇文章篩選出一些主流編程語言,對語言特性與環境稍作介紹,希望可以幫助到一些編程初學者與有興趣學習編程的朋友,供大家了解與選擇,少走彎路。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)。
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 等高級編程語言出現之前被廣泛使用,如今只用於一些底層應用——如硬體驅動程序的開發。匯編語言的難度非常高,使得早期的軟體開發工作只有一些「天才級」或「怪才級」的人才能勝任。如今匯編語言基本上不用於軟體的開發,但對於程序開發人員來說,學習匯編語言可以讓你深層了解計算機與計算機程序的原理。如今匯編語言還被國內部分大學作為必修教程,而匯編語言也會有利於程序的反編譯等工作。
好,至此目前主流的程序開發語言均已作介紹。下面是 Q&A 時間。
問:說了這么多,到底哪門編程語言適合我?我該學哪一個?
答:程序語言並不適合於人,而適用於所要開發的領域或軟體的需求。你不能光從名稱看出某一門編程語言的含義,也不能跟風——別人學什麼我就學什麼。而在於你的興趣,或是你要涉及的領域、開發的程序。如果你要開發桌面程序,那就可以學習 C++、C#、VB、Java……如果你要開發動態網頁,就可以學習 C#、VB、Java……如果你要開發手機程序,就可以選擇 C++、Java 或 C#。我提供這么多內容,最重要的便是讓你了解每一種編程語言的主要特性,而供你選擇。或者你說……「我實在不知道我要選擇哪個,我只是想學,這些特性或領域我都不了解也不在乎。」。如果你確定是如此,而如果你真的想涉及程序開發,建議你繼續稍作了解。或學習目前流行的「完全面向對象」的編程語言 Java、C# 或 Python,這三個編程語言都很優秀,這是我的推薦。而在深入學習後,你會發現了解這三門語言的其中一個,再想學其它編程語言也可以做到「觸類旁通」,很快可以入手,因為這些語言的本質都是一樣的,更何況選擇一款編程語言就可以開發出大部分這些語言都可以開發的軟體,做這些語言都可以做的事情,只是方式上的不同。
問:我想學習編程,據說要求數學頭腦或英語能力?或已經是計算機高手?
答:如果你已經是一個成年人,這些都不是問題。實際上程序開發和數學雖息息相關,但在大部分應用中對數學水平的要求並不高,初中畢業就可以,甚至小學也沒問題。而對於初學者,這些程序開發語言雖使用英文,但實際學習過程中,需要記憶的英文單詞並不多,稍作記憶和理解即可掌握,對開發者的英文沒有要求。但是!一旦你涉及到高水平的或是企業級的開發項目,會有更多你所未涉及的知識需要在技術文檔中查閱,如 API、SDK 文檔,或是 MSDN,這些文檔中有一部分內容是英文的。就例如騰訊公司招聘程序員,就會要求開發者的英文水平可以基本讀懂這些技術文檔。事實上對英文的要求就正如此,而我建議軟體開發者在平日的學習中對英文水平進行一個修煉,對以後的開發、學習、了解新技術與資訊、編程思想都會有幫助。計算機水平上沒有什麼特定要求,會打字就可以學編程。不過你需要對所開發的環境如 Windows 有了解,不然你連新建保存文檔,或是操作系統是什麼都不明白,你如何順利學習編程?不過這些並不是大問題,基本上可以迅速的學習到。
問:如何學?如何學好?如何編寫程序?
答:計算機程序的開發具有點、線、面的性質,更多的需要靈活性。第一,選擇一本好教材、好老師,掌握你所學習的編程語言的概念、基本原理、基本語法,然後逐漸深入,完成語言知識面的學習。第二,熟練編程語言後,你需要學習一種叫做設計模式的理論,與其說有助於開發,不如說是必須進行選擇與學習,培養良好的編程思維習慣。第三,我們的程序需要做的事情就是解決問題!利用掌握的知識,多練習,多實踐,多解決身邊的問題。開拓你的大腦創造力,你離編程大師只有一步之遙。學習編程語言就如學習一般顯示語言類似,掌握語言的文字、單詞、語法,多進行閱讀與訓練,然後動用你的大腦控制筆去書寫優美的篇章。
問:還有什麼要求?
答:學習程序開發,說難就難,說簡單就簡單。要明確興趣與方向,要樹立並堅定目標。學習過程中需要多努力,多練習,多問,多 Google 一下,多思考,多想如何「解決問題」!如能做到這些,真的足夠了。