Processing is a data visualization programming language built on top of Java. It has a strictly typed structure with classes and inheritance. The language uses setup() and draw() methods similarly to OpenGL, with draw() being called continuously. Processing can be used to draw shapes and images, perform math functions, and manipulate the canvas through transformations. It has also been ported to JavaScript as Processing.js to run on HTML5 canvases in web browsers.