Per prima cosa, definisci "Long Term".
Se intendi "cinque anni", qualsiasi di queste tecnologie sarà sicura.
Microsoft, ad esempio, fornisce in genere il supporto per gli strumenti di sviluppo per 10 anni dopo che l'ultima versione è stata ritirata dalla vendita. Con .NET 4.0 appena rilasciato, hai almeno 12-13 anni di disponibilità.
Tuttavia, se intendi "Dieci anni" o "Venti anni", allora penso che potresti dover riadattare le tue aspettative.
Questa è un'industria del cambiamento - non solo la tecnologia cambia a un ritmo sempre crescente, ma l'intera ragione per scrivere software è cambiare il modo in cui gli altri fanno il proprio lavoro. Il cambiamento è inerente a ciò che facciamo, e non c'è modo di evitarlo.
Nessuno stack tecnologico ti darà stabilità a lungo termine.
Non puoi spendere x anni di apprendimento, poi y anni facendo (dove x < 5 e y > 10).
Invece, è necessario impegnarsi per l'apprendimento continuo.
Ad esempio:
La mia laurea in Scienze informatiche si è concentrata sulla programmazione in C. (C ++ era solo il sogno bagnato di una commissione in quel momento, 1990).
Primo lavoro fuori dall'università, la programmazione principale che ho fatto è stata in una delle prime versioni di FileMaker Pro (come in, ho usato FMPro, non lo stavo creando). Ho insegnato Delphi e SQL nel mio tempo libero.
Prossimo lavoro: supporto hardware Apple. Ho imparato che sono un ragazzo del software. :-)
Prossimo lavoro: sviluppatore Delphi. Ho imparato un po 'di Java e XML sul lavoro.
Prossimo lavoro: sviluppatore Delphi, di nuovo. Mi sono occupato XSLT e C # nel mio tempo libero.
Lavoro corrente: sviluppatore C #. Ora apprendimento della programmazione funzionale (F #) e strutture di dati immutabili.
Prossimo lavoro: chi lo sa?