<? no es inseguro y es lo mismo que <?php...
Aunque yo te recomendaria usar este ultimo porque hay algunos servidores en donde no estan activados los
Short Open Tag y en ese caso, daria error en el codigo...
mysql_fetch_array es mas "pesado" que
mysql_fetch_assoc... Osea si queres hacer un codig optimizado, te recomiendo mysql_fetch_assoc...
La diferencia exacta entre los dos no la tengo muy clara, asique dejo esa parte para que la explique otro user ;)
Creo, que con mysql_fetch_assoc no podes leer un array usando el index, osea...
$row[1];...Sino solo
$row['columna'];
Suerte!