我增加了一個關於國內Flex從業者的調查問卷,大家有時間可以填寫一下:
http://poll.flexapp.cn
關於這個題目不止一個人問過我,而這些問過我的人們大概分成:各種初創公司的CEO、CTO。各式想做把Flex作為產品主要平臺的產品經理及其想學Flex的初學者。
其實我也在想關於這方面的事情,為什麼現在Flex似乎出現了雷聲大、雨點小的情況?
 
其實我覺得不外乎以下幾個原因:
 
1、產品線有些長
就說一下Flex的版本吧,我在2007年初的時候,寫《Flex第一步》的時候,是Flex 2.0,而後又升級了一個版本:Flex 2.0.1(比較重要的升級)
2008年初期的時候,就是Flex 3.0(AIR 1.0)的天下了,而2008年中旬出現了AIR 1.5版本。而在2008年末截止到目前位置Flex 4.0已經開始慢慢的浮出了水面…
現在的問題Flex 2.0.1、Flex 3.0、Flex 4.0(測試版)
 
如果我是一個Flex的初學者的話,那麼我學習什麼呢?Flex 2.0.1過時了(真的過失了嗎?)Flex 3.0(是不是也要過時呢?)Flex 4.0(我的英文不好,就算我的英文好的話,目前還是測試版本還是要在看一下的)
如果我是一個打算使用Flex作為產品的平臺的話,那麼我學習什麼呢?Flex 2.0.1過時了(現在已經是Flex 3.0版本了,肯定比2.0.1好!)Flex 3.0(我需要使用它的一些特性,但是3.0裡面似乎沒有提到)Flex 4.0(什麼時候才可以釋出正式版?否則我只能等…)
 
其實所謂的產品線過長應該指代的它們之間的相容性很差。這樣就限制了Flex由低版本遷移到高版本的效率、增加了遷移成本。
那麼有朋友說了,Silverlight的版本似乎也比較多,因此Adobe需要與MS進行競爭,這是在所難免的。
但是我想說的是:Silverlight的版本雖然也比較多,但是目前大規模的商業化還未開始(我指國內)因此就算是版本不相容,影響不大。
而反之Adobe就不行了。目前國內的形式是,比較少,但是也會有一些的,一旦發生了版本遷移的成本增加、開發人員的學習費用增加,勢必會造成負面的口碑營銷(這點是致命的)
 
請看一下,目前比較成功的語言的版本命名:PHP(我雖然不是十分了解PHP,但是我也知道它的版本1.0 ~ 5.0)python(包括了 2.X 與 3.0)雖然 2.X與3.0很多是不相容的,但是python官方已經給出了初學者一條學習的方向:建議初學者學習 3.0,然後回頭再看 2.X的時候,就會比較容易些,因為 2.X很多會讓初學者混淆的東西在3.0裡面已經不存在了。
 
PS:這裡面的版本號指代的是Flex SDK,而非Flex Builder IDE
 
2、名稱混淆
a、Flash
b、Flash Player
c、Flex  Builder
d、Flex  SDK
e、Action Script
 
請問各位初學者有誰可以分清楚上述名稱的區別、版本直接的聯絡?估計就算是老手也不一定100%的說清楚吧?
 
a、Flash(MX2004、CS3、CS4)
b、Flash Player(9.X、10.X)
c、Flex  Builder(目前似乎與SDK的命名混淆在一起了)
d、Flex SDK(重要的版本有 2.0、2.0.1、3.0、3.2、4.0(測試版))
e、Action Script(1.0、2.0、3.0)
這樣混亂的版本難道不會讓一個新手暈頭轉向嗎?
3、Flex framework 奇多
我以前是一個Java、C#的開發人員,現在偶爾也玩玩JQuery、Ext、Python等指令碼語言,我從來沒有為上述語言的框架選擇上面出現疑問?為什麼?答案很簡單,一共就那麼幾種框架,而且大多數框架已經很成熟了,因此比較好選擇。而到了Flex/AS這邊,我卻傻眼了,怎麼這多的framework呢?
這樣的結果造成的原因就是:所有人都在想到底是用哪個框架?這個框架與其他框架的優勢是什麼?這個框架適用於我的專案嗎?結果所有的人都會把盡力放在尋找、比較框架上面,而真正的忽略了框架的本質。
那麼什麼是框架的本質呢?或者說框架(framework)是什麼呢?
我認為中的框架就是:語言本質特點 + 設計模式
 
那麼語言本質特點:
AS3的語言特點、MXML的語言特點。如果開發人員可以好好的學習這門語法的話,那麼我想他一定會了解這個語言特點的。
 
設計模式:
這個地方就容易了,無論哪種framework的本質都離不開設計模式的,而設計模式基本上全部都是遵循GOF描述的23種設計模式(關於設計模式就是讓大家瞭解這些,畢竟本篇文章不是描述設計模式的文章)
 
另外我覺得造成Flex框架過多的另一個重要的原因:很多的Flex從業者都是從Flash設計人員慢慢轉行過來的,而這些設計人員之前沒有很系統的程式設計功底,因此他們為了編寫出更具有可讀性的程式碼,因此就會對framework情有獨鍾。其實他們這些人完全可以追溯Flex Framework的本源,也就是我剛才說的:語言特點 + 設計模式。
 
4、中文資料的稀缺:
我這裡說的稀缺指的是:好的中文資料,例如:設計模式方面、優秀框架的翻譯等內容。
這裡我想說一下國內的Flex書籍,我記得沒錯我的話,關於AS 3.0的資料應該最早是黑羽兄的《AS 3.0 殿堂之路》而Flex方面最早的中文書籍則是walktree與我合寫的《Flex第一步》了。
 
先說說《AS 3.0 殿堂之路》的確是一本不錯好書,值得推薦和初學者的學習。
而《Flex第一步》平心而論,這本書寫的不夠好,有些地方深不下去(追究其原始還是定位的問題),但是作為Flex入門書籍我覺得這本書應該可以勝任了。同時它也可以光榮的退出了歷史的舞臺。:)
 
而這兩本書之後的很多的國內原創書籍似乎都沒有逃脫這兩本書的範圍和範疇(我這裡不是指其他的原創書籍不好)而是想說的是,似乎這些書籍的定位都太重複,也就是差不多都是面向初學者的,沒有面向企業級、面向高階程式設計師的。
如果,我說的如果,現在已經有了關於AS3/Flex的設計模式的書籍、面向企業級開發、分析AS3原始碼等面向中高階Flex開發者的書籍肯定會拉動國內的“內需”。
說了一大堆,無外乎幾個字概況:官方清晰的版本策略、最好可以做到版本的無縫遷移,多一些面向企業級開發的中高階書籍。這樣才能讓更多的人想去使用Flex、讓他們知道如果使用Flex,那麼會給公司帶來多少、多少的利潤:)