C + Linux. That seems to be the most promising tech with regards to longevity that exists today.
It really depends on the application. C & Linux will literally be around forever, but C isn't the best language for a line-of-business application like an unemployment system. Java would be a better fit for something like that.
- undefined behaviour
- non-portable binaries
- lack of rich and powerful standard library
- manual memory management requires developers of higher skill and discipline