PCL is the printer command language invented by Hewlett Packard and is available on the majority of laser printers. Unlike Postscript, PCL was never completely designed but grew out of the need to extend the capablities offered by a line printer. PCL has some distinct advantages over Postscript, it is easy to understand and it is easy to write. This means that many application programs that want to bypass a printer driver use PCL to create everything from reports to graphics on the printer.

Hewlett Packard have always been rather embarassed by having to maintain a "de facto standard" printer language. PCL has many non-standard extensions and the latest attempt, called PCL6 (PCLXL), has more to do with trying to make a printer version of the Windows API. PCL6 is in a binary format that cannot be written with an editor and makes no attempt to clean up the mistakes made by other page description languages. If you have to choose between PCL6 and Postscript, choose Postscript.
Given that HP seem to be trying to lead a rebellion against Postscript, does this mean that application programmers should follow? Fortunately there is no need. The Hewlett-Packard Graphics Language (HPGL) provides a plotter language that has long been part of the PCL specification and is a very good reason for the CAD/CAM community to buy HP compatible products. HPGL relies on much of the environment that PCL provides. To provide backwards compatibilty, PCL6 has to support regular PCL too!