这是我对知乎上一个问题的回答,原文见: http://www.zhihu.com/question/28584388/answer/41376487

原文问题:

入行5年多的as3程序员,不知道未来怎么样!该转型吗? ?对未来有些迷茫!?

转型哪个新语言呢?unity,cocos2dx,swift,oc,h5,java还是c++呢!

我的回答:


放弃AS3吧。我写了十几年Flash/Flex/FMS/AIR/AS1/2/3了,还不是转了: Good Bye, Flash!

AS3的程序员(假如你也同时熟悉Flash的话),转型的方向还是很多的。因为Flash的缘故,你对前端周边技术(视频、音频、图形图像)了解应该会比较多一点,那么转前端会非常容易。

H5之类的就不说了,转那个没什么难度,本来 AS3 和 Javascript 就是同源, HTML 和 CSS 学起来也就是两三天的事情,业余时间平时学一下就可以了。但要注意补习一些 HTTP 协议的知识(AS3 的 API 封装得实在太傻瓜了……)。

AS3的许多特性都是致(chao)敬(xi)JAVA的(例如 flash.utils.ByteArray 就是 java.io.RandomAssessFile 和 java.nio 的合体),所以你转 JAVA 问题也不会太大。不过,也仅仅是语法比较熟悉,设计模式可以通用而已,关于语言应用范畴、性能、用法、文化、优化方法……这两门语言都差别太大了。

JAVA的应用范畴要广泛许多,但和Flash Player 类似的跑在浏览器中的 Java applet 已经是日薄西山了,而 JAVA SE 的应用似乎局限在 Eclipse 这种 IDE 上(当然优秀的 JAVA 软件不少的),似乎后端应用才是 JAVA 的正途。如果你打算向后端发展的话, JAVA 是可以考虑的。

JAVA 在前端还有一个方向,就是 Android 开发。如果你开发 Android (独占)应用,这个绕不过去。如果你开发跨平台应用,那么 H5 似乎是更合适一点,孰轻孰重,需要自己考虑。

OC 和 swift 依然有 Android 类似的问题,这两个语言绑定在 Apple 平台上,对个人发展方向的限制未免太多,而且只能开发 iOS 和 Mac 独占软件,不能做后端,在考虑方向的时候,优先级应该排在 JAVA 之后。

Flash 目前在页游依然是压倒性的优势,其实在视频领域和在线 APP 领域,Flash Player 还是有不错表现的,我在 怎样学习Flash? - 曾嵘的回答 中总结了Flash能达到的领域。直到现在,Flash Player 依然是有优势的,Flash 只是被 Adobe 自己玩坏了而已: 为什么 .NET 一宣布开源和支援跨平台,一些人就在喊 Java 可以去死?因果关系何在? - 曾嵘的回答

所以,我假设你现在是在页游领域,那么转型就有两条路:Unity 和 cocos2d-x。 什么?你发现虚幻4免费了? 这个……暂时还是别碰吧……以 Flash 和 AS3 的基础,去碰虚幻基本上就等于找死。

我以前写过一个回答: AdobeAIR与unity3D都是跨平台,那个更好呢? - 曾嵘的回答 ,现在,我的建议依然不变。假如你想走这个方向的话,我好像还写过一篇可以勉强参考一下的文章: 如何学习一种开发框架(如:手机开发cocos2dx方向)? - 曾嵘的回答

如果有空的话,Unity也可以学习下,毕竟cocos2d-x的工具链不完善(cocostudio 那个东西不是给人类使用的,不要浪费时间)

所以呢,在你本来是个页游AS3程序员的基础上,我建议的优先级顺序是 C++(cocos2d-x)-> Unity -> JAVA -> OC&swift 。

等等,H5在哪里?H5不是移动互联网的趋势么: 为什么说html5是移动互联网的趋势? - 曾嵘的回答

前面我提到了,H5相对简单些,所以我认为你必须要学。

(全文完)

留言