[Flex]为什么国内的公司都不敢使用Flex作为产品的平台与主要开发语言

    标 签: Flex  
我增加了一个关于国内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
 
请问各位初学者有谁可以分清楚上述名称的区别、版本直接的联系?估计就算是老手也不一定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#的开发人员,现在偶尔也玩玩JQueryExt、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,那么会给公司带来多少、多少的利润:)