C語言為什麼不能成為寫網頁語言?

勝利在招手


90年代互聯網剛興起的時候,c還真的是互聯網服務端構建語言,當時很多系統都是用c寫的cgi應用。只是c寫的程序部署調試極其麻煩,更新系統必須停服務。後來perl這種腳本語言逐漸替代了c來寫cgi,部署調試的效率終於高了起來,而且損失的那點性能對於當時14.4KBps的網速來說根本感覺不出來。就算後來modem支持到56KBps的速度,perl寫的bbs和chatroom依然是主力。其後,asp和php/fi才逐漸開始流行。那時侯,java還只是個玩具。

不過就算是現在,c寫的http庫和web服務器依然不少,只是已經不那麼大眾化了。但是很多關鍵服務還是用c來實現的。例如nginx,例如git。




mwk金雕


嚴格意義上網頁語言不是編程語言,它是一種文本標記語言。

文本標記語言是用來描述文檔格式的語言,代表性的文本標記語言有PDF,HTML,XML等。其中,HTML是網頁的標準語言,所有的瀏覽器都支持HTML。C語言不是描述文本的,不能用來寫網頁。

網頁前端常常需要編寫一些程序,比如JavaScript編寫的一些酷炫的程序。這種程序是可以用C語言寫的,寫好的程序使用COM藉口,編譯成ActiveX包,支持ActiveX的瀏覽器可以下載並執行。不過,ActiveX可以訪問所有的系統資源,非常不安全。ActiveX曾經是傳播病毒主要手段之一,逐漸被瀏覽器所禁用。C語言也就很少用來寫前端程序了。

C語言是最早的網頁後臺程序語言。技術上叫CGI。CGI是一種接口規範,C語言程序只要支持這種接口,就能作為WWW應用程序。但是,C語言程序是直接在操作系統內核上執行的,容易出現安全漏洞。所以,很快被Java,PHP,Python等把運行環境限制在沙箱裡比較安全的語言所替代。


日衝信息 黃


用c一樣寫網頁, 自行處理http請求. 回覆文件內容, 其實也不難, 有合適的庫函數調用開發效率也不低, 就看你願不願意整


大地主


“殺雞焉用牛刀”,用古人這句極具智慧的話還來回答這個問題再合適不過了!

C語言的優勢在於運行效率極高,一般用於底層系統開發或者對於速度要求極高的環境。比如操作系統,驅動程序,嵌入式開發等等。

但是C語言最大的不足就是開發效率低,在如今的互聯網快速節奏的大環境中,人們需要的開發效率。

如果你一定要用C語言開發網頁,肯定是可以的!但是你和專業網頁開發語言比起來,效率太低,太費勁,要做到同樣的效果,費九牛二虎之力也未必能達到,如果有人堅持這麼做,可能他只有和西北風的份了,連湯都喝不上。

在軟件領域,流行分層設計。C語言屬於基礎設施層面的語言,不適合網頁開發這類上層業務。

上層業務變化極快,需求極多,需求類型千奇百怪。而且一般還要求快速開發,效果酷炫。使用js,css,html這類快節奏的語言,最適合不過了。

在軟件的不同層次,有適合這個層次的開發語言,開發工具,還有其特定的生態環境。只有使用對的工具,做合適的事情,才能事半功倍。





Flutter學徒


誰說不能寫?你可以把網站寫成一個exe文件,在服務器上一運行,什麼都有了,多方便。


Crazy_Leaves


C語言一開始是為寫操作系統而設計的,在諸如內存管理、進程管理上確實不錯,那時的操作系統也都是字符終端,也沒圖形界面、不存在圖形界面操作概念,輸入C編寫的命令、如果命令沒輸錯、就有你想要的結果,比如磁盤上覆制文件、顯示工作目錄等等。

你覺得這和網頁編程的目的能一致麼。


素食的貓


20年前,我就用C實現過http協議的web聊天室,當時和國內的ichat還發生過版權糾紛,ichat也是用C++build做的聊天室。


清淺笑忘


你這就像在問為什麼js不能寫操作系統一樣。每一種語言的出現。是為了解決特定問題出現的。語言沒有誰比誰好。只要誰比誰適合幹什麼。就像c語言適合開發操作系統。嵌入式。Java PHP .net適合做web的服務端。html css js適合做網頁。python適合做數據分析等。


yatinghu


就好比用美工刀裁紙,用菜刀切菜。你不會用美工刀切菜,也不會用菜刀裁紙。不是不能,只是不適合。一門程序語言被應用於某一領域,最多的原因就是程序員覺得在這個領域,這種語言比較好用而已。比如美工刀,小巧,易於攜帶,用於裁紙。前端網頁選擇html,js和css也是一樣的道理


時光旅途91488116


C語言說一個程序語言,他的發明和創造是在計算機程序上的,而網站上的語言是另一種編寫語言交Html也就是我們所說的網站設計語言這個語言是一個全新的語言,雖然和C語言的一些相關知識有點類似,但是也還是有它獨特的一種方式,網站設計一般使用的軟件是DW這個軟件,這個是專門用來編寫網站設計的,而C語言是一個用來寫程序的語言,也就是編寫軟件的,因此他們是有差距的。


分享到:


相關文章: