深奥的编程语言
编程语言的范型可以分为若干类别，这些类别可以用来大致了解特定语言的操作方式。其中包括命令式语言，如brainfuck，其指令描述了如何修改数据；函数式语言，如Unlambda，其中的数据和代码都或多或少地可交换，而程序的执行是通过重复迭代调用函数实现的；和重写语言，如Thue，其中可以使用变换函数使状态初始化。
基于对象语言
在这种定义下，基于原型是基于对象的，如JavaScript，其他的例子有：早期版本的Ada、Visual Basic（VB）和Fortran 90。而面向对象则是基于类且基于对象的，如：Simula、Smalltalk、C++、Objective-C、Eiffel、Xojo、Python、Ruby、Java、Visual Basic .NET、C#和Fortran 2003。另一种更常见的定义则是，只要使用“对象”该概念的编程语言都是面向对象语言，这种定义下，面向对象有两种分类：基于类的面向对象，基于原型的面向对象。