-->

[erlang] Comprehensive Erlang Archive Network [Basic] Mais um pouco de BASIC.

[SML] Quando uma linguagem funcional não funciona.

March 14th, 2007

Uma das respostas é simples: “Quando você tem um hardware que não supre as exigências requeridas”.
O meu hardware não é lá muito possante, mas tem me atendido sem maiores problemas. Um AMD 2600+ com 512M de RAM. Uso KDE, Gimp, Firefox e diversos outros programas e não tenho reclamações. Ou melhor, não tinha.

Estava olhando algumas implementações da familia SML para ver a possibilidade de substituir Haskell ou Ocaml em um projeto que tenho em mente. Gostaria de aprender mais o paradigma e, nada como uma aplicação mais real. Uma das diretrizes era que a linguagem deveria gerar um executável. A primeira que foi para os testes foi mlton . Olhei alguma documentação, instalei e fui para a fase de testes. Posso dizer que gostei da linguagem, de certa forma, até mais que Haskell e Ocaml. Como mlton ainda não ainda não possui um ambiente interativo, baixei o SMLNJ, para poder utilizar com o Emacs e facilitar as coisas. Ambas possuem toda a biblioteca básica e mais alguma coisa e são compatíveis. Alguns testes, algumas compilações e o resultado foi satisfatório. O tamanho dos programas gerados pelo mlton foram maiores que Ocaml e menores que Haskell e a velocidade também foi boa. Porém, mlton, foi o que mais demorou para compilar. Não me importei muito, já que é um processo complexo e trabalhoso para a otimização do resultado (veja a apresentação em pdf).

Para um teste mais apurado, baixei HaMLet, que é um SML em SML para compilar com mlton. O resultado foi desastroso. Após algum tempo, o mouse começou a soluçar, as coisas começaram a ir mais devagar e a compilação não seguia. Fui tomar um banho, jantar, assistir um pouco de tv e, na volta, estava tudo como antes. Um simples Ctrl-C interrompeu a compilação, ou melhor, a tentativa. É, parece que para usar mlton para algo mais complexo é necessário iniciar pensando em 1MiB de RAM para cima (fora o swap :-).

Mas acho que valeu, e até aconselho SMLNJ para quem deseja brincar um pouco com a linguagem. Acho que serve como porta de entrada para o estilo. O modo interativo é legal e não precisa do ;; irritante do Ocaml, apesar de interativo as entradas são compiladas e é inteligente o suficiente para saber quando precisa carregar algo (Time.now e ele carrega automaticamente o necessário). Não cheguei a gerar executáveis com o SMLNJ (que é um pouco diferente do método tradicional), mas como outra necessidade seria um toolkit gráfico, GTK 2+ e glade, e não encontrei nada, achei melhor deixar pra lá, por enquanto (mas continuo dizendo que é legal).

Eu sou meio insistente e, apesar de ser uma implementação um pouco mais antiga, testei rapidamente ML Kit , que pareceu sofrer do mesmo problema do mlton. Um dia eu atualizo o meu computador. Mas não será apenas por um compilador. :-)

Entry Filed under: Geral

2 Comments

Trackback this post