身處互聯(lián)網(wǎng)信息時(shí)代,打開(kāi)電腦,翻看移動(dòng)設(shè)備,網(wǎng)站,web端應(yīng)用,小程序,App隨處可見(jiàn),這些IT產(chǎn)品的建立、開(kāi)發(fā)都匯集了多種技術(shù),前端,后端,數(shù)據(jù)庫(kù),架構(gòu),框架,腳本,編程語(yǔ)言,UI,UX……種類(lèi)繁多,讓人不自覺(jué)地眼花繚亂,我們的工作室整理了一部分相關(guān)資料予以分享,以供讀者學(xué)習(xí),交流。
網(wǎng)站作為傳統(tǒng)互聯(lián)網(wǎng)時(shí)代的內(nèi)容傳播方式和平臺(tái),在如今仍然占據(jù)著舉足輕重的地位,雖然往日不同今日,網(wǎng)站的內(nèi)容仍然像是藍(lán)海一樣,蘊(yùn)藏著無(wú)數(shù)的創(chuàng)意和大量的有效內(nèi)容。
下面我們來(lái)盤(pán)點(diǎn)網(wǎng)站的開(kāi)發(fā)語(yǔ)言:
用于網(wǎng)站開(kāi)發(fā)的計(jì)算機(jī)語(yǔ)言
前端語(yǔ)言
前端編程語(yǔ)言用于定義網(wǎng)頁(yè)的結(jié)構(gòu)和外觀,包括HTML、CSS和JavaScript
HTML
超文本標(biāo)記語(yǔ)言(英語(yǔ):HyperText Markup Language,簡(jiǎn)稱:HTML)是一種用于創(chuàng)建網(wǎng)頁(yè)的標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。HTML是一種基礎(chǔ)技術(shù),常與CSS、JavaScript一起被眾多網(wǎng)站用于設(shè)計(jì)網(wǎng)頁(yè)、網(wǎng)頁(yè)應(yīng)用程序以及移動(dòng)應(yīng)用程序的用戶界面。網(wǎng)頁(yè)瀏覽器可以讀取HTML文件,并將其渲染成可視化網(wǎng)頁(yè)。HTML描述了一個(gè)網(wǎng)站的結(jié)構(gòu)語(yǔ)義隨著線索的呈現(xiàn),使之成為一種標(biāo)記語(yǔ)言而非編程語(yǔ)言。
HTML元素是構(gòu)建網(wǎng)站的基石。HTML允許嵌入圖像與對(duì)象,并且可以用于創(chuàng)建交互式表單,它被用來(lái)結(jié)構(gòu)化信息——例如標(biāo)題、段落和列表等等,也可用來(lái)在一定程度上描述文檔的外觀和語(yǔ)義。HTML的語(yǔ)言形式為尖括號(hào)包圍的HTML元素(如<html>),瀏覽器使用HTML標(biāo)簽和腳本來(lái)詮釋網(wǎng)頁(yè)內(nèi)容,但不會(huì)將它們顯示在頁(yè)面上。
HTML可以嵌入如JavaScript的腳本語(yǔ)言,它們會(huì)影響HTML網(wǎng)頁(yè)的行為。網(wǎng)頁(yè)瀏覽器也可以引用層疊樣式表(CSS)來(lái)定義文本和其它元素的外觀與布局。維護(hù)HTML和CSS標(biāo)準(zhǔn)的組織萬(wàn)維網(wǎng)聯(lián)盟(W3C)鼓勵(lì)人們使用CSS替代一些用于表現(xiàn)的HTML元素。
目前最高版本是HTML5
CSS
層疊樣式表(英語(yǔ):Cascading Style Sheets,縮寫(xiě):CSS;又稱串樣式列表、級(jí)聯(lián)樣式表、串接樣式表、階層式樣式表)是一種用來(lái)為結(jié)構(gòu)化文檔(如HTML文檔或XML應(yīng)用)添加樣式(字體、間距和顏色等)的計(jì)算機(jī)語(yǔ)言,由W3C定義和維護(hù)。CSS3現(xiàn)在已被大部分現(xiàn)代瀏覽器支持,而下一版的CSS4仍在開(kāi)發(fā)中。
CSS不僅可以靜態(tài)地修飾網(wǎng)頁(yè),還可以配合各種腳本語(yǔ)言動(dòng)態(tài)地對(duì)網(wǎng)頁(yè)各元素進(jìn)行格式化。CSS能夠?qū)W(wǎng)頁(yè)中元素位置的排版進(jìn)行像素級(jí)精確控制,支持幾乎所有的字體字號(hào)樣式,擁有對(duì)網(wǎng)頁(yè)對(duì)象和模型樣式編輯的能力。
目前最高版本是CSS4(早在2011年9月29日W3C就開(kāi)始了設(shè)計(jì)CSS4,但是時(shí)至今日只有極少數(shù)的功能被部分網(wǎng)頁(yè)瀏覽器支持,如使用在HTML而非SVG上的pointer-events。CSS4增加了一些更方便的選擇器,并簡(jiǎn)化了一些現(xiàn)有選擇器的用法。
更多的仍然是使用CSS3。
JavaScript
JavaScript(通??s寫(xiě)為JS)是一門(mén)基于原型和頭等函數(shù)的多范式高級(jí)解釋型編程語(yǔ)言,它支持面向?qū)ο蟪绦蛟O(shè)計(jì)、指令式編程和函數(shù)式編程。它提供方法來(lái)操控文本、數(shù)組、日期以及正則表達(dá)式等。不支持I/O,比如網(wǎng)絡(luò)、存儲(chǔ)和圖形等,但這些都可以由它的宿主環(huán)境提供支持。它由ECMA(歐洲電腦制造商協(xié)會(huì))通過(guò)ECMAScript實(shí)現(xiàn)語(yǔ)言的標(biāo)準(zhǔn)化。目前,它被世界上的絕大多數(shù)網(wǎng)站所使用,也被世界主流瀏覽器(Chrome、IE、Firefox、Safari和Opera)所支持。
JavaScript與Java在名字和語(yǔ)法上都很相似,但這兩門(mén)編程語(yǔ)言從設(shè)計(jì)之初就有很大不同。JavaScript在語(yǔ)言設(shè)計(jì)上主要受到了Self(一種基于原型的編程語(yǔ)言)和Scheme(一門(mén)函數(shù)式編程語(yǔ)言)的影響,在語(yǔ)法結(jié)構(gòu)上它和C語(yǔ)言很相似(如if條件語(yǔ)句、switch語(yǔ)句、while循環(huán)和do-while循環(huán)等)。
對(duì)于客戶端來(lái)說(shuō),JavaScript通常被實(shí)現(xiàn)為一門(mén)解釋語(yǔ)言,但如今它已經(jīng)可以被即時(shí)編譯(JIT)。隨著HTML5和CSS3語(yǔ)言標(biāo)準(zhǔn)的推行,它還可以用于游戲、桌面和移動(dòng)應(yīng)用程序的開(kāi)發(fā),以及在服務(wù)器端網(wǎng)絡(luò)環(huán)境運(yùn)行(如Node.js)。
JavaScript語(yǔ)言最初命名為Mocha,后更名為L(zhǎng)iveScript,后開(kāi)發(fā)此門(mén)語(yǔ)言的公司聯(lián)盟為將這門(mén)語(yǔ)言搭上Java這個(gè)編程語(yǔ)言“熱詞”,改名為:“JavaScript”。
JavaScript語(yǔ)言有很多工具庫(kù)(Library),用來(lái)實(shí)現(xiàn)不同用途和功能。
后端語(yǔ)言
后端編程語(yǔ)言用于處理用戶請(qǐng)求、生成網(wǎng)頁(yè)內(nèi)容和存儲(chǔ)數(shù)據(jù),包括PHP、Python、Java、Ruby等。
PHP
PHP(全稱:PHP:Hypertext Preprocessor,即“PHP:超文本預(yù)處理器”)是一種開(kāi)源的通用計(jì)算機(jī)腳本語(yǔ)言,尤其適用于網(wǎng)絡(luò)開(kāi)發(fā)并可嵌入HTML中使用。PHP的語(yǔ)法借鑒吸收C語(yǔ)言、Java和Perl等流行計(jì)算機(jī)語(yǔ)言的特點(diǎn),易于一般程序員學(xué)習(xí)。PHP的主要目標(biāo)是允許網(wǎng)絡(luò)開(kāi)發(fā)人員快速編寫(xiě)動(dòng)態(tài)頁(yè)面,但PHP也被用于其他很多領(lǐng)域。
PHP的應(yīng)用范圍相當(dāng)廣泛,尤其是在網(wǎng)頁(yè)程序的開(kāi)發(fā)上。一般來(lái)說(shuō)PHP大多執(zhí)行在網(wǎng)頁(yè)服務(wù)器上,通過(guò)執(zhí)行PHP代碼來(lái)產(chǎn)生用戶瀏覽的網(wǎng)頁(yè)。PHP可以在多數(shù)的服務(wù)器和操作系統(tǒng)上執(zhí)行。根據(jù)2013年4月的統(tǒng)計(jì)資料,PHP已經(jīng)被安裝在超過(guò)2億4400萬(wàn)個(gè)網(wǎng)站和210萬(wàn)臺(tái)服務(wù)器上。
PHP在Windows上有專(zhuān)門(mén)的官方移植編譯項(xiàng)目,并且分多個(gè)VC編譯器版本和線程安全特性來(lái)提供不同的版本支持。
根據(jù)W3Techs的報(bào)告,截至2023年7月:“有77.4%的網(wǎng)站使用PHP。”。只有14%的網(wǎng)站正在使用當(dāng)前支持的php8,又20.6%的網(wǎng)站正在使用不安全的php5版本。
最新版本為:PHP8
Python
Python(英國(guó)發(fā)音:/?pa?θ?n/;美國(guó)發(fā)音:/?pa?θɑ?n/),是一種廣泛使用的解釋型、高級(jí)和通用的編程語(yǔ)言。Python支持多種編程范型,包括結(jié)構(gòu)化、過(guò)程式、反射式、面向?qū)ο蠛秃瘮?shù)式編程。它擁有動(dòng)態(tài)類(lèi)型系統(tǒng)和垃圾回收功能,能夠自動(dòng)管理內(nèi)存使用,并且其本身?yè)碛幸粋€(gè)巨大而廣泛的標(biāo)準(zhǔn)庫(kù)。它的語(yǔ)言結(jié)構(gòu)以及面向?qū)ο蟮姆椒?,旨在幫助程序員為小型的和大型的項(xiàng)目編寫(xiě)邏輯清晰的代碼。
吉多·范羅蘇姆于1980年代后期開(kāi)始研發(fā)Python,Python 2于2020年隨2.7.18版停止支持。Python 3.0于2008年12月發(fā)布。
Python的設(shè)計(jì)哲學(xué),強(qiáng)調(diào)代碼的可讀性和簡(jiǎn)潔的語(yǔ)法,尤其是使用空格縮進(jìn)來(lái)劃分代碼塊。相比于C語(yǔ)言或Java,Python讓開(kāi)發(fā)者能夠用更少的代碼表達(dá)想法。
Python解釋器本身幾乎可以在所有的操作系統(tǒng)中運(yùn)行,它的官方解釋器CPython是用C語(yǔ)言編寫(xiě)的。Python是一個(gè)由社群驅(qū)動(dòng)的自由軟件,目前由Python軟件基金會(huì)管理。Python是最受歡迎的編程語(yǔ)言之一。
最新版本python 3.12。
Java
Java是一種廣泛使用的計(jì)算機(jī)編程語(yǔ)言,擁有跨平臺(tái)、面向?qū)ο?、泛型編程的特性,廣泛應(yīng)用于企業(yè)級(jí)Web應(yīng)用開(kāi)發(fā)和移動(dòng)應(yīng)用開(kāi)發(fā)。
任職于Sun微系統(tǒng)的詹姆斯·高斯林等人于1990年代初開(kāi)發(fā)Java語(yǔ)言的雛形,最初被命名為Oak,目標(biāo)設(shè)置在家用電器等小型系統(tǒng)的編程語(yǔ)言,應(yīng)用在電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通信。由于這些智能化家電的市場(chǎng)需求沒(méi)有預(yù)期的高,Sun微系統(tǒng)放棄了該項(xiàng)計(jì)劃。隨著1990年代互聯(lián)網(wǎng)的發(fā)展,Sun微系統(tǒng)看見(jiàn)Oak在互聯(lián)網(wǎng)上應(yīng)用的前景,于是改造了Oak,于1995年5月以Java的名稱正式發(fā)布。Java伴隨著互聯(lián)網(wǎng)的迅猛發(fā)展而發(fā)展,逐漸成為重要的網(wǎng)絡(luò)編程語(yǔ)言。
Java編程語(yǔ)言的風(fēng)格十分接近C++語(yǔ)言。繼承了C++語(yǔ)言面向?qū)ο蠹夹g(shù)的核心,舍棄了容易引起錯(cuò)誤的指針,以引用取代;移除了C++中的運(yùn)算符重載和多重繼承特性,用接口取代;增加垃圾回收器功能。Java語(yǔ)言的特點(diǎn)是面向?qū)ο?,跨平臺(tái),自動(dòng)垃圾回收。
目前最新版本是2022年9月有Oracle公司發(fā)布的Java SE 19。
Ruby
Ruby是一種面向?qū)ο?、指令式、函?shù)式、動(dòng)態(tài)的通用編程語(yǔ)言。在20世紀(jì)90年代中期由日本計(jì)算機(jī)科學(xué)家松本行弘(Matz)設(shè)計(jì)并開(kāi)發(fā)。
遵守BSD許可證和Ruby License。它的靈感與特性來(lái)自于Perl、Smalltalk、Eiffel、Ada以及Lisp語(yǔ)言。由Ruby語(yǔ)言本身還發(fā)展出了JRuby(Java平臺(tái))、IronRuby(.NET平臺(tái))等其他平臺(tái)的Ruby語(yǔ)言替代品。
Ruby版本號(hào)的構(gòu)成形式是(MAJOR).(MINOR).(TEENY),均為只有1位的整數(shù);如“1.8.6”、“1.9.3”。1.9版系統(tǒng)的TEENY不小于1時(shí)為穩(wěn)定版,TEENY為0的版本是開(kāi)發(fā)版。在1.9之前的版本中偶數(shù)MINOR代表穩(wěn)定版,奇數(shù)MINOR代表開(kāi)發(fā)版。
數(shù)據(jù)庫(kù)
用于存儲(chǔ)數(shù)據(jù),MySQL,PostgreSQL,MangoDB