Personally, I really enjoy coding with GDAL in Python. Once you've got it installed and got your head round how it works it is pretty easy going. Also with python you can make use of some really useful 'batteries included' builtin modules (os, math, string, sys, random etc), as well as third party modules such as NumPy (useful for raster opperations) among others (for a comprehensive GIS list, see here: What are the Python tools/modules/add-ins crucial in GIS?). In addition it can interact with PostGIS because PostGIS is based on PostgreSQL.
A really great introduction to the Python GDAL bindings can be found here:
You can get going in minimal time with a bit of know how and reading, for example you can grab hold of a shapefile in 2 lines:
driver = ogr.GetDriverByName('ESRI Shapefile')
datasource = driver.Open('shapefile.shp')
It's very easy to do whatever you want to the file once you've read through the documentation ( http://www.gdal.org/annotated.html ) and you know what you're doing.
See here for some examples of what is possible in simple and minimal code: