一、萬物之源C語言 前端
難度:★★★ 人氣:★★★★★ 誕生於1972年python
屬性: C語言是一種通用型命令式計算機編程語言,其支持結構化編程、詞彙變量範圍與遞歸,同時亦是套可以預防各種未預期操做的靜態類型系統。 其最初構建目標在於編寫系統軟件。程序員
用途:軟件開發 硬件 操做系統數據庫
優點:django
一、可移植性 :無需或者不多改動就能夠將開發出的軟件在不一樣平臺上運行 編程
二、C語言徹底基於變量、宏、函數以及結構,所以可被嵌入至幾乎一切現代處理器。從冰箱到鬧鐘便可做爲其運行平臺。windows
三、瞭解C語言,也就瞭解了關於編程語言的一切:幾乎全部現代編程語言都脫胎於C.所以瞭解C語言可以幫助你們快速掌握其它各種編程語言。瀏覽器
劣勢:安全
一、運行時:C語言不具有運行時檢查機制。服務器
二、 面向對象編程:C語言不支持面向對象編程,所以C++纔會誕生以解決這一問題。
三、 複雜的學習曲線:並不是最易或者最難於上手的編程語言,比較適合那些已經對其它編程語言有所瞭解的學習者。
冷知識:
一、C語言被用來構建AmazonKindle、Linux、OpenGL
二、C語言於1969年至1973年之間由AT&T公司旗下貝爾實驗室建立完成,用於構建Unix操做系統。
三、大部分誕生的語言都直接或間接地借用了C語言的概念,其中包括 Linux C++.D. Go、Rust. Java. JavaS- JS cript. Limbo. LPC C#、Objec tive-C. Perl. PHP、Python
二、C#
難度:★★★ 人氣:★★★★ 誕生於2000年
屬性:這是 一款強大而靈活的編程語言。 與其餘編程語言同樣,它也可用於建立多種應用程序。事實上,C#的功能只受限於咱們的想象力。該語言對開發者的操做內容徹底不設任何限制,其可被用於交付動態網站、開發工具甚至是編譯器等等。
用途:Windows應用 企業級業務應用 軟件開發
優點:
一、Net庫: :全面集成Net庫,提供出色的功能與支持庫訪問能力。
二、可轉換性:其基於C語言,所以C#的結構可轉移至Java、Objective-C、PHP以及C++等其它語言形式
三、需求旺盛::C#加Java爲目前各企業需求最爲旺盛的軟件開發技能組合。
劣勢:
一、C#並非最適合新手們進行入門學習的編程語言,其學習曲線很是陡峭。
二、跨平臺能力差:因爲集成Net,所以不具有跨平臺能力
冷知識:
一、C#用於構建Stack Overflow、EVERNOTE
二、C#的首席設計師兼首席設計架構師爲微款公司的Anders Heisberg.。
三、C#本來曾被定名爲Cool, 全稱爲"C-like Object OnientedL anguage"即類C 型面向對象編程語言,因爲商標緣由而改名爲C# 。
三、C++
難度:★★★★ 人氣:★★★★ 誕生於1983年
屬性:C++是一款面向對象編程(簡稱OOP)語言,被普遍視爲最出色的大規模應用構建語言。C++屬於C語言的一個超集。
用途:軟件開發 搜索引擎 操做系統 視頻遊戲
優點:
一、重要技能:掌握CC++可以幫助你們在衆多開發人才當中脫穎而出,掌提了C/C++你們將可以深刻了解Java或Python等編程語言中的內存管理機制,並瞭解如何迴避各種常見的餡阱與難題。
一、靈活的調整空間:C++容許你們對本身的應用進行靈活調整井充分發揮計算機的所有性能。與Java/C++相比,編程過程並不友好,但咱們卻可以利用它實現一切操做。
劣勢:
一、艱難的學習曲線::C++很是難於學習,但在掌握以後你們將直接登上程序員金字塔的塔尖。
二、體系極爲龐大:: C++規模可觀且擁有大量極爲複雜的功能交互方式,沒有哪位開發者可以使用其提供的所有構建組件,但咱們能夠充分發揮本身的才智爲理序選擇正確的功能子集。
冷知識:
一、C++用來構建Google、Outlook
二、C++由Bjarne Stroustrup於1983年開發完成,並做爲C語言的加強方案。
四、C++中有84個關鍵字
三、C++可實現跨越全部設備移植,如、安卓、蘋果、windows Phone、黑莓等移動平臺。
四、Java
難度:★★★ 人氣:★★★★★ 建立於1995年
屬性:Java是一款編程語言,開發者能夠利用其在計算機上建立應用程序。你們在下載某款須要Java運行時的程序時,可能已經在不知不覺中將其安裝到了本身的系統當中。Java還提供Web插件,容許你們在瀏覽器中運行此類應用。
用途:安卓、IOS開發 視頻遊戲開發 桌面GUI 軟件開發
優點:
一、需求旺盛::Dice.com於2015年5月發佈的報告指出,Java開發崗位爲目前需求量最大的軟件技能方向。
二、不斷髮展的語言::Java平臺不斷迎來新功能,包括llambda機制的引入。
三、Android應用開發的基石:谷歌公司的Androld移動平臺是目前全球範圍內人氣最高的移動平臺。開發者能夠利用本身的Java技能力爲Android系統開發應用。
劣勢:
一、佔用大量內存:Java使用的內存量高於C++.
二、學習曲線較長:並不屬於最馬於上手的語言,固然也不是最難學習的語言。
三、啓動時間較長:利用Java語言開發Androld應用時,咱們必定會對其模擬器代碼在臺式機上運行速度留下深入印象。
冷知識:
一、Java最初命名爲Oak,由於其締造者的窗外有一棵巨大的橡樹
二、Java是Android操做系統的基石
三、使用Java幫助咱們在網絡世界旅行
四、大部分網站容許咱們將圖片直接上傳到由Java構建而成的平臺。
五、使用Java插件便可實現交互式在線地圖
六、利用Java實如今線遊戲
五、JavaScript(JS)
難度: ★★ 人氣:★★★★ 誕生時間1995年
屬性:JavaScnpt是一款使用領率最高的客戶端腳本語言,這意味這JavaSonpt代碼寫至HTML頁面當中, 當用戶經過內部 JavaScript請求至HTML頁面時,該腳本會被髮送至瀏覽器,並由瀏覽器決定下一步操做。
用途:網站前端 分析 功能控件 Web交互
優點:
一、速度:做爲客戶端腳本語言JavaSarpt中的任意代碼函數卻可當即運行而無需等待服務器鏈接及應答,所以其速度很是出色。
二、易學性:JavaSorpt相對易於學習及使用。
三、簡單性:JavaScrpt可以與其它多種語言項利協做,並可用於多種不一樣應用程序與PHP或者SSI腳本不一樣,JavaSoript 可被插入任意網頁當中,而無需考慮具體文件擴展名。
劣勢:
一、安全性:因爲代碼在用戶計算機上執行,所以其有時會被惡意活動所利用.正由於如此,部分用戶會選擇禁用JavaScript.
二、最終用戶依賴性::JavaScnpt有時會在不一樣瀏覽器上以不一樣方式進行解釋。相較於總能提供一樣輸出結果的服務器端腳本,JavaScript客戶端腳本的可預測性相對較差。不過這一問題並非很是嚴重,只要咱們在所有主流測覽器上對腳本進行充分測試便可。
冷知識:
一、JS被用來構建PayPal 、YouTube
二、JS於1995年由網景公司開發完成
三、jQuery爲目前爲網絡上應用最爲普遍JS庫
四、JavaScrip可用於在客戶端實現表單數據,從而節約服務器資源與時間
五、JS基於當前時間顯示信息
六、能夠用來動態變動網頁內容,無需藉助於服務器程序
七、爲網站引入交互元素
六、PHP
難度: ★★ 人氣:★★★★ 誕生時間1994
屬性:PHP是一款服務器端腳本語言,主要面向Web開發但同時做爲通用性編程語言
用途:WordPress插件 Web開發 建立包含數據庫功能頁面
優點:
一、易於上手且功能豐富:它是一款適合Web開發與通用用途,易於快速上手的服務器端腳本語言。
二、龐大的社區:換有龐大所活躍的社區。Web開友者面臨的大部分難題擁有現成的制決方案。
三、數據庫:可與各種數據庫、文件系統及圖片順暢協做。
劣勢:
一、學習門檻太低:因爲學習門檻過低,項目中存在着大量經驗不足的開發者,某些開源代碼甚至已經存在十餘年。
二、速度::PHP爲解釋型語言,其代碼運行速度低於大部分編程語言黨爭對手。
三、錯誤處理機制: PHP的錯誤處理機制比較糟糕,特別是與其它編程語言相比較,這主要是由於PHP的開發歷史過長且須要支持大量舊有功能。
冷知識:
一、PHP用於構建FaceBook、WordPress
二、PHP最初表示我的主頁(Personal Home Page),現在的含義是超文本預處理器
三、Rasmus Lerdort於1994年開發出PHP語言。他曾經開發出一系列網關接口腳本,並藉此維護我的主頁
四、PHP功能豐富而且支持 文本、HTML、CSS、JavaScript
五、PHP能用做收集表單數據、在服務器上對文件操做、生成動態頁面內容、限定用戶訪問網站中的特定網頁、添加 修改數據庫中的數據、暑促HTML,圖像,PDF,SWF文件、加密數據、發送接收cookie
七、Python
難度: ★ 人氣:★★★★★ 誕生時間
屬性:Python是一項服務器端解釋型開源非編譯腳本語言。可單獨使用,也可做爲django等框架的組成部分
用途:Web開發 視頻遊戲開發 桌面GUI 軟件開發
優點:
一、易於學習:Python做爲最照於掌握的編程語言而擁有極高人氣。
二、庫:普遍的工具及功能庫可以幫助你們輕鬆完成構建工做。
三、物聯網:Python特隨着物聯網技術的普及而進一步發展,目前Rasp-bery Pi等新型平臺已經將其做爲開發基礎,
劣勢:
一、速度:做爲一種解釋型語言,其速度每每往低於編譯語言。
二、移動:Python在移動計算領域的表現 比較植過。 利用Python開發的 移動應用很是罕見。
三、設計:Python語言在設計上存在一些問題,其屬於動態類語言,所以須要進行更多測試且帶來某些只在特定運行時中出現的錯誤會。
冷知識:
一、Python用來構建YouTube、Spotify
二、是Google的官方語言之一
三、由程序員Guido van Rossum建立而成
八、RUBY
難度: ★★ 人氣:★★★ 誕生時間1995年
屬性:Ruby是一款動態式、響應式、面向對象的通用型編程語言,同時也是適合新手入門的語言之一。
用途:桌面GUI Web應用 Web開發
優點:
一、易於學習:與Python相似.Ruby一樣屬於最易於學習的編程語言之一。
二、普遍的工具及功能庫使得利用Ruby構建應用安得很是輕鬆。詳情參閱RubyGems.ong
三、龐大且不斷髮展的社區:世界範圍內幾乎每一座主要城市都會定明組織Ruby社區研討活動,其同時也是社交編程站點GitHub上最具人氣的語言。
劣勢:
一、運行時速度:關於Ruby on Rals,人們最深的印象就是糟糕的速度表現。
二、說明文檔::咱們很難找到良好的 Pauby說明文檔。特別是對人氣較低的gems以及庫而言。
三、性能表現:: RoR應用的運行速度沒法與Java或者C語言編寫的應用相媲美但必先強調,大部分Rubon Rals應用的運行速度已經可以讓人們接受了
冷知識:
一、用於構建hulu、GROUPON、airbnb
二、Ruby的定位是幫助世界上每一位程序員得到生產力,享受編程的快感
三、Ruby on Rails是一套由Ruby編寫的基於MIT許可的Web應用框架。
總結
從上面的對比咱們不難發現,每種程序語言都有其優點和劣勢,那麼咱們應該怎麼選擇編程語言呢?下面主要介紹種要考慮的的要點。
一、構建編寫網頁 推薦:HTML、CSS、PHP
二、開發app 推薦:Java、C++
三、製做視頻遊戲 推薦:Python、Java
四、對數據進行管理 推薦:C#、PHP、Python
五、進行偏硬件的編程 推薦:C
六、進行科學計算 推薦:Python
固然,咱們在實際開發的時候須要咱們綜合考慮產品需求,在程序運行速度指標、硬件要求、開發週期等方面進行權衡,最終肯定編程所需語言。