On the other hand there are languages for almost all purposes, but there are no efficient algorithms for many real-world problems. There are many (practically important!) problems in P or probably in P for which we did not find satisfying algorithms yet. There are even more problems in NP that we translate to
SAT or
IP in order to solve them because there are no known algorithms better than exhaustive search.
EDIT: Designing efficient algorithms requires much knowledge in mathematics and hardware architecture (cache behavior etc.).
Anyone with a little knowledge of assembly can invent a compiler/language. It takes time and a compiler is a complex project but it is not a _hard_ problem.