這篇文章是當初我找工作時,履歷的附加檔案。基本上只是我個人的主觀意見。每種語言都有各自的愛好者,且每個人的偏好也不一定相同。選擇自己最喜歡的語言即可。
- 這部分ruby做得比較好,他強制@@開頭為類別變數,@開頭為實體變數等。個人認為此種設計較優。
- python寫法不像ruby那麼直觀且簡潔,例如實體變數前要加self.、類別變數要加類別名.。python全域變數有個地雷,要在function給新值到全域變數要先加global。
- c、c++、java、go命名上就沒有區別,只能要求程式設計師想成習慣自己在前面加特殊字串。
- tcl則是利用upvar、uplevel、global等自進行變數視野的分隔。細節不清楚。
- perl的開頭字元則是區分一個或者一個陣列等。
- php則是每個變數前都要加$字號,太過沒意義。
- 有人說過,好的設計就是讓使用不要用腦。ruby的設計可以讓使用者清楚知道用的變數是什麼,而c語言等則需要程式設計師自己去追蹤或建立命名習慣。python寫法太冗長。
迴圈分析:
- go語言的迴圈設計有點極端,只有一種形式。for而已。
- java、c、c++迴圈相似性過高。
- ruby、perl則過多迴圈。
- python的迴圈形式則分為兩種,一種while一種for,for是拿來列舉用的。個人偏好這種。
- 迴圈形式很多種有助於語意表達,但是太多形式會增加程式設計師的負擔。
- c++、java的多型則是建立在繼承,要有相同的祖先才能多型。
- go、python則是要求有我要的方法即可
- 前者的缺點是很難一開始設計就設計正確,改一改可能又改錯。後者則是可能擁有相同名字函數,卻又不同語意,而導致錯誤。
- 後者也沒辦法接受不同方法名字,但是擁有相同語意的物件。而前者因為在繼承時強制規定名字,因此無此困擾。
沒有留言:
張貼留言