Ако желаеш програмите ти да са наистина мултиплатформени пробвай Java (не казвам, че Qt не е мултиплатформено), но след Delphi Java ще ти е най-лесно да научиш и да използваш, но ще трябва да се пребориш с дилемата "бързо постигане на многофункционалност за сметка на бързодействие" т.е. с Java лесно се пишат многофункционални неща и стават бързо (да не говорим за много библиотеки, които има), но с тази функционалост наследяваш и тромавостта на Java. Сигурен съм, че много от хората в този форум не харесват Java, но това е моето мнение.
Имам чувството, че цялата .NET платформа е "открадната" от Java т.е. като начин на работа и синтаксис си приличат много с Java, за това научиш ли едното, другото ще ти е лесно. C#-а също така много прилича на Delphi и Java (то май създателя на Delphi е понаписал доста от .NET лайната).
A лично мен като чуя mono много се развеселявам, защото M$ програмистите много яко гледат сорс кода му, защото .НЕТ е затворен и като затънат в М$ помията на .NET веднага търчат да гледат сорс кода на mono, а после ме обеждават, че open source е много глупаво нещо, а самите те не искат да осъзнаят колко им помага в тяхната работа.
А какво прави свободния mono можеш да видиш на
http://www.mono-project.com/. Имам малки познания с Gtk и е много добро решение, но трябва да си овладял добре C.
Не съм програмирал на Qt, но доколкото имам наблюдения Qt-то се използва от фирмите за комерсиален (разбира се и за некомерсиален) софтуер повече от Gtk, затова ако искаш да се изхранваш с него трябва да го научиш доста добре, защото готовите форми на KDevelop изобщо няма да ти помогнат.