点击“英选”蓝字可关注
创业者常常面临一个问题:那么多技术语言,到底应该如何选择?毕竟选择错误的话有可能面临产品推翻重做,成本巨大。
英选在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种语言。评价选择的标准有以下几条:
其他供参考的信息还有典型产品、代码可读性等。
评选过程:
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是一件愉悦的事情。极具包容性和创造性的语法让开发效率非常高,代码易读并且逻辑清晰、自然。
评选结果

从Web开发领域来说,Ruby和Python的地位非常接近,语法也有颇为相似。由于Ruby和Python争夺的是“开发效率”这一定位的王座,我们最终决定通过比较各自最优秀的开发框架
Rails
与
Django
来决定。
下边是具体的比较结果:
最终,我们认为Rails还是更胜一筹,也因此定下了Ruby。
Web后端语言:
移动端语言:
移动端开发几乎没有选择,这让我们的选择反而变得简单。
除了以上用于原生开发的语言外,我们还非常看好 ReactNative 作为跨平台非原生开发App的能力,一旦安卓方面的方案进一步成熟,可以大幅降低移动App的开发难度及成本。
参考材料
● ● ● 全文完 ● ● ●
英选成立于2015年,通过认证制的自由职业开发者网络,累计已为300多个优秀的创业产品提供了产品开发及设计咨询服务。
如希望了解更多,点击“阅读原文”可以进入官网,或长按下图关注“英选”公众号。
