代碼的未來教材_第1頁
代碼的未來教材_第2頁
代碼的未來教材_第3頁
代碼的未來教材_第4頁
代碼的未來教材_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

代碼的未來注:文本框可根據(jù)需求改變顏色、移動(dòng)位置;文字可編輯作者:XXX日期:2015.11.17點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本目錄摩爾預(yù)言編程語言的分類編程語言的發(fā)展各種語言分析數(shù)據(jù)庫大數(shù)據(jù)時(shí)代的編程2015編程語言排行榜TIOBE提供Nov2015Nov2014ChangeProgrammingLanguageRatingChange12?Java20.403%+6.01%21?C17.145%-0.32%34?C++6.198%+0.1%45?C#4.318%-0.67%57?Python3.771%+1.18%66PHP3.248%+0.2%78?JavaScript2.473%+0.38%810?VisualBasic.NET2.223%+0.16%914?Ruby2.038%+0.83%109?Pert2.032%-0.04%1129?Assemblylanguage1.883%+1.28%1215?Delphi/ObjectPasscal1.682%+0.73%1311?VisualBasic1.681%+0.02%143?Objective-C1.426%-7.64%1518?Swift1.236%+0.40%1624?MATLAB1.185%+0.43%1719?Pascal1.099%+0.27%1817?PL/SQL1.032%+0.16%1912?R1.013%-0.53%2028?COBOL0.921%+0.32%點(diǎn)擊添加文本點(diǎn)擊添加文本機(jī)器語言(1946)FORTRAN(1954)C(1972)Basic(1964)C++(1983)PHP(1994)Python(1991)JAVA(1995)C#(2001)JavaScript(1995)go(2009)?Swift(2014)點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本目錄摩爾預(yù)言編程語言的分類編程語言的發(fā)展各種語言分析數(shù)據(jù)庫大數(shù)據(jù)時(shí)代的編程摩爾預(yù)言摩爾預(yù)言:LSI中晶體管數(shù)量每十八個(gè)月增加一倍遇到的問題: —過于精細(xì)無法實(shí)現(xiàn) —漏電流 —發(fā)熱戈登·摩爾點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本目錄摩爾預(yù)言編程語言的分類編程語言的發(fā)展各種語言分析數(shù)據(jù)庫大數(shù)據(jù)時(shí)代的編程點(diǎn)擊添加文本解釋型語言編譯型語言編譯型語言寫的程序執(zhí)行之前,需要一個(gè)專門的編譯過程,把程序編譯成為機(jī)器語言的文件,比如exe文件,以后要運(yùn)行的話就不用重新翻譯了,直接使用編譯的結(jié)果就行了(exe文件),因?yàn)榉g只做了一次,運(yùn)行時(shí)不需要翻譯,所以編譯型語言的程序執(zhí)行效率高。舉例:C、C++解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運(yùn)行程序的時(shí)候才翻譯,比如解釋性basic語言,專門有一個(gè)解釋器能夠直接執(zhí)行basic程序,每個(gè)語句都是執(zhí)行的時(shí)候才翻譯。這樣解釋性語言每執(zhí)行一次就要翻譯一次,效率比較低。解釋是一句一句的翻譯。舉例:JAVA點(diǎn)擊添加文本編譯型——運(yùn)行速度快,代碼效率高優(yōu)點(diǎn)缺點(diǎn)——編譯后的程序不可修改,保密性較好代碼需要經(jīng)過編譯方可運(yùn)行,可移植性差,只能在兼容的操作系統(tǒng)上運(yùn)行解釋型可移植性較好,只要有解釋環(huán)境,可在不同的操作系統(tǒng)上運(yùn)行優(yōu)點(diǎn)缺點(diǎn)——需要解釋環(huán)境,運(yùn)行起來比編譯的要慢——占用資源也要多一些,代碼效率低腳本語言

腳本語言又被稱為擴(kuò)建的語言,或者動(dòng)態(tài)語言,是一種編程語言,用來控制軟件應(yīng)用程序,腳本通常以文本(如ASCII)保存,只在被調(diào)用時(shí)進(jìn)行解釋或編譯。舉例:Python函數(shù)式編程函數(shù)式編程是一種編程模型,他將計(jì)算機(jī)運(yùn)算看做是數(shù)學(xué)中函數(shù)的計(jì)算,并且避免了狀態(tài)以及變量的概念。最早的函數(shù)式編程語言Lisp,現(xiàn)在的函數(shù)式編程Erlang、clojure、Scala、F#。主要思想:把運(yùn)算過程盡量寫成一系列嵌套的函數(shù)調(diào)用。主要適合一些數(shù)學(xué)方面的計(jì)算,因?yàn)闋顟B(tài)不變性,故并發(fā)性好。函數(shù)式編程代碼簡潔,開發(fā)快速接近自然語言,易于理解并發(fā)性好更方便的代碼管理PaulGraham比較面向?qū)ο缶幊毯瘮?shù)式編程1.數(shù)據(jù)與函數(shù)是松耦合的2.函數(shù)隱藏了它們的實(shí)現(xiàn),語言的抽象是函數(shù),以及將函數(shù)組合起來表達(dá)。3.核心抽象模型是函數(shù),不是數(shù)據(jù)結(jié)構(gòu)4.核心活動(dòng)是編寫新的函數(shù)。1.數(shù)據(jù)和對(duì)數(shù)據(jù)的操作緊緊耦合2.對(duì)象隱藏它們操作的實(shí)現(xiàn)細(xì)節(jié),其他對(duì)象調(diào)用這些操作只需要通過接口3.核心抽象模型是數(shù)據(jù)自己4.核心活動(dòng)是組合新對(duì)象和拓展已經(jīng)存在的對(duì)象,這是通過加入新的方法實(shí)現(xiàn)的計(jì)算:(1+2)*3-4面向?qū)ο缶幊?vara=1+2; varb=a*3; varc=b-4;函數(shù)式編程 varresult=subtract(multiply(add(1,2),3),4);點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本目錄摩爾預(yù)言編程語言的分類編程語言的發(fā)展各種語言分析數(shù)據(jù)庫大數(shù)據(jù)時(shí)代的編程C發(fā)展:BCPL(1970前)B(1970—KenThompson)C(1972—D.M.Ritchie)C簡潔緊湊、靈活方便C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行操作C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高C語言適用范圍大,可移植性好適用范圍硬件、嵌入式編程操作系統(tǒng)游戲數(shù)據(jù)庫C++1983年,貝爾實(shí)驗(yàn)室的BjarneStroustrup在C語言基礎(chǔ)上推出了C++。C++進(jìn)一步擴(kuò)充和完善了C語言,是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。C++

類型檢查更為嚴(yán)格增加了面向?qū)ο蟮臋C(jī)制

增加了泛型編程的機(jī)制增加了異常處理

增加了運(yùn)算符重載適用范圍游戲圖形學(xué)與圖像處理操作系統(tǒng)嵌入式系統(tǒng)科學(xué)計(jì)算……C++11標(biāo)準(zhǔn)c++本身問題c++11標(biāo)準(zhǔn)Linux之父LinusTorvaldsJAVA跨平臺(tái)穩(wěn)定性好(沒有用戶指針)內(nèi)存回收機(jī)制開發(fā)效率比C/C++快適用范圍跨平臺(tái)編程網(wǎng)絡(luò)編程服務(wù)器編程手機(jī)編程(Andriond)GoGo語言是谷歌2009發(fā)布的開源編程語言。在google公司,在公司產(chǎn)品開發(fā)中所使用的編程語言,僅限于C/C++、JAVA、PYTHON和javascript。其中對(duì)C/C++最不滿意,開發(fā)效率太低。Go優(yōu)點(diǎn)Go語言專門針對(duì)多處理器系統(tǒng)應(yīng)用程序的編程進(jìn)行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進(jìn)程。ScalaScala語言源自瑞士洛桑聯(lián)邦理工學(xué)院,由奧德斯基教授2001年帶領(lǐng)小組開發(fā)。奧德斯基教授創(chuàng)建Scala語言的一個(gè)主要原因是不滿Java語言相對(duì)復(fù)雜的語法。Scala優(yōu)點(diǎn)Scala語言最直接的好處是兼容Java,這就意味著可以無縫使用所有Java的類庫和框架,而且Scala語言優(yōu)雅、簡潔。支持函數(shù)式編程支持異步編程Object-C&Swift 是擴(kuò)充C的面向?qū)ο缶幊陶Z言,蘋果的御用語言。

Object-C出生在1980年代初,Swift出生在2014年。

Swift的優(yōu)勢不單是速度快,更支持了很多現(xiàn)代編程語言的特點(diǎn),比如范式編程、命名空間等等。另外,蘋果公司表示Swift學(xué)習(xí)起來更加容易。PythonPython是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言。Python具有豐富和強(qiáng)大的庫。它常被昵稱為膠水語言。優(yōu)點(diǎn):簡單易學(xué)、免費(fèi)、開源、豐富的庫、可移植性好國外許多大學(xué)編程入門語言是Python。適用范圍系統(tǒng)編程用戶圖形接口Internet編程游戲、圖像、人工智能、機(jī)器人、計(jì)算等2015編程語言排行榜TIOBE提供Nov2015Nov2014ChangeProgrammingLanguageRatingChange12?Java20.403%+6.01%21?C17.145%-0.32%34?C++6.198%+0.1%45?C#4.318%-0.67%57?Python3.771%+1.18%66PHP3.248%+0.2%78?JavaScript2.473%+0.38%810?VisualBasic.NET2.223%+0.16%914?Ruby2.038%+0.83%109?Pert2.032%-0.04%1129?Assemblylanguage1.883%+1.28%1215?Delphi/ObjectPasscal1.682%+0.73%1311?VisualBasic1.681%+0.02%143?Objective-C1.426%-7.64%1518?Swift1.236%+0.40%1624?MATLAB1.185%+0.43%1719?Pascal1.099%+0.27%1817?PL/SQL1.032%+0.16%1912?R1.013%-0.53%2028?COBOL0.921%+0.32%點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本目錄摩爾預(yù)言編程語言的分類編程語言的發(fā)展各種語言分析數(shù)據(jù)庫大數(shù)據(jù)時(shí)代的編程數(shù)據(jù)庫排名DB-Engines提供數(shù)據(jù)庫排名DB-Engines提供點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添加文本數(shù)據(jù)庫分類非關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。關(guān)系模型是由埃德加·科德于1970年首先提出的。簡單來說,關(guān)系模型就是二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫就是由二維表及其之間的聯(lián)系所組成的數(shù)據(jù)組織。必須滿足事務(wù)性(ACID)。優(yōu)點(diǎn)容易理解使用方便易于維護(hù)非關(guān)系型數(shù)據(jù)庫2009年,EricEvans提出了NoSQL一詞。

NoSQL,泛指非關(guān)系型的數(shù)據(jù)庫。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。分類:鍵值(Key-Value)數(shù)據(jù)庫、面向文檔(Document-Oriented)數(shù)據(jù)庫、列存儲(chǔ)(WideColumnStore/Column-Family)數(shù)據(jù)庫、圖(Graph-Oriented)數(shù)據(jù)庫。優(yōu)點(diǎn)由于關(guān)系型數(shù)據(jù)庫操作的事務(wù)性,即具備ACID的特性。為了維護(hù)一致性導(dǎo)致的結(jié)果是讀寫性能比較差。而像微博、facebook這類SNS的應(yīng)用,對(duì)并發(fā)讀寫能力要求極高,關(guān)系型數(shù)據(jù)庫已經(jīng)無法應(yīng)付。于是,非關(guān)系型數(shù)據(jù)庫應(yīng)運(yùn)而生。它不具備事務(wù)性,僅僅保證最終的數(shù)據(jù)的一致性。二者比較非關(guān)系型數(shù)據(jù)庫嚴(yán)格上不是一種數(shù)據(jù)庫,應(yīng)該是一種數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ)方法的集合?;蛘哒f它是實(shí)現(xiàn)了一部分關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫。必須強(qiáng)調(diào)的是,數(shù)據(jù)的持久存儲(chǔ),尤其是海量數(shù)據(jù)的持久存儲(chǔ),還是需要一種關(guān)系數(shù)據(jù)庫。

NewSQLNewSQL是對(duì)各種新的可擴(kuò)展/高性能數(shù)據(jù)庫的簡稱,這類數(shù)據(jù)庫不僅具有NoSQL對(duì)海量數(shù)據(jù)的存儲(chǔ)管理能力,還保持了傳統(tǒng)數(shù)據(jù)庫支持ACID和SQL等特性。

點(diǎn)擊添加文本點(diǎn)擊添加文本點(diǎn)擊添

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論