顯示具有 talk 標籤的文章。 顯示所有文章
顯示具有 talk 標籤的文章。 顯示所有文章

4/01/2008

[連結文] 為何有些 Java EE/J2EE 的專案是沒效率的,至少是效率低下的

原文連結在此,要看簡體翻譯在此。光是第一句我就笑死了。

我想到一句話,「教授是將簡單的事情變得很複雜,天才是把複雜的事情變得很簡單」。




1/22/2008

微軟即將把IE6強制升級至 IE7

大神那看到的,微軟將作一件功德無量的好事,他們即將在今年二月十二號,利用 Windwos Server Update Service 將系統裡面的 IE6 改成 IE7。

相信此一升級對於 IE6 only 網站來說是一個大震撼,恐怕也會有大幅度的網頁改版潮。但是對於任何一個網頁程式設計師,或是網頁美工來說,都是一個放鞭炮的消息。

1/08/2008

Ruby 跟 Python 本質上不同

前言

對岸高手孟岩最近寫了一篇「Ruby 1.9不会杀死Python」,裡面提到 Ruby 1.9 一出,彷彿 Ruby 已經邁向完全體,所有的缺點都已經消失了。彷彿已經要一統武林
有人认为,这下子不得了了,Ruby要称霸动态语言了。你想想,Ruby已经几乎拥有了所有梦幻般的语言特性,神奇的动态能力,强大的支持库,内置的跟Perl可以比肩的正则表达式,Smalltalk级别的纯而又纯的面向对象特征,简洁明快的风格,跨语言整合也非常容易,唯一的缺点就是速度慢。现在连这个缺点都被弥补了,Ruby还能挡得住吗?其他的动态语言都该歇菜了。
然後他又提到一個很有趣的分類,Ruby 是魔幻語言,Python 是簡約語言。Robbin 老大也出來講了Ruby为什么会受程序员的欢迎?。一整篇看下來,實在是很過癮。

簡約語言

簡約語言是什麼呢?大致上是 C、PHP、Python和Lua,C# ,Java。他的大概意含可以由Python 的中心思想 EIBTI 可以略知一二
Explicit is better than implicit.
看不懂的話,用更白話的方式來解釋,The Zen of Python 裡面有提到
There should be one-- and preferably only one --obvious way to do it.
也就是,Python 有意的限制語言的表示方式,使得不好的 coding 習慣都不能 Compile 過,有意的強制使用者養成良好的習慣。

這雖然極端了點,但也不超乎其他簡約語言的中心思想。簡約語言不關心語言的表述方式,他們在乎的是「解決問題」。以工程來看,簡約語言在大專案裡面的協同工作上面較為吃香。

魔幻語言

我很喜歡這個詞。魔幻語言的代表有 C++、Perl、Javascript和Ruby。中心思想可以由 Perl 的 TMTOWTDI 來表示
There's More Than One Way To Do It.
魔幻語言的擁護者思考的東西,這位孟岩老大也描寫的很傳神
他们写的代码是一种谜语般的艺术,出谜语和猜谜语的人们都能从中获得巨大的精神满足
但是,請不要輕易的把 Ruby 歸於「華而不實」這一派。Robbin 老大也在這裡講到
C++的魔幻语法会导致代码的可读性变差,而Ruby的魔幻语法会导致代码的可读性大大提高。

不论是matz本人,还是整个Ruby社区,Rails社区诸多开源项目的作者,抑或整个Ruby和Rails开发者社区,在一个编程哲学问题上是高度统一的,这就是:

强调程序员的快乐编程,追求人性化编程,在代码的可读性上面有偏执的追求,拒绝难以阅读的代码和难用的API。也就是所谓的coding for fun!
Ruby 奇妙的手法,以及 DSL 的技巧,都是為了達到跟 Python 同樣的 Promise Land ,那就是「code 可讀性」。只是兩者作法不同而已。

兩者的不同

兩者最大的不同是在「開發者的審美觀以及開發風格」上。不是語言的不同,是使用者個性上的不同。
回到开头的话题,Ruby是一个典型的魔幻语言,而Python则是简约派的代表。两个语言的支持人群在审美观念和开发风格方面差距非常大。初学Ruby和Python的人,都会感受到一种欣喜和兴奋,但是原因却不太一样。Ruby的学习者会惊喜于很多新的表达方式,比如 :attr_accessor 之类的魔幻特性,而Python学习者则会惊喜于实现具体功能的简洁性。可以说从一开始他们追求的就是不同的东西。随着学习的深入,Python开发者当然也会发现Python中的不少深入的特性,不过却并不倾向于滥用它们。长次以往,Python人群对任何语言的魔幻面都会产生一种厌恶感。我认识的一个Django开发者,就明确表示,就算RoR比Django开发效率高一点,也绝不使用Ruby,因为Ruby这个语言充满了“不必要的小聪明”。
高手果然是高手,好露骨的講法。Python 人對於「語言的魔幻面」,或是你要稱為「奇技淫巧」有種本質上的厭惡感,很多 Ruby 人引以為傲的東西,都會被視為「惡魔」。儘管 Python 也可以玩出些好玩的把戲,但是他們的中心思想讓他們「選擇不去作」。

而 Ruby 正如上面所說得,Ruby 人會被鼓勵使用「語言的魔幻面」,並且從中獲得相當的精神上的樂趣。但是跟「華而不實」最大的不同,是在於 Ruby 是利用語言的炫技,達到超乎想像的開發效率跟可讀性。最後,偉大的傑作誕生了,Ruby on Rails 用本身的「魔幻面」,反而達成了比PHP 這種 Web 專用的簡約語言的更高的可讀性。

本質上的不同?還是人的不同?

人的 tone 不同,才是真正的問題所在。或許雙子座的我,永遠不會欣賞 Python :p

奇想

不知道為什麼,寫這篇文章的時候,總是把魔幻語言想成魔法師,簡約語言想成戰士。所以腦中一直圍繞著 Ruby 是魔法技能點數 10 的魔法師,前面還有一個血防加到滿的戰士在前面罩著(Java),然後組隊一起打怪。

1/01/2008

用 Blogger 寫技術類型文章的優勢

我當初選用 Blogger 寫 LightyROR 這個技術類型的 Blog ,就是看在

1. 技術人員都用 Google
2. Google 「應該」會對 Blogger 作技術文章搜尋結果作最佳化

請注意,是應該,而不是肯定。我「猜」 Google 當然會對自家產品稍微愛護一下,而看我 Blog 的人應該都是用 Google ,所以我選擇 Blogger 。

結果今天發生了一件事情,我四點寫了一篇 CentOS 5.1 + RMagick works,結果一個小時後我 Google 搜尋「CentOS RMagick」文章的時候,發現已經進入 Google Search資料庫,並且排名第二名

雖然不能說 Google 有對 Blogger 的文章有特別愛護,但是寫完文章後,一個小時進入搜尋搜尋資料庫,也算是另類的優勢。

4/22/2007

Ruby on Rails in UbiSurise 圓滿結束

感謝各位的支持,這次的 talk 在沒有人踢館,講的笑話都大家都捧場的情況下結束。兩個禮拜連續講兩場實在太累了,Blog更新也有點怠慢,先說聲抱歉。關於這次的 Demo 程式,我會整理一下看看要用啥方式 Release,而投影片在下面。