Re: [讨论] 为什么不要用c++写网站

楼主: Lordaeron (Terry)   2024-06-19 22:33:03
※ 引述《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。
这会不会,太花人力成本了一点?
穷,去做穷该做的事。
作者: wuyiulin (龙破坏剑士-巴斯达布雷达)   2024-06-19 23:27:00
推,这才是从整个系统来看的角度。
作者: neo5277 (I am an agent of chaos)   2024-06-19 23:39:00
从此鄙视链多了一个穷鬼套餐,c,cpp
作者: DrTech (竹科管理处网军研发人员)   2024-06-20 00:06:00
通常我看到的情形,业界C++ 写 CGI当backend,都不是用来做IO存取的。最经典的就是做 web service 的 分发 gateway
作者: wuyiulin (龙破坏剑士-巴斯达布雷达)   2024-06-20 07:27:00
推,这才是从整个系统来看的角度。
作者: neo5277 (I am an agent of chaos)   2024-06-20 07:39:00
从此鄙视链多了一个穷鬼套餐,c,cpp
作者: DrTech (竹科管理处网军研发人员)   2024-06-20 08:06:00
通常我看到的情形,业界C++ 写 CGI当backend,都不是用来做IO存取的。最经典的就是做 web service 的 分发 gateway,快速分发流量到各服务。这时候C++ 的价值就突出了。
作者: s06yji3 (阿南)   2024-06-20 09:03:00
那如果这个web service是CPU bound呢?
作者: antpro (-_*|| 宅)   2024-06-20 09:46:00
取char * 传进来的字串长度是用sizeof -> 我笑了。C++ 也是有相关的 Framework 啦。只是,软件开发是一个团队。不是说想用什么就用什么。日后的维护成本总得考量
作者: s25g5d4 (function(){})()   2024-06-20 09:55:00
好像大家都忘了 prototyping 阶段,请用 C++ 表演不过我有个学弟写 C++ 熟的,还真的认领了一个 web framework,人家现在在某 N 公司上班,除了羡慕还是羡慕
作者: haydou (haydou)   2024-06-20 14:54:00
Push
作者: Lhmstu (lhmstu)   2024-06-20 16:13:00
确实
作者: alihue (wanda wanda)   2024-06-20 16:24:00
推,其实现代 jvm 速度已经没有那么慢了
作者: TSMCfabXX (台积新产品)   2024-06-20 16:35:00
中肯
作者: B0988698088 (废文少女小円♥)   2024-06-20 17:57:00
问问仔不会认真看这篇啦
作者: superpandal   2024-06-20 18:05:00
jvm占用内存阿 外加某些工具启动龟速 运作也马乎也没什么优势
作者: brucetu (sec)   2024-06-20 19:10:00
c++ compile真的是很耽误开发
作者: descent (“雄辩是银,沉默是金”)   2024-06-20 19:33:00
真想挑战 c++ cgi 可以试试 cgicc 这 library
作者: NDark (溺于黑暗)   2024-06-20 19:58:00
sizeof 是真的看过有人这样做,出bug的时候真没想到是这里
作者: v86861062 (数字人:3)   2024-06-20 20:08:00
推推
作者: tsaigi (菜鸡)   2024-06-20 20:35:00
sizeof XDDD 很有画面
作者: qwe78971 (小信)   2024-06-20 21:51:00
确实 每次compile 也超耗时
楼主: Lordaeron (Terry)   2024-06-20 23:48:00
回一下DrTech 的应用,要不要C++真的没差。君不见kafka 一样可以装你的网卡随便填满。
作者: elfkiller2 (Re0)   2024-06-21 00:22:00
因为神人前辈们已经把需要C++好处的中间层完成了变成只需要使用中间层就好 减少了需要C++的情境(工作)
作者: sssyoyo (柚子)   2024-06-21 01:00:00
甚"至"
作者: legnaleurc (CA)   2024-06-21 02:30:00
libstdc++很大啊, 有的还放不下
作者: kuan (kuan_hiroshi)   2024-06-21 05:06:00
作者: viper9709 (阿达)   2024-06-21 08:17:00
推这篇专业
作者: DrTech (竹科管理处网军研发人员)   2024-06-21 20:01:00
谢谢回应与交流不同看法
作者: iamOsaka (欧沙卡)   2024-06-22 04:41:00
推推
作者: s06yji3 (阿南)   2024-06-20 01:03:00
那如果这个web service是CPU bound呢?
作者: antpro (-_*|| 宅)   2024-06-20 01:46:00
取char * 传进来的字串长度是用sizeof -> 我笑了。C++ 也是有相关的 Framework 啦。只是,软件开发是一个团队。不是说想用什么就用什么。日后的维护成本总得考量
作者: s25g5d4 (function(){})()   2024-06-20 01:55:00
好像大家都忘了 prototyping 阶段,请用 C++ 表演不过我有个学弟写 C++ 熟的,还真的认领了一个 web framework,人家现在在某 N 公司上班,除了羡慕还是羡慕
作者: haydou (haydou)   2024-06-20 06:54:00
Push
作者: Lhmstu (lhmstu)   2024-06-20 08:13:00
确实
作者: alihue (wanda wanda)   2024-06-20 08:24:00
推,其实现代 jvm 速度已经没有那么慢了
作者: TSMCfabXX (台积新产品)   2024-06-20 08:35:00
中肯
作者: B0988698088 (废文少女小円♥)   2024-06-20 09:57:00
问问仔不会认真看这篇啦
作者: superpandal   2024-06-20 10:05:00
jvm占用内存阿 外加某些工具启动龟速 运作也马乎也没什么优势
作者: brucetu (sec)   2024-06-20 11:10:00
c++ compile真的是很耽误开发
作者: descent (“雄辩是银,沉默是金”)   2024-06-20 11:33:00
真想挑战 c++ cgi 可以试试 cgicc 这 library
作者: NDark (溺于黑暗)   2024-06-20 11:58:00
sizeof 是真的看过有人这样做,出bug的时候真没想到是这里
作者: v86861062 (数字人:3)   2024-06-20 12:08:00
推推
作者: tsaigi (菜鸡)   2024-06-20 12:35:00
sizeof XDDD 很有画面
作者: qwe78971 (小信)   2024-06-20 13:51:00
确实 每次compile 也超耗时
楼主: Lordaeron (Terry)   2024-06-20 15:48:00
回一下DrTech 的应用,要不要C++真的没差。君不见kafka 一样可以装你的网卡随便填满。
作者: elfkiller2 (Re0)   2024-06-20 16:22:00
因为神人前辈们已经把需要C++好处的中间层完成了变成只需要使用中间层就好 减少了需要C++的情境(工作)
作者: sssyoyo (柚子)   2024-06-20 17:00:00
甚"至"
作者: legnaleurc (CA)   2024-06-20 18:30:00
libstdc++很大啊, 有的还放不下
作者: kuan (kuan_hiroshi)   2024-06-20 21:06:00
作者: viper9709 (阿达)   2024-06-21 00:17:00
推这篇专业
作者: DrTech (竹科管理处网军研发人员)   2024-06-21 12:01:00
谢谢回应与交流不同看法
作者: iamOsaka (欧沙卡)   2024-06-21 20:41:00
推推
作者: knme (knem)   2024-06-23 11:06:00
推推
作者: Ekmund (是一只小叔)   2024-06-25 09:40:00
其实那段什么bound就把大多故事讲完了...
作者: asdkmm5050 (Mr xx)   2024-06-25 18:41:00
推推

Links booklink

Contact Us: admin [ a t ] ucptt.com