Wine ist
imho nicht so gut, da es nichts wirklich gut emulieren kann. Deshalb ist das wirklich die letzte Lösung und außerdem würde ich dir lieber CrossOver (leider kostenpflichtig) empfehlen, funktioniert viel besser.
Du kannst mit Lazarus entwickeln. Vermutlich wirst du irgendwann allerdings bekloppt, da Lazarus tausend Fehler hat und es einfach nicht an zumindest Delphi7 rankommt. Viele Fehler, wie z.B. Internal errors, zeigen sich erst später oder ab einer gewissen Projektgröße. An sich kann man aber sagen, dass du mit Lazarus für Linux, Windows und Mac - leider manchmal wegen den Bugs nicht einwandfrei - entwickeln kannst.
Du kannst Befehle, wie z.B. ShellExecute vergessen. Stattdessen kann man einfach die
Unit Process einbinden, sich einarbeiten und ist auf der plattformunabhängigen Seite.
Java ist im Vergleich zu Lazarus mit Garantie fehlerfreier.
C/C++ ist ideal, da du einfach nur die GNU Compiler Collection (gcc) installieren musst und dann problemlos alles machen kannst (der Compiler für C heißt übrigens auch gcc und für C++ eben g++).
Zu Distributionen kann man nur sagen, dass du dich schlau machen musst, was am besten zu dir passt.
Am einfachsten wird es wahrscheinlich mit C/C++ oder an
nicht Lazarus, sondern
nur FreePascal.
Es ist deine Entscheidung.