Lisp no mundo real

146

Eu experimentei o Lisp (na verdade, Scheme) e achei uma linguagem muito bonita sobre a qual estou interessado em aprender mais. No entanto, parece que o Lisp nunca é usado em projetos sérios, e eu não o vi listado como uma habilidade desejada em qualquer anúncio de emprego. Estou interessado em ouvir alguém que tenha usado o Lisp ou o tenha visto usado no "mundo real" ou que saiba se é considerado uma linguagem puramente acadêmica.

titaniumdecoy
fonte
1
@titaniumdecoy: Depois de descobrir o Clojure e não ter experiências anteriores nas linguagens do estilo Lisp, adicionei a tag Clojure para quem procura discursos no Lisp. :)
Ande Turner 6/10/08
1
@titaniumdecoy: Clojure é um Lisp decendant de que é executado na JVM e é capaz de utilizar APIs escritas em Java
Ande Turner
12
Eu não aprenderia o Lisp como uma maneira de melhorar sua carreira, porque não vai. Aprenda a torná-lo um programador geral melhor, por todos os meios.
10139 skaffman
13
Na lista de discussão Clojure, frequentemente recebemos histórias de sucesso do setor de pessoas que usam o idioma.
Rayne
42
@skaffman: mas isso não ajudará a melhorar sua carreira?
Erik Forbes

Respostas:

88

Franz, Inc. fornece uma lista inesgotável de histórias de sucesso em seu site. Contudo:

Por favor, não assuma que o Lisp é útil apenas para Animação e Gráficos, IA, Bioinformática, B2B e E-Commerce, Mineração de Dados, aplicativos EDA / Semicondutores, Sistemas Especialistas, Finanças, Agentes Inteligentes, Gerenciamento de Conhecimento, CAD Mecânico, Modelagem e Simulação, Linguagem natural, otimização, pesquisa, análise de risco, agendamento, telecomunicações e criação na Web, apenas porque essas são as únicas coisas que eles listaram. - Kent Pitman

Podemos encontrar outras histórias de sucesso aqui:  http://lisp-lang.org/success/

e uma lista de empresas atuais usando o Common Lisp: https://github.com/azzamsa/awesome-lisp-companies

Matthias Benkard
fonte
41
Essa sinopse parece um mantra muito vazio para mim. Claro, pode estar por aí nessas áreas, mas principalmente como código legado. Na minha experiência na vida real, o Python, combinado com C / C ++ alterado, substituiu muito o Lisp como a (s) linguagem (s) de prototipagem rápida de escolha para hackers pragmáticos.
Johan Kotliński
30
@kotlinski onde está a evidência? quando você generaliza demais o setor, está falando sobre a média, não sobre as melhores partes dela. histórias de sucesso quase sempre seguem tecnologias / idéias distintas e não tão comuns.
Luka Ramishvili
Mais aqui: lisp-lang.org/success (lindamente apresentado) e aqui: empresas que usam o Common LIsp .
Ehvince
54

O elisp do Emacs conta? Esse é o uso mais "do mundo real" com o qual estou familiarizado (embora não tenha certeza de que o Emacs também seja "mundo real").

eschercycle
fonte
Não, mas vimsim;). Infelizmente (ou talvez felizmente), ninguém escreveu um software sério vimscript.
new123456
25

como uma pequena startup, criamos algo que algumas pessoas chamam de "servidor de aplicativos". mas, na verdade, é apenas um monte de bibliotecas lisp comuns integradas para conectividade sql e aplicativos da web. alguns detalhes estão disponíveis na página do projeto cl-dwim

usando isso, desenvolvemos e operamos um aplicativo da web para o governo húngaro que coleta dados dos governos locais e calcula a parte relevante do orçamento do país. este é o segundo orçamento que estamos planejando agora.

possui cerca de 4000 usuários e é executado em um cluster de computadores.

a partir da "linguagem acadêmica": estamos brincando com coisas como continuações persistentes para modelagem de processos de negócios. é algum código lisp aleatório com algumas primitivas relacionadas ao processo extras e algumas restrições. ele pode parar em pontos aleatórios no código e adormecer (ser confirmado no banco de dados) enquanto aguarda algum evento externo.

é prático ou acadêmico? você decide... :)

Attila Lendvai
fonte
Uau! Pensei totalmente que todo software usado pelo governo fosse escrito básico, no máximo, considerando o quanto a maioria deles é ruim. Isso ainda está em uso?
RR
5
é claro que não ... fomos descartados depois que o projeto foi projetado, provado ser viável e dinheiro / atenção suficientes foram alocados. uma empresa maior e bem conectada assumiu o controle e escreveu sua própria versão em java. um boato interessante é que eles continuaram executando nossa base de código por anos. eu ajudei-los com um dia de consultoria ...
Attila Lendvai
22

Paul Graham usou e escreveu sobre a ViaWeb que foi escrita em LISP

Leia sobre isso aqui - superando a média

epatel
fonte
4
Isso não é realmente um bom exemplo, eles fecharam os negócios anos atrás
1800 INFORMAÇÃO
9
BTW, posso apenas acrescentar que acho que Paul é ilusório nesse caso: não foi o LISP que lhes deu vantagem, era apenas ser inteligente e prestar atenção. Eles poderiam ter tido sucesso com o VB se essa fosse a única ferramenta disponível.
Jeff
23
Eles não fecharam os negócios, foram comprados pelo Yahoo. Grande diferença, pelo menos para os desenvolvedores. :-)
Head Geek
18
@ 1800: Ele só "foi jogado no chão" depois que o Yahoo o possuiu e o reescreveu em outro idioma, então pare de pensar.
Wfarr 05/10/08
6
@ 1800: Esqueça o que Matthias disse, acho que é bem engraçado. Sua afirmação de que "não houve outros exemplos significativos de LISP sendo usados ​​no mundo real" implica diretamente que você é onisciente. Bravo!
Ali
12

Um projeto de código aberto bastante recente que ainda desfruta de atividades de desenvolvimento consistentes e consideráveis ​​é o LilyPond .

É um programa de notação musical que utiliza como entrada um arquivo de texto fácil de escrever e o converte em belas partituras (arquivos pdf). Oferece todos os tipos de maneiras de mexer com a saída, se você quiser. Pode até produzir arquivos midi com um som decente. Eu o uso sempre que preciso produzir partituras agradáveis ​​que outros músicos leiam. Eu acho que é melhor que Finale e é grátis !

Na categoria comercial, há também o Igor Engraver da Notehead . Infelizmente, o site não permite que eu publique um link direto para a página que fala sobre Lisp, então vá para downloads e procure na parte inferior um link "Lisp".

Há também a Naughty Dog (uma empresa de jogos de computador) que usa Lisp em seus jogos. Este artigo fala sobre isso e até mostra algum código.

E há muitos outros que foram mencionados e vinculados, mas esses são os principais que ressoam comigo (sendo um compositor / programador / jogador / ...).

Galghamon
fonte
1
Como Schemer, é interessante e inspirador ler a parte do manual do LilyPond que explica como o Scheme se tornou parte do LilyPond. Costumava ser inteiramente em C ++, mas eles descobriram que precisava ser mais programável pelo usuário e conseguiram resolver esse problema reescrevendo partes dele no Scheme e construindo em um intérprete do Scheme que dá ao usuário acesso ao LilyPond internos.
Lindsey Kuper
10

Se eu iniciasse agora meu próprio projeto de software principal, tomaria minha decisão de idioma com base nos critérios acima. Claro, eu amo o Lisp, o CLOS é incrível, rochas lexicais reais, as macros do Lisp são muito legais (quando usadas conforme as instruções) e, pessoalmente, eu realmente gosto da sintaxe do Lisp. [...] Mas levaria muito, ou exigiria circunstâncias especiais, para me convencer a escolher o Lisp para um grande projeto de software, se eu estivesse encarregado de fazer a escolha. - Dan Weinreb

Ólafur Waage
fonte
Direito - então desfrutar de não ser capaz de contratar alguém :)
Jeff
@ Jeff: "Mas levaria muito , ou exigiria circunstâncias especiais , para me convencer a escolher o Lisp para um grande projeto de software". É um ponto contra o Lisp.
JFS
de onde é essa citação? pesquisando por blocos de texto só rende este post muito
Você deve clicar em: "repita a pesquisa com resultados omitidos". A citação é de: discuss.fogcreek.com/joelonsoftware/…
Chris Jester-Young
5
Felicidades. Devo dizer que esta citação é mais forte do que realmente é, fora do contexto. o weinreb agora está trabalhando no ITA e postando blogs sobre lisp entre outras coisas; Eu me pergunto como e se isso pode ter influenciado sua opinião.
10

Alguns mais recentes:

Os três primeiros foram escritos usando Weblocks, uma estrutura da Web de CL. Wigflip e Clutu usam puro Hunchentoot.

Agora obtenha codificação! :)

Leslie P. Polzer
fonte
10

O Telescópio Espacial Hubble está programado usando as ferramentas de planejamento Lisp. O ônibus espacial era. O telescópio Webb será. A empresa em que escrevo a Lisp analisa bilhões de dólares em sinistros de seguros de saúde e tem crescido cerca de 30% ao ano, mesmo durante a recessão. Fomos comprados por uma grande empresa e um de nossos programadores comparou (de fato aprimorou) a saída do software (grande empresa) para analisar as reivindicações do Medicare, começando do zero, sozinho, em um ano. (código da empresa enorme), não no Lisp, levou 6 anos e vários programadores. O problema, em termos de carreira, é que muitos escutam as discussões sobre "muitos parênteses tolos e irritantes" e assim por diante. A maioria dos gerentes não "entende" e prefere ter um projeto em uma linguagem familiar o suficiente para poderem microgerenciar. Eles pensam "

O prisioneiro
fonte
9

Acredito que o Autocad possui extensões que usam o Lisp para estender o produto. Veja AutoLISP .

Alex Miller
fonte
Corrigir. Também implementa o ActiveX - é bastante poderoso e o próprio AtoDesk o usa para escrever comandos 'internos'. É interpretado no ObjectARX - C ++, basicamente.
CAD cara
8

Existem muitas empresas, projetos e produtos que usam o Lisp em uma variedade de funções - trabalhei em várias delas.

Existem dois pontos relevantes:

  1. talvez você nunca saiba que a sua mais recente peça eletrônica de consumo foi construída com, ou mesmo programada, no Common Lisp, ou que algum serviço que você usa é alimentado por um servidor Lisp. Seria incorreto concluir que o Lisp é "nunca usado".

  2. … E, como muitos domínios, esses trabalhos nunca apareceram no Monster.com. Só porque você nunca viu uma vaga de emprego para isso, não significa que não haja oportunidades necessárias para o Lisp ou a ferramenta certa para o emprego.

Rico
fonte
Então, onde é que aparecem os postos de trabalho? Eu tenho tentado resolver isso sozinho.
Charlie Flowers
2
Por experiência: listas de discussão, mala direta pessoal de empresas e recrutadores, menções pessoais, grupos de usuários e similares.
Rich
1
obrigado. Parece que você está dizendo a mesma coisa que li em outro lugar ... que o mundo Lisp é uma comunidade pequena, e você pode tirar vantagem disso contribuindo e se tornando conhecido nessa comunidade, e essa é provavelmente a melhor maneira de obter o Lisp empregos. Você concorda?
Charlie Flowers
5
Sim. Além disso, essa é a melhor maneira de conseguir emprego, ponto final. Demonstre suas habilidades, conheça pessoas e torne-se conhecido.
Rich
8

O sistema de plug-in do GIMP é baseado em Scheme, acredito. Não sei se isso é completamente "mundo real", mas parece ser uma aplicação prática do Lisp, no mínimo.

Tikhon Jelvis
fonte
6

Procure ACL2 . É um mecanismo de lógica formal baseado em lisp que foi usado para vários projetos do "mundo real", como métodos formais em segurança de software e provas de correção do hardware de ponto flutuante.

BCS
fonte
Este é um software incrível.
User37248 09/03/09
6

Se meus planos derem certo, todos usaremos o Scheme daqui a cinco anos! ; p

leppie
fonte
Meus planos são provavelmente muito semelhantes: 1) Faça uma biblioteca chocante no topo do esquema (na metade do caminho agora). 2) Teste a biblioteca escrevendo programas interessantes nela (1 em baixo, faltam mais alguns). 3) Abra a biblioteca de código-fonte (já concluída, mas de maneira muito casual). 4) ... 5) O Lisp se torna a ferramenta natural para um trabalho no trabalho.
Ali
3
Estou puxando por você. Mas você só tem 2 anos e meio! Espero que você esteja no caminho certo.
Charlie Flowers
10
Oi. 5 anos acabaram.
Karol S
1
Tarde e melhor que nunca!
Loïc Faure-Lacroix
1
@ LoïcFaure-Lacroix Ainda tentando! : D
leppie
6

Fiquei bastante impressionado quando descobri que o PRISM («O projeto Prism é um projeto de longo prazo para a construção de ferramentas de software para o planejamento de radioterapia, incluindo ferramentas de inteligência artificial e sistemas de simulação manual») está escrito em Common Lisp.

No meu trabalho, estou escrevendo um software que usa DICOM e devo dizer que escrever uma boa implementação de DICOM é uma tarefa difícil. Em seu relatório, eles descrevem como o Common Lisp permite criar uma boa implementação DICOM que é melhor (pelo menos em alguns aspectos) do que outra implementação com menos esforço.

dmitry_vk
fonte
6

Lisp é usado na composição musical algorítmica do mundo real com a biblioteca Common Music . As notas de Rick Taube, do Metalevel, são um ótimo texto introdutório para o assunto, com vários exemplos em Lisp para compor. Veja o diretório de exemplos aqui e uma cópia do texto aqui .

Curtis
fonte
5

Bem, dificilmente é mainstream, mas eu uso o lisp para o máximo do meu código de pesquisa que é gerenciável. É de longe a melhor linguagem que encontrei para equilibrar dinamismo e expressividade, enquanto ainda gera um desempenho decente para números, etc.

simon
fonte
5

O Google App Inventor está escrito em Esquema

shikhar
fonte
5

Acabei de perceber agora que o Maxima , um programa para álgebra simbólica, está escrito em Common Lisp. Estou usando isso há algum tempo e acho que também é um exemplo muito bom da vida real.

Jan Stolarek
fonte
3

Lisp tentou o salto para velocidade da luz no início dos anos 80. Antes dos PCs, havia "Lisp Machines" comercialmente produzidas, que se parecem muito com as estações de trabalho modernas, mas que eram lisp "até o fim". O hardware Lisp acabou perdendo para a Intel (como tudo o resto). O software Lisp acabou perdendo para o C / C ++. Existem várias teorias sobre por que tudo isso é assim. http://www.andromeda.com/people/ddyer/lisp/

ddyer
fonte
2

A linguagem de programação de esquema é usada como linguagem de script pelo FLUENT Flow Modeling Software (dinâmica de fluidos computacional, CFD).

jfs
fonte
2

Para o aplicativo AutoCAD, o AutoLISP / Visual LISP é muito usado em projetos reais e existe uma grande comunidade de usuários.

Jimmy Bergmark - JTB World
fonte
2

Vejo que algumas pessoas já o mencionaram, mas o lisp é amplamente usado no desenvolvimento personalizado do Autocad. O Autocad inclui um intérprete lisp embutido. É uma das maneiras mais simples de estender o produto e fornece a capacidade de aumentar rapidamente sua produtividade.

Nenhuma compilação é necessária, no lado do usuário, e 1 ou mais expressões de lisp de linha podem ser inseridas na linha de comando e executadas imediatamente no desenho. Para designers e desenhistas dispostos a dar um pequeno passo no aprendizado do básico do lisp, isso pode proporcionar uma enorme vantagem na produtividade.

O Autocad fornece várias outras maneiras de personalizar seus produtos; ObjectARX (C ++), VB, C #, etc. A interface lisp é de longe a mais fácil de aprender e implementar. E a maioria dos outros ambientes de desenvolvimento usa o lisp de alguma forma.

O intérprete lisp foi disponibilizado em uma versão muito antiga do Autocad e foi chamado de Variáveis ​​e expressões. Era bastante limitado, mas foi um sucesso tão grande para os usuários que funcionalidades adicionais foram rapidamente adicionadas. Um IDE visual completo foi posteriormente (na versão 2000, eu acho).

Detestaria adivinhar quantos milhões (bilhões?) De linhas de código lisp estão disponíveis para o Autocad. Uma pesquisa no google em "autocad .lsp" retorna 2,3 milhões de ocorrências.

Ok, digitando o suficiente, está de volta ao trabalho para mim, escrevendo mais lisp para o meu projeto atual :)

bluesixty
fonte