Lo all,
Hope you all had a good Xmas/new year 
[quote]PS2 is a totally different beast from what I gather, a whopping 2mb of graphics ram, no T&L built in, or a depth buffer, and some weird vector co-processor that sits somewhere before where you’d expect the T&L pipe to start that doesn’t have any equivilent in PC architecture.
[/quote]
The vector processor (VU1) is the TnL part. Its sits just before the rasteriser, exactly where you’d expect it to be
However, you have to write the microcode for the TnL yourself, and (here’s the real nasty part) you have to do the clipping yourself too. However - you can generate geometry in the VU - which no other console can do.
The PS2 is very flexible, pretty fast, has phenomenal fill rate (2 giga pixels WITH alpha blending turned on! easily 4x that of the xBox). You can upload textures in the background, and you can build textures in VRAM dynamically without slowing rendering. We used this to get up to 7:1 texture compression, and this alleviates the small amount of VRAM you do get.
Its certainly very hairy to get going well, and none of these functions are provided out of the box - you have to code them all (you’re talking a years work or more just for this) It also has 16/24/ or 32 bit depth buffer (I always used 24, as you can then use the upper 8 bits for stencil buffering or depth-of-field effects). With careful use, you can also get 16+ pass multi-texturing, including DOT3 lighting!
However - Gamecube can as much, its CPU is much faster (PS2 CPU sucks a bit), and the graphics API is simplicity itself. By far the easiest to write for.
xBox - well, its a PC in a box from a couple of years ago. Fill rate is a big issue when alpha blending, and you have to use crazy nVidia stripping that bloats your strips with 30% degenerates.
Anyway, back to the main topic:
I would advise them to use C++, it is highly unlikely that Java will port easily to consoles - ever, and the main issue with porting from Java is dealing with the memory leaks (which really hurt on a console with no virtual memory).
It is possible to have a cross platform engine for any aspect of the game - Audio, Video, IO, its just a matter of clean API design. However, you can easily end up coding for the lowest common denominator which benefits noone (unless you don’t use any fancy effects anyway)
If you want to actually make money on consoles - PS2 is the one to go for, 4x the installed user base worldwide makes a BIG difference.