Debuguji PL/SQL poměrně často (nástroj PL/SQL Developer). Co přesně na tom je zlo? Mně ten debugger přijde prakticky stejný jako třebas v C#. Má to step into, step over, breakpointy (včetně podmínek typu zastav se teprve až tenhle breakpoint bude dosažen po sté), zobrazuje hodnoty proměnných, call stack atd. V čem konkrétně ten debugger zaostává za jinými jazyky?
Version control záleží na editoru. Pokud máte editor provázaný s version control systémem, tak je to stejné jako jakékoliv jiné IDE. Pokud měníte objekty pomocí SQL*Plus nebo jinak napřímo, pak ano, je to špatné.
Deployment je o tom, jak chcete psát zdrojové kódy. Velké aplikace se běžně píší tak, že všechny .sql soubory prostě v nějakém pořadí spustíte znovu. Prostě místo CREATE TABLE nejprve otestujete, zda už tabulka existuje, a ten CREATE spustíte jen pokud ne. Sloupečky doplňujete tak, že se kouknete do all_tab_columns a podle toho se rozhodnete, zda ten ALTER TABLE je potřeba udělat. Bordel jsem s tím zažil jen ve firmě, která zvlášť držela create scripty a zvlášť upgrade scripty. Tam to byla noční můra v udržování patch version - to aby se něco nezapomnělo sputit, ale zároveň se to nespustilo více než právě jednou. Přitom to není nutné, scripty mohou být snadno znovu spustitelné. A u věcí jako jsou view a package je opakovatelná spustitelnost by default.