大数跨境

那么多语言和框架,我应该怎么选择?

那么多语言和框架,我应该怎么选择? 英选
2017-04-28
2
导读:创业者常常面临一个问题:那么多技术语言,到底应该如何选择?英选根据“流行”、“性能”和“敏捷”3种项目定位对应为客户做出最优的技术选型....

点击“英选”蓝字可关注

    创业者常常面临一个问题:那么多技术语言,到底应该如何选择?毕竟选择错误的话有可能面临产品推翻重做,成本巨大。

    英选在2017年启动了“最佳技术选型实践”计划,根据“流行”、“性能”和“敏捷”3种项目定位对应为客户做出最优的技术选型,也为了尽可能提高技术管理能力,希冀在项目的各个阶段英选的技术团队能因地制宜给出技术建议和问题解决方案。


    • 敏捷:追求敏捷,开发速度

    • 性能:高并发支持,运行速度好


    技术架构的选择分为语言与框架两个部分,语言指的是编程语言,框架则是为了加快开发速度的特定语言应用的软件工具集合。


候选语言


我们面临的第一个问题是如何得到所有的候选语言列表,“热门程度”似乎是最好的入口,于是我们想到了 TIOBE


TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量,排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。数据来源宽广、计算基础庞大,根据官方描述:


TIOBE checks more than 586 million lines of software code for its customers world-wide, realtime, each day.


这个排行榜可以反映某个编程语言的热门程度,可以用来考查你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。但并不能说明一门编程语言好不好,或者一门语言被用于编写的代码数量多少。另外,热门程度本质上属于对历史使用数据的统计,并无法表明未来的发展趋势。 Node.js 在十年前不曾出现,而在 90 年代中期,对于服务器端的开发 C 是最好的语言选择。



我们从2017年1月的TIOBE榜单中获得了最受欢迎的Top 20,再从中筛选出支持且相对擅长Web场景的语言,得到了接下去将参与评选的语言类型,支持后端开发的语言共6种:Java、C#、Python、PHP、Javascript、Ruby,iOS编程语言共2种:Objective-C、Swift。



评价标准:

有了初步的候选语言,我们需要从中选择最为合适的3种语言。评价选择的标准有以下几条:

    • 受欢迎程度:TIOBE排名(2017年1月份)、Github标星数量

    • 发展前景:社区规模、更新频率

    • 易用性:语法函数丰富程度、库的数量

    • 学习难度:入门难度、学习曲线


其他供参考的信息还有典型产品、代码可读性等。


评选过程:

Java

Java是一门面向对象编程语言,Java语言具有功能强大和简单易用两个特征。


C#(读C-sharp)

C#是运行于.NET Framework之上的高级程序设计语言,由C语言和C++衍生而来。具有安全、稳定、简单、优雅的特点,C#使得C++程序员可以高效的开发程序。


Python

Python是一门比较简单的编程语言,同时具有极高的可读性和灵活性,最近它已经成为大学院校在教授计算机专业时选择的入门语言之一。


JavaScript

JavaScript 是目前所有主流浏览器上唯一支持的脚本语言。JavaScript入门难度较低,可在任何浏览器上开发及调试,不需要安装额外的软件。


Node.js

Node.js是一个 JavaScript 运行环境,有了它我们可以通过JavaScript语言开发Web服务端。Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型,从而让高并发在的轮询(Polling)和comet构建的应用中成为可能。


PHP

PHP是一门简便的Web开发语言,可广泛用在网站开发、API接口开发、服务器端开发、移动端后台开发等。PHP是最受欢迎的Web开发语言之一,在全球范围内基于它所开发的网站数量占比第一。


Ruby

Ruby是一门有趣的开发语言,优雅而又不失实用。它的创造者Matz在设计Ruby的时候就想方设法让Ruby成为一个“人性化”的语言,力求使Ruby程序员感觉到使用Ruby是一件愉悦的事情。极具包容性和创造性的语法让开发效率非常高,代码易读并且逻辑清晰、自然。


评选结果

如何从Ruby和Python中做出选择?


从Web开发领域来说,Ruby和Python的地位非常接近,语法也有颇为相似。由于Ruby和Python争夺的是“开发效率”这一定位的王座,我们最终决定通过比较各自最优秀的开发框架  Rails  与  Django   来决定。


下边是具体的比较结果:

    • Github标星数35200 vs 24800,Rails高出40%

    • 在知名产品的框架选型上,Rails比Django更加出色

    • 目标一致:让Web开发变得简单

    • 性能方面,普遍认为Python比Ruby稍快一些

    最终,我们认为Rails还是更胜一筹,也因此定下了Ruby。


最佳选择



Web后端语言:

    • 流行:Java

    • 敏捷:Ruby(Ruby on Rails)

    • 性能:Node.js(Javascript)


移动端语言: 移动端开发几乎没有选择,这让我们的选择反而变得简单。

    • iOS:Swift / Objective-C

    • Swift推出于2014年,由Apple官方开发及维护,是当下官方力荐的iOS/macOS应用开发语言。

    • Java

    • Java是最经典也是最受欢迎的安卓应用开发方式,短期内地位不可取代。


除了以上用于原生开发的语言外,我们还非常看好 ReactNative 作为跨平台非原生开发App的能力,一旦安卓方面的方案进一步成熟,可以大幅降低移动App的开发难度及成本。



参考材料

    TIOBE官方网站:

    • https://www.tiobe.com/tiobe-index


    编程语言拟人化:

    • http://blog.jobbole.com/63311/

    • http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=002412(原文链接)


    2017年最受欢迎的语言:

    • http://www.techug.com/post/whats-the-best-programming-language-to-learn-in-2017.html


    9种主流编程语言对比:

    • http://www.techug.com/post/compare-9-main-stream-programming-languages.html


    Django还是Rails

    • http://djangostars.com/blog/django-or-rails/


    Rails、Django还是Larvel,非技术创业者的选择

    • https://medium.com/entrepreneurguide-me/rails-vs-django-vs-laravel-an-analysis-of-web-frameworks-from-a-non-technical-founder-312506969afd


● ● ● 全文完 ● ● ●




英选成立于2015年,通过认证制的自由职业开发者网络,累计已为300多个优秀的创业产品提供了产品开发及设计咨询服务。


如希望了解更多,点击“阅读原文”可以进入官网,或长按下图关注“英选”公众号。


【声明】内容源于网络
0
0
英选
英选是一家互联网产品外包开发平台,开发者入驻平台,平台帮需求方匹配合适的独立开发者。深圳市自由邦互联网有限公司旗下产品。
内容 57
粉丝 0
英选 深圳市自由邦互联网有限公司 英选是一家互联网产品外包开发平台,开发者入驻平台,平台帮需求方匹配合适的独立开发者。深圳市自由邦互联网有限公司旗下产品。
总阅读110
粉丝0
内容57