【译】VisionMobile:开发者经济报告2015 Q3(二):语音选择是区域、财务和物质

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying以及译者@恺风Wei

VisionMobile在2015.7发表了Developer Economics: State of The Developer Nation Q3 2015。下面是该报告的译文。

2、选择语音是区域、财务和物质

虽然地区性偏好是显而易见的,开发运营仍主要由目标平台驱动。现在,很多语言是跨平台,将通用代码翻译成为设备特定的应用,由此给开发者更多自由去选择。

尽管一些开发语言仍依赖于特定平台,可替代的选择正在增加;不仅可以创造跨平台应用的代码,还吸引了新一波开发者在新硬件上使用老的语言技能。Apple授权使用Objective C的日子已一去不复返,拒绝销售其他语言开发的应用的策略只是意图拖延Adobe AIR的部署,亦已经达到目的。

Apple现在对iOS开发除Objective C外还提供Swift,但其工具链包括更广泛的语言,JavaScript,C#,Ruby和Python,以及更鲜为人知的lingos及变种。

平台拥有者希望吸引开发者,需要支持各种语音,但是维护库和API被证明成本高昂,放弃一种语言是政治困难。Google在Android的做法是应用的大多数API限制于使用Dalvik虚拟机。Android应用要使用这些APIs通常要编译为Dalvik的bytecode来部署,无论开发语言是什么,亦无论在运行时桥接到Dalvik虚拟机的频率。这增加了使用替代语言的复杂性,而用Java是最易行的选择,无需Google实施限制。

地区差异也是存在的,例如下面讨论的北美偏好HTML5。这是基于文化历史和经济所需,当开发者可以使用他们现有经验时,他们不愿意投资学习一门新语言。

多语种程序员

很多程序员可以自如地使用多种语言,在某些情况下,差异很小可以技能转换,但正如我们在上一份报告(开发者国度状况2015年Q1)所讲,Apple的Swift语言兴起不是因为Objective C开发者的成本,Apple已经吸引了新一波程序员,他们或许却步于Objective C的复杂。

微软和Windows Phone的到来促进开发更灵活,它们不应该被忽略。微软长期支持广泛的桌面开发语言,从Visual Basic到C++,最近已经将其灵活性延伸至它的移动平台。推动开发者面向单一语言,正如Apple和Google分别之于Objective C和Java,在过去建立社区非常有效,但现在开始面临不与竞争对手分享限制的风险。

物联网开发有很多选择,众多平台仍未凝聚成标准。开发者使用他们熟悉的语言,那些致力于物联网应用开发的有共享趋势,尽管他们可能面临与现有代码互用的选择。

地区偏好

选择开发语言的地区差异有时是因为特定硬件平台的主导地位,但数据同样显示更多地归结为市场条件和经济现实,而非平台拥有者所宣称那样。

Java仍旧在南亚流行,那里的移动开发长期针对功能手机,即支持J2ME(Java 2,Micro Edition),但不能视为智能手机。Android及其衍生物,同样在该地区非常成功。印度Jivi销售的Android手机价格略高于$30,替代功能手机的同时,保持Java作为首选的开发语言。

同样有趣的是脚本语言和HTML5,在北美超文本是47%开发者的首要平台。而其他地区开发者则坚持使用Objective C和C#(38%亚洲开发者的首要平台)。美国人寻求跨平台和快速开发的解决方案,这一趋势同样反映在西欧和以色列。

HTML5开发在可靠连接上更为容易,尽管需要增加持续性API,web页面在联网下仍工作更好。脚本方案同样难以优化,因此它们的知名度可能反映了为北美消费者提供更强大的处理能力。脚本语言通常工作更快,但执行更慢,但如果最终用户有最新旗舰硬件,那么执行速度就不那么重要。

北美有很多web开发者,在HTML和JavaScript上富有经验,热衷于将他们的经验带入移动市场。

有些语言更均衡

当产生收入,开发者会非常有创意,他们大多数会选取持有广泛选择余地的语言。小众语言在那些较少关心收入的开发者中更流行(有1/3的Python开发者属于这类),而涉及合同的Objective C顶尖开发者中有35%希望有人支付他们的时间。

ActionScript是个有趣的反常,移动开发者使用该Adobe语言集中在以广告和下周作为收入流,而使用其他语言(特别是Java)正转向订购和增值模式。值得注意的26%的Objective C程序员希望通过广告赚钱,而只有20%的使用Swift有同样期望,说明新一波开发者正在采用新的收入模式。

在物联网开发者社区,很难看到趋势的出现,因为新兴行业仍在寻找如何自我支付。大多数的物联网开发者,包括所有语言,仍处于探索阶段,收入还不是问题。

在PC开发,收入来源分布很平均,反映这是具备完善渠道的成熟行业。

移动收入仍然避开Swift

在移动开发者中,看起来语言选择和整体收入产生之间没什么关联性。收入在各种语言的分配相当平均。

使用可视化开发的移动应用确实直接收入较少,有20%报告零收入,但可能是因为这些应用有其他替代的资金来源,促销应用,或者连接到实体服务,如电影表单和火车时刻表。

16%的Swift开发者仍没有产生直接收入,对比Objective C的4%,这有些意思。这可能反映了语言所用来开发的应用,Swift创建信息和促销应用,而Objective C用于创收游戏和应用,但这更可能反映了Swift的不成熟,开发者仍在创建应用,随着时间可能会盈利。随着更多的Swift应用进入市场,我们会在未来6个月看到变化。

物联网则更为两极分化,C/C++开发者占据统治地位的大部分收入。这反映了物联网设备开发的嵌入式特性,常常需要使用底层语言和专业技能,来降低功耗并保持低成本的处理器。运行在灯开关和门锁的软件受到资源限制,软件要运行在这样限制中需要良好的效率。

HTML5和JavaScript都显著面向高端,有1/3报告从物联网开发中每月获得超过$100K收入(JavaScript是$200K)。尽管嵌入式开发是“物体”的根本,还有屏幕界面和服务端的逻辑处理,这些开发速度比运行速度更为重要,而这基于web基础优胜。

教育,教育,教育

开发者通常都是积极主动的,这反映在所有语言自我教育都占据主导地位。有2/3的开发者声称有某程度的自我教育,尽管很多都在大学和研究生期间学习,显然某些语言给予更多的正规教育。

Java开发者有最大的大学教育比例(73%),可能反映了Oracle(以及之前的Sun Microsystems)推动Java作为一个理想的学习语言。以前,免费开发者工具无疑鼓励很多大学采用Java,但语言的可扩展性进一步推荐其作为教育使用。Objective C和C#有着和Java一样的受教育开发者。

与此同时,C/C++也炫耀有略少的大学教育(65%,Wei:图为62%),几乎与Java差不多的研究生学历。C/C++开发者比例更少主要是因为有更多的自学游戏开发者在使用。

最大的自我学习是小众语言,Ruby,Lua和Python(平均28%是自学),接着是Swift(27%),Swift是一门很新的语言,以至于任何使用它的都需在某程度上自学。可视化开发工具也显示具有高比例的自学者,表明其低门槛的优点。

其他教育方面,在职教育占据主导地位,程序员希望经验和合作提升技能。课堂培训课程显然在高层语言中流行,包括脚本语言和HTML5,而Massively Open Online Courses(MOOCs)提供教育给那些学习Python,Objective C,也包括Swift,显示这些课程的提供是平台拥有者希望吸引开发者的重要手段。

 

相关链接:我的产业生态链和杂谈文章

展开阅读全文

没有更多推荐了,返回首页