Comecei a dar uma olhada séria no Lisp neste fim de semana (com o que quero dizer que só aprendi o Lisp e não voltei a projetos em C #) e devo dizer que eu amo isso. Eu brinquei com outras linguagens funcionais (F #, Haskell, Erlang), mas não senti a atração que Lisp me deu.
Agora, enquanto continuo aprendendo o Lisp, comecei a me perguntar por que linguagens não funcionais não suportam funções de primeira classe. Eu sei que linguagens como C # podem fazer coisas semelhantes com delegados e, até certo ponto, você pode usar ponteiros para funções em C / C ++, mas existe uma razão pela qual isso nunca se tornaria um recurso nessas linguagens? Existe uma desvantagem em criar funções de primeira classe? Para mim, é extremamente útil, por isso estou perdido porque mais idiomas (fora do paradigma funcional) não o implementam.
[Editar] Agradeço as respostas até agora. Como me foi mostrado que muitos idiomas agora suportam funções de primeira classe, refiz a pergunta: por que demoraria tanto tempo para os idiomas implementá-los? [/Editar]