Re: [討論] 為什麼不要用c++寫網站

看板Soft_Job (軟體人)作者 (Terry)時間1周前 (2024/06/19 22:33), 編輯推噓24(24014)
留言38則, 28人參與, 4天前最新討論串3/5 (看更多)
※ 引述《brucetu (sec)》之銘言: : 現代網站開發一定有框架 : 幾乎所有的操作都有現成的函數讓你用 : 也是就說 : 就算用c++開發也只是在call框架的API : 把資料丟來丟去而已 : 有人覺得python / .net 寫網站比較簡單 : 但其實框架包得好 : 就算是c++也沒有什麼不同吧? : 例如 python 的 list comprehension : 或是 .net 的 linq : 都可以包成一個套件來做啊 : 在 c++ 也就只是一行 function call 而已了 : 那為什麼不用c++開發網站就好了? CGI 這東西,看了這麼多人回,都沒人講出來,表示這邊的都是高手了。 資O會,以前某套內部的系統是CGI 當底的,後面接的是C。 但當我看到它每一個取char * 傳進來的字串長度是用sizeof 時,就該明白....讚啦。 還好它只是檢查它長度是否大於0。 鬼扯哪麼久,回到正題,用C 接http request,有什麼好處呢? 我們先理解一下web application 在做什麼呢。 以前:將request 收到的key/value 湊一湊,塞給DB 做insert/update/delete/query 將結果結合html tag 產生response。 現在:將request 收到的key/value 湊一湊,塞給一個叫ORM 的框架,讓它幫你 塞給DB 做insert/update/delete/query 將結果湊成一個叫json 的產生response,讓"前端"的javascript 幫忙產生對應的 html tag。 看到了沒? "將request 收到的key/value 湊一湊,塞給DB 做" 這樣的事 要C++ 來做,是為哪一條? 在寫embedded系統,這種什麼都窮的系統。 例如你家的router 之類的管理介面,才因為窮有好處,不然,有啥好處? 舉例來說, C++一般來說,處理速度是Java 的兩倍,哪會因為用了C++ 而增加兩倍的處理能力? 顯然不會嘛,因為你還有一段network I/O,一段DB Action,甚致再多一段Disk I/O嘛。 而以CPU vs network I/O 的速度來比,不管是以前還是現在,都不是同一個量 級的對手。而不管是湊html 還是json,都沒什麼功,甚致都只是memory copy而已。 所以, 在這種基本上是I/O bound 的工作面前,用以CPU bound 為強項的語言。 是不是大材小用了? 再來,每次改完測試,都要重新compile。為了這個大材,還要浪費人力時間去 compile。 這會不會,太花人力成本了一點? 窮,去做窮該做的事。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.131.153 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1718807585.A.88F.html

06/19 23:27, 1周前 , 1F
推,這才是從整個系統來看的角度。
06/19 23:27, 1F

06/19 23:39, 1周前 , 2F
從此鄙視鏈多了一個窮鬼套餐,c,cpp
06/19 23:39, 2F

06/20 00:06, 1周前 , 3F
通常我看到的情形,業界C++ 寫 CGI當backend,都不是用來
06/20 00:06, 3F

06/20 00:06, 1周前 , 4F
做IO存取的。最經典的就是做 web service 的 分發 gateway
06/20 00:06, 4F

06/20 00:06, 1周前 , 5F
,快速分發流量到各服務。這時候C++ 的價值就突出了。
06/20 00:06, 5F

06/20 01:03, 1周前 , 6F
那如果這個web service是CPU bound呢?
06/20 01:03, 6F

06/20 01:46, 1周前 , 7F
取char * 傳進來的字串長度是用sizeof -> 我笑了。
06/20 01:46, 7F

06/20 01:50, 1周前 , 8F
C++ 也是有相關的 Framework 啦。只是,軟體開發是一個
06/20 01:50, 8F

06/20 01:51, 1周前 , 9F
團隊。不是說想用什麼就用什麼。日後的維護成本總得考量
06/20 01:51, 9F

06/20 01:55, 1周前 , 10F
好像大家都忘了 prototyping 階段,請用 C++ 表演
06/20 01:55, 10F

06/20 02:00, 1周前 , 11F
不過我有個學弟寫 C++ 熟的,還真的認領了一個 web frame
06/20 02:00, 11F

06/20 02:00, 1周前 , 12F
work,人家現在在某 N 公司上班,除了羨慕還是羨慕
06/20 02:00, 12F

06/20 06:54, 1周前 , 13F
Push
06/20 06:54, 13F

06/20 08:13, 1周前 , 14F
確實
06/20 08:13, 14F

06/20 08:24, 1周前 , 15F
推,其實現代 jvm 速度已經沒有那麼慢了
06/20 08:24, 15F

06/20 08:35, 1周前 , 16F
中肯
06/20 08:35, 16F

06/20 09:57, 1周前 , 17F
問問仔不會認真看這篇啦
06/20 09:57, 17F

06/20 10:05, 1周前 , 18F
jvm佔用記憶體阿 外加某些工具啟動龜速 運作也馬乎也
06/20 10:05, 18F

06/20 10:06, 1周前 , 19F
沒什麼優勢
06/20 10:06, 19F

06/20 11:10, 1周前 , 20F
c++ compile真的是很耽誤開發
06/20 11:10, 20F

06/20 11:33, 1周前 , 21F
真想挑戰 c++ cgi 可以試試 cgicc 這 library
06/20 11:33, 21F

06/20 11:58, 1周前 , 22F
sizeof 是真的看過有人這樣做,出bug的時候真沒想到是這裡
06/20 11:58, 22F

06/20 12:08, 1周前 , 23F
推推
06/20 12:08, 23F

06/20 12:35, 1周前 , 24F
sizeof XDDD 很有畫面
06/20 12:35, 24F

06/20 13:51, 1周前 , 25F
確實 每次compile 也超耗時
06/20 13:51, 25F

06/20 15:48, 1周前 , 26F
回一下DrTech 的應用,要不要C++真的沒差。
06/20 15:48, 26F

06/20 15:48, 1周前 , 27F
君不見kafka 一樣可以裝你的網卡隨便填滿。
06/20 15:48, 27F

06/20 16:22, 1周前 , 28F
因為神人前輩們已經把需要C++好處的中間層完成了
06/20 16:22, 28F

06/20 16:22, 1周前 , 29F
變成只需要使用中間層就好 減少了需要C++的情境(工作)
06/20 16:22, 29F

06/20 17:00, 1周前 , 30F
甚"至"
06/20 17:00, 30F

06/20 18:30, 1周前 , 31F
libstdc++很大啊, 有的還放不下
06/20 18:30, 31F

06/20 21:06, 1周前 , 32F
06/20 21:06, 32F

06/21 00:17, 1周前 , 33F
推這篇專業
06/21 00:17, 33F

06/21 12:01, 1周前 , 34F
謝謝回應與交流不同看法
06/21 12:01, 34F

06/21 20:41, 1周前 , 35F
推推
06/21 20:41, 35F

06/23 11:06, 1周前 , 36F
推推
06/23 11:06, 36F

06/25 09:40, 5天前 , 37F
其實那段什麼bound就把大多故事講完了...
06/25 09:40, 37F

06/25 18:41, 4天前 , 38F
推推
06/25 18:41, 38F
文章代碼(AID): #1cSkmXYF (Soft_Job)
文章代碼(AID): #1cSkmXYF (Soft_Job)