编程语言的二维分类法

想到一种从两个维度对编程语言进行分类的方法。横向的维度是从语言设计的角度,考虑设计思想、语法语义,按照语言特性的先进程度分为原始、过渡、现代三类。纵向的维度则从抽象层次和问题领域的角度分类。

 原始过渡现代
函数式 Lisp Scheme、OCaml Haskell
网页脚本 JavaScript CoffeeScriptTypeScript Dart
脚本 Basic LuaPython Ruby
高级 Objective-C Java、C# Swift
底层 C C++、D Go
汇编 MASM FASMParrot 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了,有了这些语言和工具,程序员的幸福指数已大幅提高!

posted @ 2014-08-21 13:40 刘俊峰 阅读(...) 评论(...) 编辑 收藏