• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrotuga

Common Lisp ou scheme? Ou outro dialecto ou linguagem

11 mensagens neste tópico

Bem, daqui a uns tempos vou aprender Lisp. De estre as coisas todas que aprendi até agora, aquelas onde o processo de aprendizagem foi melhor sucedido foram as que tiveram mais planeamento pŕevio do prórpio processo de aprendisagem.

Neste momento ando a ler muita coisa sobre lisp e outras linguagens usadas mais utilizadas por programadores que usam aproximações funcionais.

Em principio será lisp, não decidi ainda o dialecto nem se é mesmo Lisp.

Uma linguagem que tem aí bons ecos é o haskell por exemplo.

Um bom leque de implementações de standards, bibliotecas para UI, HTML, HTTP, XML, etc são um factor de peso nesta decisão.

Estou mais inclinado para o Common Lisp, mas nada está decidido.

Ah... é verdade... Exemplos de aplicações fixes que conheçam escritos na respectiva linguagem são argumentos de bons tambem.

Betovsky, diz aí de tua sentença.

Quem tiver recomendações que as deixe aqui para eu ir investgando.

Qual devo usar e porque?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Epá, sabes perfeitamente que eu vou-te dizer para largares Lisp e ires antes para Haskell :D

Agora a sério, eu não sou grande fã de Lisp, simplesmente por causa dos ( ). Haskell nesse aspecto é muito melhor, aliás Haskell é a linguagem com a sintaxe mais limpa que existe.

Em relação a implementações de bibliotecas, Haskell suporta isso tudo, umas melhores que outras mas suporta. Mas por exemplo, em questão de XML, Haskell nesse aspecto domina muito, tem várias bibliotecas muito boas. Mas o problema de Haskell é que primeiro para começares a poder usá-las tens de primeiro aprender Monads e em alguns casos Arrows (que é um conceito especial de Monads), ou seja, exige um nível de aprendizagem já um pouco avançado. E Haskell não é lá muito bem conhecido pela sua elevada curva de aprendizagem :thumbsup:

Em relação a aplicações fixes, em Haskell o que tem estado mais na moda é o XMonad.

Agora em relações a opções, tens sempre Lisp e Haskell como já referiste, mas tens mais escolhas. OCAML também é bastante popular, Erlang também é, apesar de este ser mais usado num sentido de processamento paralelo. Tens também F#, mas este já é ligado à M$, mas tem também gerado muito interesse.

Como sei que curtes bastante webdev, existe em desenvolvimento Links, Links is a new programming language designed to make web programming easier.

Uma linguagem funcional, pensada de propósito para a web. Mas ainda é muito nova, portanto não sei até que ponto está operacional. Nunca a experimentei...

Qual deves usar? Haskell obviamente...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu aprendi Scheme e detestei.

Acho que ainda é mais complicado de construir algo do que em C++, o que é complicado.

De resto, tem os seus lados positivos, e programar em linguagens funcionais faz-nos ver os problemas com outros olhos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mmmm... parece que o haskell está a chegar-se para fora do meu leque de possibilidades. Uma das características porreiras que ouço falar que o lisp tem é que praticamente não é preciso aprender nenhuma sintaxe... mas sim aqueles parentesis todos seguidos assustam.

Se eu tivesse aprendido conceitos como monads e afins académicamente... até era gajo, mas não estou muito virado para uma aprendizagem que tarde em me proporcionar divertimento.

Até porque se bem percebo, o paradigma da programação funcional visa um puco mapear ideias em software de forma simples.

Não é que tenhas sido pouco esclarecedor, mas tornou-se um pouco mais claro que o Lisp é mais o que procuro.

Mas venham mais opiniões. Pelo que ouvi anda muita gente a aprender scheme nas faculdades. Digam lá de vossa justiça.

O links poderá vir a ser um brinquedo porreiro para uns testes de conceito, ou mesmo para sua implementação em ambiente de produção, quem sabe. Mas num futuro mais distante. Mas a ideia de por tudo junto na mesma linguagem faz todo o sentido.

Uma coisa porreira que encontrei e que está muito mais próxima dos conhecimentos que já tenho é o javafx

http://sun.com/javafx

EDIT:

warrior: ROTFL!

Obrigado, venham mais opiniões!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mmmm... parece que o haskell está a chegar-se para fora do meu leque de possibilidades. Uma das características porreiras que ouço falar que o lisp tem é que praticamente não é preciso aprender nenhuma sintaxe... mas sim aqueles parentesis todos seguidos assustam.

Haskell também não tem muita sintaxe. Tem mais que Lisp, mas se formos a comparar com outras linguagens, há muitas poucas linguagens que tem menos sintaxe que Haskell. Aliás no código, Haskell é bem capaz de ser a linguagem com menos "ruído" no código.

Se eu tivesse aprendido conceitos como monads e afins académicamente... até era gajo, mas não estou muito virado para uma aprendizagem que tarde em me proporcionar divertimento.

Até porque se bem percebo, o paradigma da programação funcional visa um puco mapear ideias em software de forma simples.

Não é que tenhas sido pouco esclarecedor, mas tornou-se um pouco mais claro que o Lisp é mais o que procuro.

Oky, eu se calhar não me fiz entender. O facto de Haskell ter uma curva de aprendizagem elevada é porque possui conceitos bastante complexos. Qual a vantagem disso? Depois a programar é muito simples mapear as ideias para o código. Por exemplo, um artigo que li à pouco tempo de ir sacar os links para .mp3 de um ficheiro HTML, por trás estão conceitos muito poderosos, mas uma pessoa a usar é muito simples. http://neilmitchell.blogspot.com/2008/03/toddlers-play-with-html-in-haskell.html

Mas não penses que Lisp é mau. Lisp também é uma boa linguagem. Claro que não tão boa como Haskell :D

Em relação a Haskell e Lisp, eu curto muito os artigos deste rapaz. Acho que ele prefere Lisp a Haskell, mas gosto muito dos artigos dele, provávelmente também deverás achar interessante. http://www.defmacro.org/

Uma coisa porreira que encontrei e que está muito mais próxima dos conhecimentos que já tenho é o javafx

http://sun.com/javafx

Para isso tens, Silverlight, ou então Moonlight, que é a versão do Silverlight mas para Mono. Ambos estão muito mais avançados que Java FX :thumbsup:
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O silverlight e o moonlight pelo que me pareceu não servem exactamente o mesmo propósito que o javaFX. Mas isso para este caso pouco interessa.

Mmmm... esse exemplo do mp3 parece simples porque se baseia numa biblioteca. Usando Xpath por exemplo fazes o mesmo em 2 ou 3 linhas com qualquer linguagem.

Bem... parece que não há muito a fazer, quanto mais leio mais me inclino para o comon Lisp. Lá vou eu ter que aprender a usar o emacs  :nono1:

é da forma que sempre aprendo mais coisas.

Epa... esse gajo de que falas desenvolveu uma framework bem cool. Bons artigos na verdade, faceis de perceber e vão diretos ao assunto. vou subscrever o feed :D

Ahh... podem sempre acrescetar mais coisas respondendo a este tópico. Afixem aí toda a informação que acharem relevante sobre este tema. Código, links, pensamentos, opiniões, etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como por exemplo acrescentar: já não era sem tempo que aprendes a usar o emacs.

Vais ver que não te arrependes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pedrotuga, eu sei que com o XPath uma pessoa faz o mesmo de forma simples. E qualquer linguagem hoje em dia tem uma biblioteca a suportar isso. Aquilo foi só um exemplo. Pus aquele, porque foi o que me lembrei por ter lido recentemente. A ideia a reter é que por trás estão conceitos muito poderosos, mas não é necessário uma pessoa ser um génio para usá-los, com o próprio código demonstra, é algo muito simples. Como esse há muitos...

Em relação a CL vs Scheme; apareceu hoje este artigo no Reddit. Provavelmente deverás achar interessante. No mínimo dá mais umas luzes, ou então ainda te levanta mais dúvidas sobre qual escolher :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já o tinha lido, mas não diz grande coisa.

Preferia exemplos de código :)

Há muito menos informação na internet sobre estas linguagens do que eu esperava.

Por exemplo, ainda não encontrei muito software escrito nestas linguagens.

Mesmo quando falaste do Xmonad para o caso do haskell, já eu tinha andado a ver o que era por ser o único software relativamente bem sucedido que encontrei escrito em haskell.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim isso é normal. Linguagens funcionais são muito pouco adoptadas. Portanto a percentagem de projectos nestas linguagens vai ser menor.

Em relação a Lisp não sei. Mas para Haskell há mais sw conhecido. XMonad é o que está na moda, mas tens também Darcs, Happs, Pugs ou mesmo o próprio GHC.

Mas para tares mais dentro do que se vai desenvolvendo então aconselho-te a dares um salto pela freenode e visitares os canais das linguagens e perguntar ao povo. Certamente em qualquer uma delas chove respostas. E normalmente o pessoal é muito prestável, pelo menos os do #Haskell são, mas presumo que os de Lisp e outras linguagens também o sejam.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Adorei AI na fac, fizemos um jogo de de damas em lisp usando o algoritmo A*

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora