顯示廣告
隱藏 ✕
※ 本文為 use2ptt.bbs. 轉寄自 ptt.cc 更新時間: 2013-03-18 19:44:48
看板 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中的一顆豌豆, 看上去好吃, 你吃吃看?15F 03/18 13:33
abadcafe:linus是業界最沒有偏見的人.
abadcafe:他幹譙C++, 但是卻大贊C++開發的KDE
abadcafe:然後又吐槽C寫的gnome. 他完全是抱著技術的角度在評判
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++是個23F 03/18 13:42
legendmtg:functional language
legendmtg:不是只
legendmtg:    指...orz
ayler88:中肯 實際工作幾乎用C or Java... 反而C++不常用27F 03/18 13:51
ayler88:中小需要高效能就用C, 大的網路程式就用Java 很好用
jay780305:推29F 03/18 13:53
shadow0326:台灣軟體業不發達,純底層和純web居多,自然不常用C++30F 03/18 13:53
ayler88:C++功能太多 使用定義卻沒有非常嚴格...31F 03/18 13:53
ayler88:如果一群人使用C++做一個案子, 會變成大混戰
legendmtg:大型專案要兼顧效能與彈性 C++是目前最佳解33F 03/18 13:54
legendmtg:會大混戰是人員訓練不足 C++缺點就是太複雜太難學
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, 你也應該儘量用較簡單不易出錯的方42F 03/18 13:59
abadcafe:式完成你的project. 而C++並不提倡簡單直接的方式.
abadcafe:簡言之, C++是個有心智包袱的語言, bad smell.
legendmtg:你的C++不簡單 不代表別人的C++不簡單45F 03/18 14:04
legendmtg:訓練足夠的人自然能用C++寫出簡單易懂的程式碼
legendmtg:還是一句話 兼顧效能彈性C++是目前的唯一解
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,人就虛掉了..53F 03/18 14:12
freeunixer:寧可來去選 Java,起碼 JVM 不必從 1.2 裝到 1.7...
shadow0326:其實C++的好壞是萬年戰文了,不會有結論的,科科55F 03/18 14:14
shadow0326:反正會用的就是會用,我至少每月還是靠這個賺錢
freeunixer:C++ 至少有個好處,可以直接寫底層,57F 03/18 14:15
freeunixer:總不可會想用 java /c# 寫個 os kernel 來開機吧...XD
ken1325:jdk不也一堆版本59F 03/18 14:16
freeunixer:差別是找不到人把 C base kernel porting 到 C++...XD60F 03/18 14:17
freeunixer:人家在講啥你在講啥?
freeunixer:你的電腦裡有同時裝 JVM 1.2/1.3/1.4/1.5/1.6/1.7 ?
freeunixer:你要不要看看自己電腦裡現在裝了幾個版本的 .net fw?
ayler88:Linux kernel仍然用C... 不知道最新的Win8是用啥?64F 03/18 14:19
ayler88:念書時學到C++非常驚豔,直到工作後才知C真是打不死蟑螂...
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++的那些功能都是你可以選擇要不要用的71F 03/18 14:23
legendmtg:你拿C++寫C-style也不會怎樣
legendmtg:JAVA最討人厭的地方就是他強迫你中獎
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:難在合作... 難道要退回叫合作廠商重寫?78F 03/18 14:26
ayler88:除非自己公司, 大尾到對方不靠你就不用混的程度了...
ayler88:對大多數非純軟體的公司,需要用C++寫大案子機會很低
ayler88:教育訓練這麼多人 又挺累的 還不如降低標準,用C穩穩過 XD
legendmtg:例如強迫你寫OO 例如不支援多重繼承82F 03/18 14:31
legendmtg:C++就是都提供你選擇 你可以自己決定
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
freeunixer:現在這個時代要搞到所謂的大專案,那都不是路邊攔就有了
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++程式員都可以看出樓上那個連93F 03/18 14:41
shadow0326:結惡搞的多麼刻意,連最基本的不要汙染namespace都沒有
shadow0326:純粹是為了搞破壞而搞破壞而已,這樣任何語言都可以搞
legendmtg:JAVA說 不支援operator overloading 因為怕有人在96F 03/18 14:47
legendmtg:operator+裡實做減法
legendmtg:可是他也沒辦法避免別人在add function裡實做減法
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的內部原理就足以讓初學者迷茫的要死104F 03/18 14:51
jackace:要學OO? 請使用Java, C#, Ruby, .....都比C++好多了
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
jackace:再進去跳坑才能真正掌握他的一門語言
sexonly:也看人啦 之前上C++課 第一堂教template然後一堆人退選114F 03/18 14:58
sexonly:不過留下來的人 最後也是順利學得不錯 有些事看天份
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衝突121F 03/18 17:10
juicylove:先理解程式基本邏輯語法 (學C) 再補上OO概念(JAVA C#)
juicylove:C++的OO設計問題很多 我也覺得必須先學正統OO再去學
abadcafe:其實用C寫OO比用C++寫OO還舒服.124F 03/18 18:02

--
※ 看板: Gossiping 文章推薦值: 0 目前人氣: 0 累積人氣: 1536 
分享網址: 複製 已複製
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇