作者march20 ()
看板Programming
標題Re: [推廣]Ultimate++ - Free C++ GUI Framework
時間Sat Jul 29 04:55:12 2006
※ 引述《yoco.bbs@bbs.wretch.cc (眠月..)》之銘言:
: wxWidgets 從以前的堅決聲明,
: 「這已經被討論過很多次了,template 是個惡名昭彰的特性,
: template 在 wxWidgets 是不被考慮的。」
: 到現在的略為低頭,確實表現了 template 在 framework 設計上面的必須性。
: 但是 template 成熟的太晚,而 wxWidgets 出生的太早,
: 這不能說是 wxWidgets 的錯誤,
: 但 wxWidgets 如果要在本質上發揮 template 的威力,
: 那也許整個架構都要翻掉,而這是不可能的事情。
: wxWidgets 已經累積了很多的努力,要放手談何容易,
: 更何況 wxWidgets 日前不知道為什麼竟然又燒了起來,
: 似乎一度就要成為 C++ free GUI framework 的主流。
: 但是講白一點,wxWidgets 已經是上個世代 framework 的象徵了,
: 老實說當初看到打死不支援 template 跟 RTTI 的設計理念就讓我很無言,
RTTI 不支援是 C++ 的錯, 不是 wx 的錯 :P
如果 C++ 像 java 一樣有個 root class (i.e java.lang.Object), RTTI 會簡單很多.
沒有這種 construct, RTTI 只能靠 macro 變出來, 會髒到不行. (MFC 就這樣搞的)
不然就得改 C++ 語法, 這麼一來很多 C++ compiler 就不支援 wx 了.
(用 "root class" 怪怪的, 有什麼 term 可以用嗎? 很久沒碰 Programming Language 了)
generic type (在 C++ 來說就是 template 啦) 有其方便性,
但一般來說, 有了 RTTI 和 root class 後, template 就可以拿掉了,
就算有, 也只是 syntax sugar, 這就是 java 沒有 template 但卻沒什麼人抗議的原因.
(well, 不過 "建議" 要有 generic type 的人 應該是不少,
Java 1.5 已經把 generic type 加到 java 的語法裡了.
雖然沒有沒關係, 但有了大家都很高興, 這就叫 syntax "sugar" :P)
在沒有 RTTI 和 root class 時, template 就像是 syntax level 的 macro,
如果你反對大量的 macro, 那大概也不怎麼喜歡 C++ 的 template 吧.
: 我明白放手不容易,但是頑固的不肯前進讓我懷疑設計者的目光短淺。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 128.54.43.37
※ 編輯: march20 來自: 128.54.43.37 (07/29 04:56)
※ 編輯: march20 來自: 128.54.43.37 (07/29 04:57)
※ 編輯: march20 來自: 128.54.43.37 (07/29 04:58)
→ MotherCon:可是root class都是run-time的轉型 59.113.171.167 07/29 05:43
→ MotherCon:template再compile-time就完成了 59.113.171.167 07/29 05:43
→ march20:拿空間換取時間 :P 128.54.43.37 07/29 05:53
推 yoco315:我不知道要怎麼回他 XD140.114.202.199 07/29 05:53
→ march20:不知道怎麼回我嗎 XD 128.54.43.37 07/29 05:55
→ yoco315:恩恩恩140.114.202.199 07/29 05:56
→ march20:沒錯啦, 從 semantics 來說, 這兩者是不同 128.54.43.37 07/29 05:59
→ march20:這樣稱 syntax sugar 好像是有點怪 128.54.43.37 07/29 05:59
→ yoco315:讓別人回好了,不然我怕你以為我在嗆你T_T140.114.202.199 07/29 06:00
推 march20:沒關係, 盡量嗆吧 :P 128.54.43.37 07/29 06:01
推 march20:喔, 我意識到引戰的可能@@ 128.54.43.37 07/29 06:02
→ yoco315:不要Q_Q我不想為這種事情打字,我要睡覺XD140.114.202.199 07/29 06:02
→ PwiPwiWorm:對最後一句完全不能同意... 219.84.151.57 07/29 10:55