To vážně záleží na tom co je to za aplikace, kdo je hlavní cílová skupina, atd. Pokud například cílíte na Windows / Linux, nejlepší (z mého pohledu) bude C++ a Qt - takové aplikace se v obou prostředích chovají přirozeně. Qt je navíc velmi příjemná knihovna.
Pokud cílíte na mobilní platformy, univerzální řešení neexistuje. Je sice možné naplácat to v javascriptu a html, ale jediné čeho tím docílíte bude že aplikace bude na všech systémech vypadat stejně špatně. Vzhledem k tomu že uživatel každého systému očekává jiné UI, je potřeba přinejmenším UI část vytvořit zvlášť pro každou platformu. V tom je asi nejlepší xamarin (jádro aplikace společné, UI pro každou platformu jiné). Xamarin používá C#.
Pokud chcete cílit na windows a mobily a nevadí vám horší podpora linuxu, dával by smysl C# (velká část kódu by šla sdílet mezi xamarinem a windows verzí), a v linuxu by to fungovalo v mono nejspíše jakž takž také.