Como devo começar com o Lisp? [fechadas]

47

Eu tenho programado há anos, trabalhando em várias iterações do Blub (BASIC, Assembler, C , C ++, Visual Basic, Java, Ruby em nenhuma ordem particular de "Blub-ness") e gostaria de aprender Lisp. No entanto, eu tenho um monte de intertia que com tempo limitado (família, trabalho a tempo inteiro, etc) e uma felicidade confortável com o meu atual Blub (Java).

Então, minha pergunta é a seguinte, uma vez que sou alguém que realmente gostaria de aprender Lisp, quais seriam as etapas iniciais para obter um bom resultado que demonstre a superioridade do Lisp no desenvolvimento web ? Talvez eu esteja perdendo o ponto, mas é assim que eu veria inicialmente a aplicação do meu conhecimento de Lisp.

Estou pensando em "usar o dialeto A, usar IDE B, seguir as instruções na página C, questionar sua sanidade depois de mônadas usando o conselheiro D". Eu gostaria apenas de saber o que as pessoas aqui consideram um conjunto ideal de valores para A, B, C e talvez D. Também alguma discussão sobre o mérito relativo de aprender uma linguagem tão poderosa em oposição a, digamos, tornar-se um Rails especialista.

Só para adicionar mais detalhes, estarei desenvolvendo no MacOS (ou em uma VM Linux) - nenhuma abordagem baseada no Windows será necessária, obrigado.

Notas para quem está navegando apenas

Vou manter esta questão aberta durante algum tempo, para poder dar feedback sobre as sugestões depois de poder explorá-las. Se acontecer de você estar navegando e sentir que tem algo a acrescentar, por favor faça. Eu realmente gostaria de receber seu feedback.

Links interessantes

Supondo que você esteja vindo do Lisp a partir de um plano de fundo Java, esse conjunto de links iniciará rapidamente.

  1. Usando o plugin La Clojure do Intellij para integrar o Lisp ( videocast )
  2. Lisp para a Web
  3. Versão online do Practical Common Lisp (c / o Frank Shearar)
  4. Terra do Lisp uma maneira (+ (+ very quirky) game based) , mas torna tudo tão simples
  5. Instale o Clojure e o Sublime 2 no MacOS e um excelente guia de primeiros passos
  6. Veja o livro Clojure in Action . Trabalhou para mim.
por Gary Rowe 22.11.2010 / 14:22
fonte

9 respostas

18

Isso provavelmente vai contra as recomendações da maioria das pessoas, mas evite o Emacs para começar, a menos que você já saiba disso. Especialmente se você está acostumado com IDEs / editores modernos.

Estou falando por experiência; Eu tentei começar com o Emacs, mas ter que aprender a linguagem e o editor ao mesmo tempo realmente me frustrou (especialmente porque o Emacs é muito diferente de outras ferramentas). Eu acabei chutando, começando com o PLT Scheme (agora Racket) , que vem com um IDE multiplataforma relativamente simples, um repositório de pacotes e documentos fabulosos (incluindo um tutorial intermediário especificamente voltado para o desenvolvimento web ). Depois que eu peguei o Lisp, acabei voltando ao Emacs, pegando o EL / CL por meio do Practical Common Lisp e Guia Elisp de Xah . Basicamente, como eu vejo, você precisa conhecer um Lisp antes de poder usar o Emacs efetivamente, e você precisa conhecer o Emacs para ser muito efetivo com o CL / Elisp. Isso significa que você pode pegar Scheme, ou aprender Common Lisp através de algum outro editor primeiro (LispWorks personal, provavelmente).

Se você já conhece o Emacs, então sim Elisp é o passo natural (embora a forma como você gostaria de usar o Emacs sem saber que o Elisp está além de mim).

YMMV, claro, isso é exatamente o que eu achei que ajudou.

Como o seu blub atual é Java, você provavelmente obterá muita milhagem de Clojure , Urso armado ou Kawa . Eu não tentei nenhum deles sozinho, não sendo um cara de Java, mas o Clojure especificamente vem altamente recomendado de outros Lispers que eu conheço. Parece que a capacidade de manter sua VM e IDE atuais pode ajudar no processo de aprendizado.

    
por 26.11.2010 / 02:05
fonte
10

Bem, você pode acertar dois pássaros lendo SICP ; um deles é aprender LISP (eu quero dizer esquema é um dialeto de Lisp) e outro é grande insight sobre como programar.Período !!

    
por 26.11.2010 / 10:04
fonte
10

Conrad Barski tem um ótimo tutorial chamado Criando SPELs em Lisp (SPEL é sua sigla para macros). Envolve fazer um jogo do tipo Aventura simples e pula direto nas macros Lisp. Ele também está trabalhando em um livro introdutório que está agora disponível em:

Aprenda a programar o Lisp, um jogo de cada vez .

E, do Índice:

  • Crie seu próprio servidor da Web e use-o para reproduzir jogos baseados em navegador

No entanto, não sei o que isso implica para o desenvolvimento (como nas páginas HTML) usando o Lisp. :)

Atualização - vejo alguém mencionando o livro "Estrutura e Interpretação de Programas de Computador", que me lembrou que o MIT colocou online, o todo SICP Palestras em vídeo de Hal Abelson e Gerald Jay Sussman . Você pode ter encontrado o livro seco, mas as palestras são excelentes. Embora eles sejam baseados em Scheme, eles ainda se deparam com os conceitos básicos também em Lisp, muito bem. Vale a pena baixar e assistir.

    
por 25.11.2010 / 15:59
fonte
8

Para obter uma boa introdução básica ao idioma, leia o Practical Common Lisp de Peter Seibel. O livro é excelente.

Configurar emacs e SLIME pode ser complicado para um novato, em que "complicado" varia em magnitude, dependendo do seu sistema operacional. Como de costume, o Windows obtém o limite mínimo, mas as pessoas fizeram a parte difícil e escrito (SBCL, Emacs, SLIME).

Uma vez que está fora do caminho, Planet Lisp fez referência a um artigo recentemente descrevendo como configurar o Hunchentoot e o nginx.

Edição específica do sistema operacional: MCLIDE pode ser um bom lugar para começar. Eu instalei, mas não tive a chance de usá-lo, então não posso dizer nada útil sobre isso. Certamente parece interessante!

Edit: Eclipse tem o plugin Cusp também.

    
por 22.11.2010 / 14:37
fonte
6

Já temos muitas ótimas respostas, mas supondo que você queira mergulhar de cabeça no desenvolvimento da Web com um Lisp, tenho mais algumas ideias.

O

Clojure é o primeiro Lisp que eu vi ter excelentes frameworks web full-stack prontos para o horário nobre.

  • O Noir é um framework web sólido com roteamento, modelos, etc., similar ao Sinatra, mas um pouco mais rico em recursos. Ele usa o Ring, que é basicamente o equivalente do Rack em Ruby do Clojure.
  • O Korma é uma biblioteca de abstração SQL que combina muito bem com o Noir.
  • Pinot é uma estrutura do lado do cliente escrita inteiramente em ClojureScript, o que nos leva a:
  • O Clojurescript é um compilador para o Clojure que tem como alvo o Javascript.

Se você não tivesse notado, eu apenas cobri toda a pilha da web e está tudo escrito no Clojure.

Eu acho o Clojure um pouco mais fácil de começar com o Common Lisp, com muito melhor suporte a conjuntos de recursos / bibliotecas do que o Scheme.

Se você estiver vindo de um plano de fundo Java, ele terá o benefício adicional de ser executado na JVM, o que lhe dá acesso a todo o stdlib Java quando você precisar dele.

A documentação disponível é um trabalho em andamento, assim como os próprios frameworks. Mas há um bom tutorial aqui

No que diz respeito aos editores, se você estiver confortável com o vim, você pode usar o vim com o SLIMV. Se você gosta de emacs, o emacs / SLIME está bem. Há um bom suporte para Eclipse e NetBeans para o Clojure (ou foi o que me disseram), mas eu geralmente uso o TextMate (embora o Sublime Text 2 esteja rapidamente se tornando meu editor preferido). Eu sei que estou perdendo um pouco de magia Lisp não usando um ambiente mais integrado, mas estou feliz em acertar o ⌘-Tab para trocar entre o meu editor e o REPL; sua milhagem pode variar.

Se você quiser que um livro o inicie, recomendo Programação Clojure de Stuart Halloway e Aaron Bedra. A segunda edição acabou de sair da PragProg , por isso está atualizada.

Feliz Lisping!

    
por 05.06.2012 / 15:16
fonte
5

Outro comentarista, Inaimathi , recomendou este livro há alguns dias: The Little Schemer

Recebi hoje e posso dizer, como alguém que tem uma biblioteca muito pesada de livros de programação adquiridos ao longo de muitos anos, que eu posso ter lido apenas um capítulo, mas definitivamente precisarei de uma versão de capa dura deste. Ele lê como o Tao Te Ching, muitos pequenos fragmentos de sabedoria divina sobre a língua. Pode dizer Scheme, mas foi originalmente chamado de "The Little LISPer", as línguas no nível que discute são suficientemente semelhantes para serem ensinadas como uma.

Não é um texto avançado, mas tem a missão de incutir os princípios da linguagem e para que serve realmente, como pensar assim. Eu acredito que seria um bom começo para o LISP.

NB. A matriz de competências do programador Na verdade, menciona este livro no nível mais alto de competência das coisas a serem procuradas. (veja a seção de livros)

    
por 26.11.2010 / 02:52
fonte
4

Um lugar muito bom para começar a usar o Lisp está dentro do editor do Emacs, onde ele pode ser usado para redefinir qualquer coisa. Você quer que a tecla 'e' insira a hora da data, apenas escreva um pequeno trecho Lisp para gerar a string e vinculá-la à tecla e. Feito.

Isso também permitirá que você realmente USE o que aprender em uma configuração diária, se acontecer de você usar um editor simples durante o dia.

    
por 25.11.2010 / 20:51
fonte
3

Se você estiver desenvolvendo em um Mac, tente Clozure CL . Ele vem com um IDE que possui pressionamentos de teclas compatíveis com o Emacs e há uma ponte para o Objective C para que você possa gravar aplicativos Cocoa.

Além disso, li Practical Common Lisp, mas achei o Lisp bem-sucedido útil bem.

Finalmente, alguma paciência de sua parte será recompensada. Produtividade e pequenas vitórias virão rapidamente, mas a grande vitória pode demorar um pouco.

    
por 22.11.2010 / 15:04
fonte
2

Eu tenho uma cópia do ANSI Common Lisp aqui da minha mesa. Eu a aprendo a cada dois anos e faço alguns capítulos, depois fico preso em alguns exercícios e a lista de prioridades cai. Isso provavelmente diz mais sobre mim do que o livro. O livro parece totalmente competente ...

    
por 26.11.2010 / 00:07
fonte