Amikor elkezdtem androidot tanulni, muszáj volt gyorsan felrántani a Javat ugye.
Nagyon megtetszett az a világ, hogy típusos, és nem az van mint a PHP-nál, hogy azt adok vissza amit épp akarok, vagy azt töltök bele a metódusba amit épp akarok. Ez rákényszeríti az embert, hogy jobban átgondolja a kódot. Mondjuk az overloading szerintem egy elég elbénázott dolog.
Nem tudom mikor írtál utoljára PHP-ben bármit is, de az 5-östől elég erős áttörések vannak benne. Jelenleg 5.6 dolgozom, mert ez van a szerverünkön (debian ), de már itt is rengeteg nagyon jó cucc van az OOP-hez, gyakorlatilag functions.php -m már nincs is, 4 db globális függvényt használok szövegek fordítására (gettext), azon kívül csak osztályok és semmi statikus Szóval erősen elmozdultam a clean code irányába.
Én netbeans-t használok, unit tesztek is vannak, xdebug-gal nagyon könnyen lehet debugolni, szóval szerintem csak rég jártál erre felé, vagy nem mélyültél el benne.