看板 Gossiping
作者 sexonly (QQQ)
標題 Re: [問卦] 有沒有C++的八卦阿?
時間 Mon Mar 18 13:21:21 2013


: C++
: 號稱所有寫程式的人都要會的語言
: 全世界的軟體有80%以上都是用C++
: 如果沒有C++
: 地球上有50%的人都要回家吃自己了
: 台灣也會從電子王國改回傳產王國
: C++ 他高傲 但是宅心仁厚
: C++ 他謙虛 但受萬人景仰
: 他究竟是神仙的化身?
: 還是地獄的使者?
: 沒人知道
: 有沒有C++的八卦阿?

C++有沒有80%還待商榷
但是以完整度來說 其他語言很難跟C++匹敵
很少語言同時包含高階和低階語言的特性
所以非常適合作為學習的起點 之後不管往低階或是高階都可以快速上手

低階的操作像是 對指標以及記憶體操作的概念 對於未來學組合語言會很有幫助
高階的特徵像是物件導向設計 或是泛型 之後能很快適應其他高階語言 如 Java C#

另外C++包括了四種主要的設計思維
Procedural Based
Object Based
Object Oriented
Generic Garadigm

資訊相關的問題 幾乎都能夠在C++上完成實做
一些實驗性質的高階的特技用法
像是Template Metaprogramming(模板超編程) C++外能實作的語言不多
(C# 或是Java的泛型沒辦法這樣玩)

不過現實上因為上下通吃的特性 反而變成上下夾殺
低階的用途 大家還是習慣用C  可以更有效利用資源  相容性也較好
(C++如果用到template 要移植會有很大的問題)
高階的用途 Java或是C# 生產速度通常比C++高速倍
所以整體來說C++的佔有率還是持續下降
但是這點無損選C++當第一個程式語言的價值

--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.125.0.193
legendmtg:這篇蠻中肯的1F 03/18 13:22
ilove1530:恩恩 我也這樣想2F 03/18 13:24
higameboy:跟我想的一樣3F 03/18 13:24
haoto:相容性不好又不是語言der問題 頗ㄏ4F 03/18 13:25
現實上因為沒有標準 各家compiler 對template就是各自表述 很難但一份code通吃
ilovebbs:Template簡直是神物啊..但是要會用...y5F 03/18 13:25
※ 編輯: sexonly         來自: 59.125.0.193         (03/18 13:27)
legendmtg:相容性關係到不同平台上對編譯器實作的完整程度啊XDD6F 03/18 13:26
op5566:雖然聽不懂  但是我也是這麼想7F 03/18 13:27
eva19452002:Object based 跟 Object Oriented差在那邊?8F 03/18 13:28
legendmtg:差在有沒有繼承跟多型9F 03/18 13:29
eva19452002:感謝樓上回答10F 03/18 13:29
legendmtg:不過C++四種思維應該是procedural OO GP functional11F 03/18 13:29
kondoyu:結果Dennis Ritchie過世沒人知道 jobs過世一堆人哭12F 03/18 13:32
abadcafe:linus: c++ is bullshit.13F 03/18 13:32
legendmtg:Linus那個充滿偏見的人說的話 隨便聽聽就算了14F 03/18 13:33
abadcafe:template是bullshit中的一顆豌豆, 看上去好吃, 你吃吃看?linus是業界最沒有偏見的人.
他幹譙C++, 但是卻大贊C++開發的KDE
然後又吐槽C寫的gnome. 他完全是抱著技術的角度在評判15F 03/18 13:33
johnlinvc:C++ 叫functional? erlang, haskell才叫functional19F 03/18 13:36
sunrize1435:很多大型遊戲都要安裝C++套件 所以都是C++開發的嗎?20F 03/18 13:38
bigbite:樓上上, 原文那邊有提到functional? o.021F 03/18 13:40
freeunixer:推文裡有人講的.22F 03/18 13:42
legendmtg:c++11 加入許多functional特性 當然是只C++是個
functional language
不是只
   指...orz23F 03/18 13:42
ayler88:中肯 實際工作幾乎用C or Java... 反而C++不常用
中小需要高效能就用C, 大的網路程式就用Java 很好用27F 03/18 13:51
jay780305:推29F 03/18 13:53
shadow0326:台灣軟體業不發達,純底層和純web居多,自然不常用C++30F 03/18 13:53
ayler88:C++功能太多 使用定義卻沒有非常嚴格...
如果一群人使用C++做一個案子, 會變成大混戰31F 03/18 13:53
legendmtg:大型專案要兼顧效能與彈性 C++是目前最佳解
會大混戰是人員訓練不足 C++缺點就是太複雜太難學33F 03/18 13:54
shadow0326:一群人做一個案子會不會變成大混戰跟語言無關35F 03/18 13:54
ayler88:相對Java天生設計好,一群人使用作案子 問題少多了36F 03/18 13:55
sexonly:那應該是C++內建的功能太少 所以大家都長自己的版本37F 03/18 13:56
ayler88:台灣絕大多數公司,要找到一群高能力的軟體RD合作,難阿...38F 03/18 13:56
clamperni:寫程式最重要的是經驗和前瞻性39F 03/18 13:57
sexonly:台灣即使人多似乎也都是灑開來用 放在一起是找死40F 03/18 13:58
wisehuang:C++一點都不好學,當起點很痛苦41F 03/18 13:58
abadcafe:哪怕你找到高能力rd, 你也應該儘量用較簡單不易出錯的方式完成你的project. 而C++並不提倡簡單直接的方式.
簡言之, C++是個有心智包袱的語言, bad smell.42F 03/18 13:59
legendmtg:你的C++不簡單 不代表別人的C++不簡單
訓練足夠的人自然能用C++寫出簡單易懂的程式碼
還是一句話 兼顧效能彈性C++是目前的唯一解45F 03/18 14:04
arrenwu:Java 加入 just-in-time compilation之後就沒有很慢了吧48F 03/18 14:08
legendmtg:如果你的領域可以接受trade off 大可以不用用C++49F 03/18 14:08
arrenwu:我覺得C\C++的優勢是在大多的平台上都有得跑,尤其是C50F 03/18 14:09
freeunixer:其實要跑純物件導向,C# 是最好的,但一看到 .Net 的版本51F 03/18 14:12
momodalo:快推  不然人家以為我聽不懂52F 03/18 14:12
freeunixer:你光要在自己電腦上裝一卡車版本 .NET FW,人就虛掉了..寧可來去選 Java,起碼 JVM 不必從 1.2 裝到 1.7...53F 03/18 14:12
shadow0326:其實C++的好壞是萬年戰文了,不會有結論的,科科
反正會用的就是會用,我至少每月還是靠這個賺錢55F 03/18 14:14
freeunixer:C++ 至少有個好處,可以直接寫底層,
總不可會想用 java /c# 寫個 os kernel 來開機吧...XD57F 03/18 14:15
ken1325:jdk不也一堆版本59F 03/18 14:16
freeunixer:差別是找不到人把 C base kernel porting 到 C++...XD人家在講啥你在講啥?
你的電腦裡有同時裝 JVM 1.2/1.3/1.4/1.5/1.6/1.7 ?
你要不要看看自己電腦裡現在裝了幾個版本的 .net fw?60F 03/18 14:17
ayler88:Linux kernel仍然用C... 不知道最新的Win8是用啥?
念書時學到C++非常驚豔,直到工作後才知C真是打不死蟑螂...64F 03/18 14:19
eva19452002:之前看過一篇文章,說如果要寫模擬器,千萬不要用c++66F 03/18 14:22
freeunixer:包袱啊,誰要去改 base 重寫?只好將就一直用下去...67F 03/18 14:22
eva19452002:寫,因為c++一些功能會耗掉很多運算資源,所以用c寫是68F 03/18 14:22
freeunixer:其實明明以現在的規模架構,改寫成 C++ 會更好..69F 03/18 14:22
eva19452002:最適合的70F 03/18 14:23
legendmtg:C++的那些功能都是你可以選擇要不要用的
你拿C++寫C-style也不會怎樣
JAVA最討人厭的地方就是他強迫你中獎71F 03/18 14:23
ayler88:合作案子最麻煩就在某些人用C++ Style, 某些人用C Style74F 03/18 14:24
shadow0326:不規劃好接口,怪人家怎麼實作囉~75F 03/18 14:25
arrenwu:所謂的Java強迫人中獎意思是?76F 03/18 14:25
freeunixer:所以過濾合作的對象跟 SD 的定義很重要,不過台灣嘛....77F 03/18 14:25
ayler88:難在合作... 難道要退回叫合作廠商重寫?
除非自己公司, 大尾到對方不靠你就不用混的程度了...
對大多數非純軟體的公司,需要用C++寫大案子機會很低
教育訓練這麼多人 又挺累的 還不如降低標準,用C穩穩過 XD78F 03/18 14:26
legendmtg:例如強迫你寫OO 例如不支援多重繼承
C++就是都提供你選擇 你可以自己決定82F 03/18 14:31
nfsnfs:Linus: C++ is a horrible language.84F 03/18 14:32
legendmtg:或是所有開發人員一起決定在專案內要不要使用某種特性85F 03/18 14:32
freeunixer:所謂大案子,都已經變寡佔市場,那幾家國際大廠在卯了,86F 03/18 14:32
ayler88:Java強迫OO中獎,能維持一個基本水準,大家共用較容易87F 03/18 14:33
freeunixer:台灣的大案子,標公家的,一般也不過就是統包再層層分包.現在這個時代要搞到所謂的大專案,那都不是路邊攔就有了88F 03/18 14:33
ayler88:不就是混口飯吃,好用夠用就行了 ^^90F 03/18 14:34
freeunixer:加上開發工具的進步,其實現在多數接觸的範圍都很限縮.91F 03/18 14:35
ayler88:推 http://ppt.cc/IZtN92F 03/18 14:36
恐怖的C++語言_StackDoc
原文: Linus曾經(2007年9月)在新聞組gmane.comp.version-contr ...
 
shadow0326:任何一個稍微有sense的c++程式員都可以看出樓上那個連結惡搞的多麼刻意,連最基本的不要汙染namespace都沒有純粹是為了搞破壞而搞破壞而已,這樣任何語言都可以搞93F 03/18 14:41
legendmtg:JAVA說 不支援operator overloading 因為怕有人在
operator+裡實做減法
可是他也沒辦法避免別人在add function裡實做減法96F 03/18 14:47
jackace:C++當第一個程式語言只會讓初學者陷入一堆pitfall又無法掌99F 03/18 14:48
ayler88:台灣的資訊產業 很多人是電機出身 要他們熟C++也難了100F 03/18 14:49
legendmtg:實際上 a+b就是比a.add(b)好讀 要惡搞 什麼語言都可以101F 03/18 14:49
jackace:物真正低階語言的特性 初學者第一個語言就是該學C102F 03/18 14:49
legendmtg:第一個語言還是學python好 學c/c++那麼痛苦幹麼XD103F 03/18 14:50
jackace:光return一個object的內部原理就足以讓初學者迷茫的要死要學OO? 請使用Java, C#, Ruby, .....都比C++好多了104F 03/18 14:51
legendmtg:是啊 學python或ruby最適合初學者了106F 03/18 14:53
sexonly:變數->函數->指標->物件->物件繼承->泛型 這樣一門課搞定107F 03/18 14:53
ayler88:PHP也不賴 適合初學者...C Pointer已經搞死一堆人了, C++.108F 03/18 14:53
sexonly:如果要立志當職業程式設計師 基本功不可少 109F 03/18 14:54
arrenwu:學習 C 還不錯吧,同時也可以多少了解硬體怎麼做事情的110F 03/18 14:54
shadow0326:學什麼程式語言當什麼初學者,學英文卡實在啦111F 03/18 14:56
jackace:C++最好是當你已經把c,組語,系統程式,Java都掌握的差不多再進去跳坑才能真正掌握他的一門語言112F 03/18 14:56
sexonly:也看人啦 之前上C++課 第一堂教template然後一堆人退選
不過留下來的人 最後也是順利學得不錯 有些事看天份114F 03/18 14:58
freeunixer:系統程式還是在刻海螺那本嗎?還是有新的?116F 03/18 15:06
legendmtg:大部分學校都沒教系統程式了吧XD117F 03/18 15:11
gmoz:java跟C#開發速度的確很快 現在系統資源越來越不缺了118F 03/18 15:43
keieykdx:拼裝車119F 03/18 16:00
Arim:恩恩跟我想的一樣120F 03/18 16:13
juicylove:那為啥不先學C接C#  更實用 先學C++很多都跟C衝突
先理解程式基本邏輯語法 (學C) 再補上OO概念(JAVA C#)C++的OO設計問題很多 我也覺得必須先學正統OO再去學121F 03/18 17:10
abadcafe:其實用C寫OO比用C++寫OO還舒服.124F 03/18 18:02

--
※ 同主題文章:
Re: [問卦] 有沒有C++的八卦阿?
03-18 13:21 sexonly.