我們為什麼不用c++寫網頁?

10 個回答
kzhxy
2017-05-27

感謝邀請。

首先,你說的“寫”是指什麼?

假如是你是指呈現的結果的話,那麼不用c++寫的原因是因為瀏覽器不認識。瀏覽器本質上是在解析符合格式的數據(包括支持的腳本最終還是數據),c++可以生成數據,但它不是數據。c++和網頁的關係就像是筆和文章的關係一樣。

但如果你是說生成網頁,那麼當然是可以的。但為什麼較少用c++呢?因為術業有專攻。c++很強大,但他不是為網頁設計的。對於網頁這種相對固定的需求而言,我們完全可以用專門的語言來做。那麼難道用c++不可以有專門的庫什麼的來做嗎?可以!但c++那麼多更難理解的特性你是不就得去理解了?為了這些特性付出的代價你是不是得接受?

或許你說,我封裝的好一些,暴露的少一些,只讓開發者用這一點功能,並且把不必要的代價捨棄,這不就行了嗎?bingo!不過你說的不正是現行的“寫”網頁的語言嗎?

可見,不用c++寫網頁的原因很簡單:特定場景下,合適的工具比強大的工具更好用。殺雞焉用牛刀,說的就是這個意思。

p.s 為避免不必要的爭論,我想強調一下,這裡沒有任何抬高某個語言貶低其它語言的意思,只是舉例比喻罷了。

他的汪和她的喵
2017-05-28

首先,我們不僅用c/c++寫過網頁程序,而且寫過很多年。大約有人聽說過cgi這個詞,就是為c/c++準備的。後來iis支持的isapi和nsapi也都是可編譯語言的接口標準。再舉一個例子,我們都知道歌手林志炫,他出道時是“優客李林”組合的一員,組合的另一個成員李進還寫過一本書《cgi程序設計》,這個可是2000年前的顯學哦。

其次,c/c++沒落了。為什麼沒落?網頁程序邏輯簡單,只不過是收數據,寫數據,顯示數據,c/c++功能太多,學習不易,代碼控制不好,所以就沒落了。比如,asp一週就能寫出來實用程序,c/c++要想寫出同樣效果的程序半年都不行。2000年開始,到2007年之間,asp大行其道,隨隨便便一個人都能寫個系統,比現在的簡單多了,asp已經被國人玩爛了,現在還有很多人做項目用asp。

其三,c/c++在網頁領域不會再輝煌了。新語言層出不窮,亂戰之下,能勝php的尚未出現,何況其他。現在來說,幹不翻php這個實際的王者,就只能淪為補充。

Driver_Lee
2017-05-28

HTML(標準通用標記語言下的一個應用)的原文件是純文本文件,可以是用任何文本編輯器如UNIX的VI、DOS的EDIT、WINDOWS 、txt中的書寫器等。但專用編輯器如HTML EASY !MICROSOFTFRONTPAGE 等提供了一整套模板等編輯工具,還可以直接調用內置的瀏覽器瀏覽程序的執行結果,或者提供了“所見即所得”的可視化編程功能。目前已經出現了幾個版本的HTML語言,最新版的HTML5將更加簡潔方便。


公共網關接口

CGI(common Gateway Interface,公共網關接口)。嚴格意義上來說並不算一種網頁編程語言。CGI是信息服務器主機對外信息服務的標準接口,為了向客戶端提供動態信息而制定。通過專門編寫CGI腳本程序(在CGI控制下運行得程序,通常稱為CGI程序),不僅可以生成靜態的內容,而且可以生成完全無法預見的 動態的內容!比如雅虎、搜狐等搜索引擎提供的強大搜索功能便是利用CGI實現的。CGI腳本程序可以用C、C++等語言在多種平臺上進行開發。無需太大修改就可以從一個平臺移植到另一個平臺上運行,具有很好的兼容性。

ASP與.NET

ASP是微軟公司推出的意圖取代CGI的新技術。通過它,用戶可以使用幾乎所有的開發工具來創建和運行交互式的動態網頁,如返饋表單的信息收集處理、文件上傳與下載、聊天室、論壇等等,實現了CGI程序的功能介是又比CGI簡單,而且容易學習。由於ASP使用基於開放設計環境的Active X技術,用戶可以自己定義和製作組件加入其中,使自己的動態網頁具有幾乎無限的擴充能力。它還可利用ADO(Active Data Object,微軟的一種新的數據訪問模型)方便地訪問數據庫,能很好地對數據進行處理。借WINDOWS 東風,ASP得到了長足的發展。

PHP

PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種HTML內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被很多的網站編程人員廣泛地運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務器端執行,充分利用了服務器的性能;PHP執行引擎還會將用戶經常訪問的PHP程序駐留在內存中,其他用戶再一次訪問這個程序時就不需要重新編譯程序了,只要直接執行內存中的代碼就可以了,這也是PHP高效率的體現之一。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。

PHP的特性包括:

開放的源代碼:所有的PHP源代碼事實上都可以得到。

PHP是免費的。

基於服務器端:由於PHP是運行在服務器端的腳本,可以運行在UNIX、LINUX、WINDOWS下。

嵌入HTML:因為PHP可以嵌入HTML語言,所以學習起來並不困難。

簡單的語言:PHP堅持腳本語言為主,與Java以C++不同。

效率高:PHP消耗相當少的系統資源。

圖像處理:用PHP動態創建圖像。

Script

腳本語言是介於HTML(HyperText Markup Language,超文本標示語言)和Java、C++和Visual Basic之類的編程語言之間的語言。它的語法和規則沒有可編譯的編程語言那樣嚴格和複雜。傳統的HTML是靜態的,為增強網頁的動態功能,一些廠商先後推出了自己的Script腳本語言,其中Netscape推出了JavaScript(for客戶端和 for服務端兩種),微軟則推出了VBScript和ASP兩種,用於服務器端和客戶端程序的編寫。

JavaScript

JavaScript是一種基於對象(Object)和事件驅動(Event Driven)並具有安全性能的腳本語言。它與Java不同:JavaScript主要用於HTML的頁面,腳本嵌入在HTML的源碼中;而Java是一個獨立的、完整的編程語言,既可以在Web中應用,也可以用於與Web網無關的情況。另外,JavaScript編寫的程序不必在運行前編譯,它們可以直接寫入Web頁面中並由調用它們的瀏覽器來解釋執行。這樣,一些基本交互作用就不用在服務器端完成,提高了客戶端的響應時間。

特點

簡單性:它是基於java基本語句和控制流之上的簡單而緊湊的設計,是學習java的好過渡,而且,它的變量類型是採用弱類型,未採用嚴格的數據類型。

安全性:爪哇腳本(JAVA SCRIPT)不允許訪問本地硬盤,不能將數據存入到服務器上,不允許對網絡文檔進行修改和刪除,只能通過瀏覽器實現信息瀏覽或動態交互,從而有效的防止數據的丟失。

動態性:javascrpt可以直接對用戶或客戶輸入做出響應,無須經過web程序。它對用戶的響應採用以事件驅動的方式進行,即由某種操作動作引起相應的事件響應,如:點擊鼠標、移動窗口、選擇菜單等。

跨平臺性:javascript依賴於瀏覽器本身,與操作環境無關。只要能運行瀏覽器的計算機,並安裝了支持javascript的瀏覽器就可以正確執行,從而實現了“編寫一次,走遍天下”的夢想。

VBScript

為了適應Internet上的應用,Microsoft公司把用於應用程序描述的Visual Basic語言壓縮成一個更合理的子集,稱為Visual Basic Scripting Edition,簡稱VBScript。它也是一種HTML嵌入腳本語言,具有易學易用等特點。如果你已瞭解Visual Basic或Visual Basic for Applications,就會很快熟悉VBScript。Microsoft公司將VBScript語言作為實施其ActiveX腳本化的最佳選擇,用戶可以採用小的相互操作的部件一起來完成工作,使得應用程序的功能列加強大。

Perl

Perl是Practical Extraction and Report Language(實用摘錄和報告語言)的縮寫,由Larry Wall於1986年開發成功。當初的目的主要是Unix環境下從多個文本文件中產生報表,後來成為許多程序員工具箱中最受歡迎的工具,其發展速度和Unix內核的成長速度相仿。Perl已經發展到5.0版本,並移植到了各種平臺。

Python

是一種跨平臺的開發語言,它可以運行在已知的各種操作系統之上,包括windows、Mac OS、Unix、BSD、Palm等。python是一種支持擴展的開發語言,主要的擴展變種有CPython、JPython、PerlPython。它們分別使用C、Java、Perl做它的擴展接口基礎環境的。更準確的說,Python也可以是一種 跨語言的語言。

ColdFusion

美國的一對兄弟allire,在為自己的客戶解決數據庫訪問的問題時,感覺到了cgi程序在編寫和維護上的難度是不能容忍的困難。於是,具有計算機天賦的Jeremy Allire便在1995年編寫了一種快速響應且易於編寫的動態腳本語言,叫做coldfusion,一經推出,便震撼整個網絡行業。之後,兄弟倆看到了coldfusion的發展前途,便成立了Allire公司(後來被macromedia收購)。之後 的幾年,全球500強中的一半都採用了coldfusion來解決公司不同情況的問題。通過不斷的版本修改和開發者的不斷壯大,Coldfusion後來發展成為業界知名的企業級解決方案的開發首選。為了產品線的統一,為了工業標準的統一,為了完全 兼容Java平臺,Macromedia發佈了ColdfusionMX。而眾位以前經常看到的Neo這個詞則是macromedia對於使用新一代coldfusion開發行業解決方案的編碼名稱。

Java

Java是一個由Sun公司開發而成的新一代編程語言。來很流行的一種網絡編程語言,它由C語言發展而來,是完全面向對象的語言。在與網絡的融合中,已顯現出它的強大生命力和廣闊的前景。Java的語法簡練,學習和掌握比較容易,使用它可在各式各樣不同種機器、不同種操作平臺的網絡環境中開發軟件。Java正在逐步成為Internet應用的主要開發語言。它徹底改變了應用軟件的開發模式,帶來了自PC機以來又一次技術革命,為迅速發展的信息世界增添了新的活力。

您在編程實踐中是否常常碰到要為不同的系統平臺重複編程(比如為Windows系統設計一套程序,UNIX系統設計一套程序)? Sun Microsystems公司的Java語言以其"一次編程,到處執行"的技術優勢,廣泛應用於Internet計算機環境下的編程應用,避免您針對不同的系統平臺重複編程,減少您的企業的開發成本。

JSP

JSP(Java Server Pages,Java服務器頁面)是在Sun Microsystems公司的倡導下,由許多公司共同參與建立的一種新的動態網頁技術標準。它在動態網頁的建設方面具有強大而特殊的功能。Sun公司應用組建“Java社團”的思想開發JSP技術。在開發JSP規範的過程中,Sun公司與許多主要的Web服務器、Web應用服務器和開發工具供應商,以及各種各樣富有經驗的開發團體進行合作,找到了一種適合於應用和頁面開發人員的開發方法,它具有極佳的可移植性和易用性。針對JSP的產品,Sun公司授權予工具提供商(如Macromedia)、結盟公司(如Apache,Netscape)、最終用戶、協作商及其他人。Sun公司將最新版本的JSP和Java Servlet(JSP 1.1,Java Servlet 2.2)的源代碼發放給Apache,以求JSP和Apache緊密結合、共同發展。Apache,Sun公司和許多其他的公司及個人公開成立的諮詢機構更能方便任何公司和個人免費取得信息。

MistyDusk
2017-05-28

c++能夠做到寫網頁。為什麼不用?

因為c++是在系統層面上編程,一旦網頁優化差,造成系統崩潰都有可能。

再者,c++會有一個編譯的過程,而且,開發難度大。

就網頁本身而言,先是瀏覽器接收數據,再按照程序顯示排版,底層的實現仍然是c++在運作。

不對請指正,謝謝

csuchao
2017-05-28

現在編寫網頁主要採用php和java還有asp等等,和他們相比,c++出現的時間更早,那時候互聯網還不為大多數人知道,所以c++並不是為編寫網頁而發明的語言。另外網頁編寫需要解決的問題是大量的html和css還有javascript等字符處理,如果是動態網頁,還有少量訪問數據庫取數據的操作,c++對字符串的原生支持不好,沒有字符串類型,沒有正則表達式,當然這一點還不足以宣判它的死刑,可以通過各種開發庫來彌補,更主要的是網頁開發需要轉換思維模式,能夠在字符串中插入代碼,而不是傳統的在代碼中處理字符串

老马识途单片机
2017-05-27

首先C++完全可以用來寫網頁,但是C++過於非常強大,同時也就會有笨重的感覺,用來開發網頁,效率就不會很高。屬於大材小用。

現在開發東西都是效率至上,用更有針對性的專用軟件會更快,更準,更易

大胸保贱
2017-05-28

你的提法有問題,如果是前端網頁的話,只是個html,這根本就不需要什麼語言,直接文本編輯器就能寫。但如果是後端的話,那很多語言都能寫,常見的是php java asp.net,c++當然也可以,但問題是是否高效。人家php可能幾行代碼的功能,可能C++就要寫上一天,要你你會去寫嗎?

i家保
2017-05-28

如果是指純粹的排版的話那必須是html,沒有為什麼,他是定製的標準,你要想改為其它語言的話,首先你必須有能力讓所有生產瀏覽器的廠商添加功能,來識別你的語言,我直接告訴你,給你兩個谷歌的家產,你也改不了這個標準。

如果你意思是網頁的交互功能(服務器端處理程序),那麼你想用C++的話,只要你願意,那必須可以,且asp,php,jsp實現不了的,你都可以實現,因為這些p也是c語言生產出來的,意思是你需要先寫好p的大部分功能(製造輪子);事實上我也確實有些項目用過C+來寫

老陈MarkChen
2017-05-28

事實上,一個網頁從源碼轉化為可視的過程少不了c++的支持。雖然各個瀏覽器的內核和HTML解析器不盡相同,但是大部分都是用更低層的語言來寫的。通過這個過程,可以用更簡單的語法和更高的效率來完成一個網頁

绵山云
2017-05-28

我單從一個方面舉個反例,c++的靈魂是直操內存,光這一點就違背了瀏覽器及萬維網遵旨,前端網頁僅能供展示不應有操作瀏覽者內存的隱患。

相關推薦

推薦中...