编程语言的二维分类法
想到一种从两个维度对编程语言进行分类的方法。横向的维度是从语言设计的角度,考虑设计思想、语法语义,按照语言特性的先进程度分为原始、过渡、现代三类。纵向的维度则从抽象层次和问题领域的角度分类。
| 原始 | 过渡 | 现代 | |
|---|---|---|---|
| 函数式 | Lisp | Scheme、OCaml | Haskell |
| 网页脚本 | JavaScript | CoffeeScript、TypeScript | Dart |
| 脚本 | Basic | Lua、Python | Ruby |
| 高级 | Objective-C | Java、C# | Swift |
| 底层 | C | C++、D | Go |
| 汇编 | MASM | FASM、Parrot | LLVM |
我这个分类不以囊括绝大多数的编程语言为目的,只针对典型的有代表性的语言,而且选入这个表格的还综合考虑了实现方式、运行效率和流行程度三个方面。
可以看到编程语言在不断进化,让编程语言作为一种工具较少地占用大脑资源,提高可读性和开发效率,做更多的事情。让人们扔掉落后的语言,拥抱先进的语言是需要时间的。
为了提高编程效率,开发工具也取得了巨大的进步,我们有三大利器:集成开发环境(IDE)、包管理系统(PMS)和源代码管理系统(SCM)。
IDE推荐
| C# | Visual Studio |
| Java | IntelliJ IDEA |
| Ruby | RubyMine |
| Go | LiteIDE |
| Dart | DartEditor |
| Swift | Xcode |
包管理系统列表
| 命令 | 网站 | |
|---|---|---|
| Ruby | gem | http://rubygems.org/ |
| Python | pip | https://pip.pypa.io/ |
| JavaScript |
npm |
https://www.npmjs.org/ |
|
bower |
https://bower.io/ | |
| C# | NuGet | http://www.nuget.org/ |
| Dart | pub | http://pub.dartlang.org/ |
| CentOS | yum | http://yum.baseurl.org/ |
| Mac OS | brew | http://brew.sh/ |
| Windows | choco | http://chocolatey.org/ |
哈哈,估计很多人还不知道Chocolatey,我也是最近才发现。
构建工具
把源文件组装成可供使用的产品。
| C# | MSBuild |
| C | make |
| Ruby | rake |
| JavaScript | jake, grunt, gulp |
| Python | Shovel |
| Java | Ant |
源代码管理
最推荐的就是Git了,有了这些语言和工具,程序员的幸福指数已大幅提高!

浙公网安备 33010602011771号