2006年9月5日 星期二

C++/CLI...What is it?

0

今天裝了VS2005,開了我第一個在其上的C++專案...
...
...
這是C++嗎?
看著不再熟悉的source code
馬上發動google大神來幫我釋疑

在微軟發展了.net之後,該架構被微軟拿去提交給ECMA委員會(其實微軟自己是委員之一啦)
變成了標準,通過了這一個中間層語言...
而未來幾年windows上得程式庫應該都會移植到.net平台上
上次忘了在哪邊看到的資料是2008以後binary code會在virtual machine上執行...
VS支援的語言中,VB那種直譯式的是比較沒差,不過譯完也不是機械碼
翻譯完是.net 中間層的程式碼,再由.net VM去執行
有趣的是,除了VB,其他語言全部都是如此
c#算是java的替代品,理所當然.net則是相對於java VM
然而C++編譯完的程式碼也不是機械碼,一樣是.net byte code
理論效率上應該會比直接編成機械碼來的慢,
不過慢多少倒是很難說啦,
http://www.vertigosoftware.com/Quake2.htm
這是上次在討論版上看到大陸一個寫遊戲程式的人在一篇文章上得佐證資料
他用這個來說明.net應該效率上不會造成太大的損失

在.net 1.1時的C++叫做manager c++
後來微軟找了herber suter跟stan lipperman進入VC team
前者是C++標準委員會的主席,後者是C++ primer的作者
這兩個大喀進微軟第一件事就是修改MC++~~他們覺得manager c++的語法太不自然了
所以現在的C++/CLI跟manager c++是不一樣的,也不相容
目前看來微軟的開發工具可說為了連結.net都做出了語法上得改變
而Visual Studio開出來的C++ windows form專案差點把我嚇死
專案一新建出來的東西有好幾個看不懂的關鍵字
首先就會在程式碼裡面看到這種東西 String ^argv
這算是.net新多出來的運算子符號,(^,%)==>(*,&) (呵,就是按照鍵盤上shift-8開始往下四個)
這是相對於原本的pointer跟reference,不過產生的物件是由.net管理記憶體垃圾回收和執行緒
此外也多出ref class A{} 跟value class A{}
不過在Bjanine的訪問上,他認為C++被擴充用來支援.net的特性其實可以用template的方式去完成,
雖然不知道那樣設計是不是可以漂亮點,不現在擴充關鍵詞的目的就是為了讓語法自然點
而我猜微軟不用template的方式是因為採用template的話,
程式在編譯的時候就會需要原始碼,如果是提供開發工具的話就得提供整個library的source
是否有人能提一下反方的看法呢?

現在C++/CLI也算是標準了,也是跟.net一樣有提交給ECMA
補充一下ECMA這組織是制定javascript標準的委員會,也是通過openoffice文件標準的
那java script的正式名稱是ECMA script,他其實真的跟java一點關係都沒有,只是語法用的是類java的
現階段C++ 0x (下一代的C++標準) 就真的不知道會怎樣了,不知道有沒有可能通過C++/CLI
VC++目前能開的專案還是很多,CLR系列是採用.net framework,而MFC跟ATL則看起來是跟.net無緣
我開了一下預設的MFC專案出來看了一下,他的整個東西還是跟以前一樣
MFC的視窗也一樣不能用物件拖拉,開windows form專案的話
整個設計就跟VB差不多了,視窗物件全部都可以從工具箱拉進去。

而mono呢?現在還是在.net 1.1而已,等到mono完全支援.net 2的話
在windows下寫的c++/CLI程式就可以直接拿去linux下了
mono還有支援arm平台喔~
所以呢,只要你能夠把mono放進去的話,程式應該是可以直接在mobile的東西上跑的
在我來說,.net頂多就是跨平台,類似java的技術平台,此外就是不同語言可以混合使用
可是部份重量級開發人員把他說成是最近軟體工程上最重要的事
他們都認為.net是未來軟體最具潛力的平台,是最近軟體業界最重要的發展...
如果只是剛才我說得那幾點,那java早就這樣啦
又沒什麼特別的,那是還有什麼事我沒看到的呢?
聽說.net 3.0(WINFX)將會是最輝煌的時代,我不太清楚哪些重要的技術細節會在3.0發表
3.0要在明年下半或後年上半才會發表,所以會有時間可以追一下
目前C++/CLI的書是一本都沒有,市面上VC++ 2005中文書全部都還在講MFC

Read more

2006年9月3日 星期日

買舊書...虧到?

0

最近得因應需求,要上天瓏去挑本書...本來是要早點出門,不過起的晚,
加上又想找人一起去,就把時間都給往後拖了,到要出門的時候都已經下午三點了。

也許是悶的發慌,今天就打算給他慢慢的逛,
到了台北車站,就慢慢的沿著重慶南路走去,路上書局一間一間看,
看看有什麼促銷一類的便宜可撿...不過一般書局畢竟不比舊書攤呀,
現在8折9折的還真看不上眼,7折的也得多所考慮,就一路到了天瓏,中間都只稍作停留。

究竟是越來越多學資訊的人,還是很多人都在玩電腦--用這樣的詞彙比較能夠包含電腦美工、音樂一類的人吧,
每次週末來到天瓏都是人多多,書架上近來嵌入式系統,.net一類的書是越來越多了,
很好奇有多少人是從事嵌入式系統所以才買了書,
又有多少人是想從事嵌入式系統才去買書的,不過這都不是重點啦,
重點是,對我有用的東西只有一本,下禮拜再來決定到底要不要吧。

附近有間類似69元書店的地方,離開後我來這裡晃了一下,一樓後半部幾乎都是大陸書,
二樓的書則像是舊書...也許是我對書太挑剔,除了國中跟武俠小說種下的孽緣以外,
我幾乎不太看小說,即使是哈利波特跟魔戒...常覺得小說的內容離生活好遠,有點不著邊際,
文學創作上會比較偏好詩詞吧,不過跟工作上的需要所作的閱讀比起來,非工作的紙本閱讀還真是貧乏,
幾乎可以說是飢餓30了。

在這書店二樓,我看到了一套魚夫的作品--漫畫唐詩,東西還不錯,而且架上標價1本30,
5本以上一本20,上面有七本,也才140,全翻了一下,挑了幾本狀況好點的。
此外一樓看到一本大陸出版的諾貝爾得獎者的詩選...
老實說我還真不知道是有多少諾貝爾得主有出詩集的,不過內容還不錯,
至少我可以知道有哪些作家作品,以後若想延伸閱讀也比較好找。

排隊結帳...拿著這幾本書真是重,到的我了,老闆對我說"喔,這套書不錯喔,現在絕版了,
一本60算你50就好...",我傻眼了,一開始還應了他一下,後來想想...
"老闆,你書放在一本30的地方耶"

"一本30買不到啦" 還問他們工讀生"這書放在一本30喔,放錯了啦"
"你看後面人民幣要一本29,一本50很便宜了"

"可是我一次買你七本,就不能算便宜點嗎?"

"好啦,阿不然一本算你40...要不要..."

最後我接受了一本40的價格,不過還是覺得有點像是虧到了,好像被抬價...
至於那個人民幣29--有沒有搞錯,台幣原價也才一本100,當作賣古董嗎??
真是應該跟他開價要他30賣我,反正他架子上一堆看起來也不太有人買的樣子...
不過想到這的時候我已經在火車上要回家了,只能說我還真不是殺價的能手。

P.S. 抱怨只是純粹感覺上比較不好,那一套書跟另外的一本都還是不錯的東西
P.S.2. 別哪天有人告訴我他買一本20塊...那就真虧了

Read more

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting