Ce langage permet de générer des pages au contenu dynamique (différent en fonction des données passées en paramètres, souvent par le biais de formulaires), mais peut aussi être utilisé comme langage de programmation en ligne de commande sans utiliser de serveur HTTP ni de navigateur.
Une syntaxe simple, quasi algorithmique, des types de données de haut niveau et des bibliothèques extensives rendent ce langage très attractif pour le développement rapide d'applications.
Ce langage permet la programmation sous de multiples paradigmes comme, par exemple, la programmation procédurale, la programmation orientée objet et la programmation générique.
L'environnement de développement s'appuie sur un éditeur d'interface graphique associé à un éditeur de code source. Il doit son succès à sa facilité d'utilisation pour développer des applications graphiques et/ou liées aux bases de données.
OpenGL (Open Graphics Library) est une spécification qui définit une API multi plate-forme pour la conception d'applications générant des images 3D (mais également 2D). L'interface regroupe environ 250 fonctions différentes qui peuvent être utilisées pour afficher des scènes tridimensionnelles complexes à partir de simples primitives.