编程语言选择
目录
警告
本文最后更新于 2018-04-18,文中内容可能已过时。
从大学期间教授的C、C++、Java,到自己接触的python、js,以及耳熟能详的PHP、C#、Ruby,甚至其它众多听过的没听过的语言。在此写这篇文章对这些主流的编程语言做一个对比,不是说哪个好哪个不好,更多的是总结下每一种都更多的用在哪些方面,以此来为未来的道路做一个参考。
TIOBE编程语言排行榜
TIOBT编程语言排行榜是编程语言流行趋势的一个指标,该排行每月更新一次。编程语言在排行榜上的位置是根据全世界范围内相应的有经验的工程师、课程和第三方供应商的数量而定。而谷歌、必应、维基、亚马逊、YouTube和百度等搜索引擎的搜索频次决定该语言的占比(Ratings)。另外,网站还特别强调,关于哪种语言是最好的,哪种语言的已完成代码最多和他们无关。
这个排行榜用来考察自己的编程技能是否还在时代潮流,也可以在开始一段新的学习或开发一个新系统时作为一个语言选择依据。2018年4月的排行榜如下:
我们就从这个排行榜开始讲起,分析各流行语言如表1.
表1.
语言 | 用来做什么 | 优点 | 缺点 | 编写了 |
---|---|---|---|---|
Java | 安卓应用开发、视频游戏开发、桌面GUI、Hadoop开发 | 使用人数最多,开发者需求量最大 | 内存占用很大;启动速度很慢 | Gmail,Minecraft |
C | 开发固件或移动应用;操作系统开发;编写系统软件 | 可移动性很高,可在不做改动或改动很小的情况下开发运行在不同平台的软件;C很小,可以嵌入几乎所有现代微型处理器,从冰箱到闹钟;因为几乎所有编程语言都由C实现,学会C就能使你方便的学会一切编程语言 | 没有运行时检查机制;不支持面向对象编程 | kindle,Linux,OpenGL |
C++ | 操作系统开发,搜索引擎开发等 | 学起来很困难;尺寸巨大,大部分功能相互影响是极其复杂的方式 | Goole,Outlook | |
Python | 网页开发,视频游戏开发,桌面GUI,“胶水语言”-把用其它语言制作的各种模块(尤其是C/C++)连结在一起,黑客语言 | 最容易学习的语言;大量的库和函数;用于物联网,如树莓派平台 | 作为解释型语言,比编译型语言慢很多;在移动计算方面很强,很少有智能机应用由Python开发;是动态型,需要更多测试以及错误仅在运行时提示 | Instagram,YouTube |
C# | Windows应用开发,商业应用开发 | 完整的.NET库,提供接入大量功能和支持;基于C,所以学到的架构可以转移到其它语言如Java,PHP以及C++ | 因为集合了.NET,没有任何跨平台能力 | stackoverflow,Evernote |
PHP | PHP是Web开发语言,广泛用在网站开发,API接口开发,服务器端开发,广告系统给开发,内部OA开发,移动后台开发,游戏开发 | 容易上手;社群庞大,社区活跃,开发者遇到的多数问题都有前人的解决方案;对数据库友好 | 代码不美;速度比其它语言慢;错误处理不够周全,因为要支持大量旧版的功能 | facebook,wordpress |
Javascript | 目前所有主流浏览器上唯一支持的脚本语言,可以做网站前端,后台,Web交互,游戏脚本等 | 因为任何代码功能都能立刻运行,速度很快;学习和实施都相当简单 | 有时候会被恶意利用,不怎么安全;会被不同浏览器编译出不同结果 | |
Ruby | 桌面GUI,网页应用,Web开发 | 和Python一样好学;大量的扩展和库;社区庞大 | 速度慢;很难找到好的文档 | |
Swift | 与Object-C同用于IOS开发,这也是我为什么不单列Object-C的原因 |
我的选择
已学过(按熟悉程度排名)
- C
- C++
- Java
- Python
未来重心(按重要性排名)
- C
- Python
- HTML+CSS+Javascript
- Go
支付宝
微信