Stack Overflow技术报告给开发者哪些启示

最近,国外著名的技术问答社区Stack Oeverflow发布了一个技术报告,里面包含了关于开发者对于技术好恶程度的调研结果,非常有意思,InfoQ也做了相关的新闻报道,不过里面更多的是数据,缺少了数据背后的分析,希望这篇文章能够结合数据来探讨其背后的原因、启示等等,对开发者有所帮助。

先说说这篇报告的代表性,据说,Stack Overflow的问卷调查在今年2月份通过它们的网站进行,内容为全英文,并且在各大社交媒体上进行广告宣传。来自总共157个国家的超过2万6千名开发者回答了问卷中的45个问题。虽然,Stack Overflow特别提示大家其调查结果无法全面准确地反映出全球各种开发者的真实情况,但我却认为其结果很具有代表性,试想哪个开发者问卷能够获得如此多的采集样本,其反应的趋势和问题值得我们认真的分析和思考。

接下来,让我们看看编程语言(也包括部分框架)在开发者中的使用程度。 看这张图:

解读:

  • 排在第一位的是JavaScript,情理之中又意料之外。居首位的不是传统的服务器端语言Java或者C#,而是JavaScript,这充分反映了如今前端开发者的重要地位,首先,用户体验在过去几年被各个公司提到了前所未有的高度,导致前端领域的语言、框架、社区都得到了快速的发展。关注前端的人多了,JavaScript的开发者自然也多了。第二点,“前端语言后端化”的进程在加速,以前,JavaScript只作为一种前端的语言存在,而随着Node.js技术和“全栈工程师”出现,JavaScript被越来越多地应用到后端服务器场景中,并且表现不错,所以JavaScript的领地又扩大了不少。第三点,移动互联网的发展,虽然iOS有Object-C、Android有Java,但是为了兼容各个平台,技术社区冒出了很多跨平台的移动开发框架,其中核心的语言就是JavaScript,加上HTML5的成熟,混合应用的不断出现,JavaScript在移动开发领域也占据了一席之地。由此,我们可以看出JavaScript超过50%的开发者使用率是实至名归,也是大势所趋,虽然现在有些新的前端语言比如Dart出现,但根本无法撼动JavaScript在未来5年的地位,新兴语言更多地选择了最终转化成JavaScript来运行。虽然JavaScript语言并不十分漂亮,存在各种问题,但时代给了它发展的好机会,被社区推动着向前发展。对于开发者来说,不论是前端还是后端,掌握JavaScript,都是不错的技术投资。

  • SQL排在第二位,其实这让我心情有些复杂。一方面说明开发者平时都与数据库打交道,而且人数众多;另一方面,我不太提倡大家在日常开发中自己写SQL、做数据库相关的编码。因为,以我个人的经验包括和一些性能分析专家、APM厂商交流的结果,软件产品或者应用中最突出的性能问题往往来自于拙劣的SQL语句、调用、资源处置等。这些问题往往都是一些普通的开发者制造的。我的建议是,大家可以懂一些SQL知识,但是在实际工作中,最好由团队的数据库专家(如果没有的话,最好马上指定并培养一位)来搭建数据库相关的代码框架、规则,然后根据你的需求,由数据库专家来编写实际的SQL代码和相关调用,避免出现严重的性能问题。

  • 第三、四位分别是Java和C#,这两位总是结对出现在各种场合,而且往往排在前面的是Java。今年是Java诞生20周年,这么多年来,Java经历了很多,也出现了很多的竞争对手,但现在依然是服务器端语言的首选。在移动互联网时代,Java又依靠Android平台抓住了开发者,这几年,Java的发展更多的依靠于社区,并且在不断推出新的语言特性,追赶新语言。不管怎样,20岁的Java,优势在于成熟的社区和环境,中规中矩,依然值得开发者学习和关注。说到C#,不如说说.NET家族,如今的微软越来越开放,今年开源.NET,在社区中也是引起了重点关注。前几天,我和一位.NET社区的媒体编辑聊天,他说C#在国内的使用者其实很多,大部分高校都用的是免费的Visual Studio,所以学生们都用的是.NET平台,不过毕业之后相当一部分人因为工作的需要换成了Java或者其他语言。由此也可以看出,.NET的群众基础不错,企业级开发市场也有一定的市场份额,接下来要在互联网、移动互联网开发方面发力了。最近,Windows 10在中国的落地也很有新意,和360、小米、联想、腾讯等合作为用户升级操作系统,而且不论盗版与否。所以,C#的前景值得期待。

  • PHP,排在第5位,老当益壮的Web开发语言,没什么可说的,Web开发者的必备技能之一,致敬。

  • 第6-8位的是Python、C++和C语言。Python语言很低调,它的位置比较靠前,也反映出了目前运维、云平台等领域对脚本语言的强烈需求,Python又一次找到了自己大施拳脚的地方。作为曾经的Python应用开发者和粉丝,我想说,Python干得漂亮。C++和C作为系统级开发语言,其江湖地位一直无人能敌,不过也基本无人想涉足竞争,所以一直保持不温不火的状态。

  • 第9-12位的是Node.js、AngularJS、Ruby、Object-C。Node.js和AngularJS作为这几年发展最迅速的技术框架,已经被当成了“语言”来对待,由此可见其领先的地位,开发者此时上船还不晚。Ruby作为一门“亚洲语言”发展势头不减。得益于苹果产品的大热,Object-C成为iOS开发者的首选,当然未来要看Swfit语言的发展情况。

说完了每个语言,我们再总体看一下趋势。对比2013和2014年的调查结果,今年的报告显示大多数语言开发者使用率都有所降低,这表明主力语言正在受到各种新语言、新技术的影响和冲击,开发者的选择越来越多,一方面是好事,另一方面也会导致“选择焦虑症”,技术选型成为开发者经常头疼的问题之一。

接下来,我们看另外一张图。 

我想首先解释一下表格中的三列含义,第一列表示开发者在使用某项技术或者语言时对其喜爱的程度;第二列表示开发者在使用某项技术或者语言时对其讨厌的程度;第三列表示开发者还没有使用但是想要使用某项技术或者语言的程度。

先来看喜爱程度排行榜,不出意外,基本上都是新语言或者老语言的新版本,像Swift、C++11、Rust、Go,都属于比较小众的语言,但也代表了技术未来的趋势,一方面说明正是这些新语言的特性吸引了开发者,另一方面也说明亲身实践的开发者也对这些语言表示了赞许。没有上榜或者排名比较靠后的新语言说明不太得人心,开发者们要小心了。

接下来是讨厌程度排行榜,榜单上的名字(Salesforce、VB、Matlab、Perl)只能说让开发者又爱又恨,这些语言或者技术之所以上榜,一方面说明其行业地位优势明显,开发者不得不用;另一方面,问题有很多,让开发者很不爽。所以对于榜单上的名字,我们一方面要祝贺它们:你们很牛,是业界的佼佼者,大家都要用你们的东西;另一方面,我们也需要提醒它们:要不断的优化和改进,要聆听开发者的声音,不然竞争对手会抢走开发者的心。

第三列同样反映了技术趋势。这些是开发者最想学习的技术或者语言,包括Android、Javascript、Python、Node.js、Java、iOS、Swift等,看看这里面有没有你想要学习的东西?如果没有,那就要思考一下自己的方向有没有问题。

其实关于这个报告的解读应该到这里结束了,但是考虑到目前移动开发者特别多,而且报告中多次提到了iOS、Android、Java、Object-C、Swfit语言等,所以我引用另一份VisionMobile的移动开发报告把移动开发的语言、收入等情况再展开说一下。

从平台来看,iOS在高端市场仍占据领先位置。

  • 占据54%的开发者份额

  • 37%的全职开发人员将iOS作为首选平台

Android则在中低端市场占据霸主地位,几乎达到“几乎人手一部Android手机”的程度。

  • 在开发者份额方面,安卓占据了70%的份额

  • 40%的职业开发者将安卓作为首选平台

  • 在美国和欧洲以外地区,安卓则占据74%的开发者份额,并且有48%的开发者将其作为主平台

当然还有Windows Phone,与2013年3季度的21%相比,Windows Phone的开发者占有率有所增长,达到30%,不过调研中也指出Windows Phone的市场份额很小,只有3%。报告中提到“美国最大的两家银行——摩根大通和美国银行,已经失去耐心决定从微软平台上下架他们的应用”,不过“相比于安卓平台,这种大品牌应用的差距让独立开发者能够获得更多的曝光机会并且能够为他们带来更多的收入。”作为开发者首选平台,Windows Phone的份额稍有增长,从2013年的4.5%增长到8%。

Swift的前景如何呢?看看报告中是咋说的。

作为iOS平台的首选语言,Objective-C目前拥有39%的开发者份额。比较有趣的是,只有42%的首选平台为iOS的开发者将Objective-C作为首选语言。其他的开发者则将混合或跨平台解决方案(56%)或Swift(2%)作为首选。

Swift,苹果在iOS平台上的新语言,由于其刚刚发布几个月就有如此“空前的”采用水平,在这次的报告中获得了单独一章的篇幅。全部的开发者中有20%使用Swift,2%将其作为首选语言。48%的Swift采用者同时也使用Objective-C,但是并未作为首选语言,而23%的采用者并未使用Objective-C。这被看作是“一个对苹果有利的信号”因为“它能够在将来带来更多真正原生的应用”。剩余29%的Swift早期采用者已经将Objective-C作为他们的首选程序设计语言。

从平台的角度比较,iOS平台的开发者的收入最高,其次是HTML5和安卓的开发者。61%的iOS平台开发者每月收入小于$5k,而HTML5开发者的这一比例是71%,安卓是81%。iOS开发者比安卓开发者收入更丰厚的同时,他们在软硬件方面的支出也更高一些,这让两个平台之间的差异有所减少。

64%的开发者的首要目标市场是消费者市场,只有20%的开发者将企业市场看做他们的主要市场。不过在收入方面,只有19%的消费者应用开发者每月收入高于$10k,而企业应用开发者的这一比例是43%。

本文转载自:Stack Overflow技术报告给开发者哪些启示

版权及转载说明

本站原创、转载文章欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区

本站转载文章版权归原作者所有,如发现本站文章涉嫌侵权请点击「联系我们」反馈,本站将立即给予删除

转载请注明:文章转载自:全分享社区 「http://www.aweb.cc

本文标题:Stack Overflow技术报告给开发者哪些启示

本文地址:http://www.aweb.cc/article/detail/id/340.html

Stack Overflow 2015问 <<上一篇 下一篇>>Mozilla 宣布淘汰 HTTP 的方