看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《truesword ( )》之銘言: : 網頁程式大多都用php,不懂php比c++好在哪裡 直譯和便於快速開發就是 PHP 這類東西的優勢。 另一個最重要的問題在於,國外很多人的網站是租 shared host 來儲存。 這種空間大約每個月 5 美金就能租到一個不錯的,能放暗黑物的 10 美金上下也有。 shared host 一般很少開放 shell 登入,所以不會讓你編譯 C++ 程式。 就算給你進 shell,GCC 也是鎖起來不給用的,plan 上也會明確把 CGI 這項打 X。 能用到 C++ 的,最起碼要是 VPS 等級。 不過只是做個人網頁的話,想租 VPS 的人不會太多。 加上 shared host 的 plan 通常會寫明不限流量、空間 (其實太超過還是趕人), VPS 大概 40G 空間,384 - 512MB 的 RAM,每月 500G 左右的流量就要 12 - 15 美金。 一般沒打算幹嘛的,都會租便宜的 shared host 解決。 確實 PHP 對我來說吸引力不大。 真的要玩直譯不如玩更動態一點的東西,像是 Ruby on Rails 這種就很不錯。 大部分主機商的 shared host plans 也有提供你玩這個。 但比較偏現實面的部分,就是 RoR 的 scalability 有點弱。 畢竟 ruby 是能在 runtime 新增 class 成員的語言,RoR 玩資料庫的方式又是 ORM。 人多又想跑得順,硬體方面要求絕對不能低。 有些想在兩者之間取折衷的,可能就會選 python 或 Java (我指的是 JSP)。 不過選 Java 的有些是為了其它目的,這個有點說來話長。 : 做的事情C++基本上也都能做 (C也可以但字串支援少,所以比較麻煩) C 其實還蠻方便的。 而且因為是 null-terminated string,可以用一些小技巧加速。 比方說把想把 abcdefghi 中間這段傳給某 function。 你可以先暫時把 'g' 存在一個 char 變數,並修改成 '\0'。 然後丟個指在 'c' 上的 pointer 出去,等 function return 回來再把 'g' 填回去。 這樣就整整少了一次 string copy 的時間。 一些比較高階的語言使用的 string type,取 sub-string 時大都是整段複製出來。 也許有些人會說這可以用 copy-on-write 的技術避免無謂的複製... 但實際上沒有啥 string type 是這樣實作的,理由某本書有寫,哪本我忘了。 : 就算需要跟資料庫連結,我想一定也有c++的library可用吧? 有啊,第一個能想到的最起碼就有 mysql++ 可以用。 如果你覺得自己處理 httpd server 丟來的東西太麻煩,甚至還有 cgicc 這函式庫能用。 這玩意還相容 FastCGI,所以雖說是年代物,但其實也很夠用了。 近代還有啥我是沒特別注意。 如果你很懶得學 PHP,也有 C/C++ 搭 SWIG 造出 php module 來掛的做法。 甚至可以直接寫 Apache module 處理更多奇奇怪怪的事情。 這些事情倒是真的有人在做,只不過很少是直接以做網頁為目的,大都是在造新輪子用。 : 不懂為何沒有人用c++在開發網頁的 其實 UNIX 環境的 driver,AP 層有些都用 web front-end 呈現。 有些就是直接用 C/C++ 刻出來的 CGI 程式。 : 小弟百思不解,有沒有大大可以說明一下,感恩 上面講的你重新歸納一下應該就知道了。 另一個不太想明講的理由是,PHP 的入門門檻遠比 C/C++ 低很多。 這種事我們板內的人知道就好,不要傳到外面去戰語言。 -- Ling-hua Tseng (uranus@tinlans.org) Department of Computer Science, National Tsing-Hua University Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: http://www.tinlans.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.111.100 ※ 編輯: tinlans 來自: 118.160.111.100 (04/20 05:19)
xatier:推tinlans大精彩解說! 04/20 07:46
angleevil:恩,為了追求效率,還是有人用c,去寫程式.可是還是要借 04/20 08:47
angleevil:html的輸出才可以開發網頁,重點還是方便性和功用性吧 04/20 08:48
horngsh:horngsh@gmail.com 04/20 08:54
horngsh:上面本來要大F結果按到推文. 04/20 08:55
yoco315:樓上這就叫做是情不自禁的推文嗎... 04/20 09:11
yoco315:copy-on-write 的問題是要支援 multi-thread 很難做 04/20 09:12
yoco315:就算做到了效能, 效能也會爛到沒有價值 04/20 09:13
yoco315:不過我也忘記我在哪邊看到的,不然就是在很多地方都有看到 04/20 09:13
yoco315:突然想到一件事,雖然看到人家這樣說,不過我其實不知道 04/20 11:29
yoco315:為什麼copy-on-write在 multi-thread 會很難做.. 04/20 11:30
legnaleurc:推專業 ... 04/20 12:24
belion:強@@ 04/20 13:13
belion:拜讀tinlaus大大的網站了,真的很強:~ 04/20 13:15
tomap41017:問一下,那把字串中間填\0的作法在multi-thread不也是 04/20 15:40
tomap41017:會有問題嗎? 04/20 15:40
tinlans:如果是 stack 上的就不會有事。 04/20 15:52
tinlans:而且一個 http request 進來,很少有機會再開 thread 處理 04/20 15:54
welon:真不愧是阿路學長..... 05/11 18:20