For those who like programming in Pascal here is Turbo51 - a free Pascal compiler for the 8051 family of microcontrollers:
http://turbo51.com/
It features a fast single pass optimizing compiler, Borland Turbo Pascal 7 syntax, full floating point support, mixed pascal and assembler programming, full use of register banks, advanced multi-pass optimizer, smart linker, generates compact high quality code, output formats include binary, Intel HEX and assembler source.
Igor
A Hex file works well for programming a processor. But it does not contain any debug information. If you run a debugger or an ICE, you need a file format that can map data types and what source lines that produced the individual processor instructions.