I took the time to add some [OpenLayers][1] support to a web application I’m working on, mainly because I wanted to have [OpenStreetMap][2] maps. It can’t replace VirtualEarth or Google Maps because the maps lack a lot of data but unlike GMaps and VirtualEarth it’s free for commercial applications.
[OpenLayers][1] is a powerful tool. But it’s a little bit ugly (GeoRSS rendering is lame, maps tiles arewere loading in a strange way) and I don’t really like the documentation (if you compare to the Google Maps API pages, it sucks).