Python在國內完全比不上國外的發展,幾乎大多數的程式語言不是主流的C#/C++/C跟java就是PHP(web),在不然就是VB,國內的Python資源幾乎是非常缺乏
一開始接觸python是想要在ruby與其中挑選一個,一個script語言,我的要求是可以快速驗證一些我想處理的資料跟想法,而一開始挑選python跟ruby老實說是有點被"騙"了XD,就是網路上那種十分鐘快速建立blogger,我很好奇,如何在十分鐘內完成blogger的coding??結果就是天下沒有白吃的午餐
那麼為何會放棄ruby而選python??因為接觸了rubby一陣子之後,發現他是蠻物件導向的語言,我選擇script就是想輕裝上陣,如果還要考慮物件導向,那麼不就很累人了
難道是OO不好嗎?不是這麼說,瞭解OO, pattern這類的東西,大多是把本來coding的複雜度,轉換為關係的複雜度,只要瞭解到了,你付出了怎樣的成本,獲得怎樣的好處,適度使用OO,也是可以相當的愉快的
python並沒有很完整的支援物件導向,他使用了其他的方式來支援,也就是不是原生的支援物件導向,這點使得他在開發物件導向的程式會受到好些限制,不過同時也換來了相當多的彈性。另外一點不同的是python更強調泛型演算法的部份,他的各種容器幾乎都以泛型的設計為主
我想不少programmer跟我有一樣的"幻覺",認為只要熟悉C/C++之後,其他程式語言上手就很快了,我想這只是語法部分,至於語言中間設計的方式可能要花上三到六個月才能體會出來。如果一個C++換到java很快會發現,他開發速度不如一個java老鳥的人,他或許會解釋為對java library的不熟悉。可是很多不只是java library的問題,比方說code的簡潔程度,code撰寫方式,很多本身是依賴於程式的特性的,更貼近的一點的,比方java有seriable介面來處理物件轉成檔案的問題,可是C++並沒有,這時候C++的programmer可能會自己處理,這並不是表示C++使用者做不出這樣的功能,換了程式語言之後兩者之間生產力的問題。
語言的特色影響了熟悉他與否的programmer生產力,倒不是本身programmer能力的限制,在我慢慢深入python之後,我覺得我會用的程式語言"愈來愈少",因為本身背後設計的原理我能理解大多數的還真的不多!!
沒有留言:
張貼留言