Pergunta

Então, eu estou escrevendo algum tipo de um programa de estatísticas (na verdade eu estou redesenhando-lo para algo mais elegante) e eu pensei que eu deveria usar uma linguagem que foi criado para esse tipo de coisa (lidando com enormes de dados de estatísticas, as conexões entre eles e algum tipo de programação genética / neural).

Para dizer a verdade, eu só quero uma desculpa para mergulhar em lisp / Smalltalk (não são Smalltalk / lisp / clojure o mesmo? - como Python e Ruby -semantics-wise?) Mas eu também quero uma linguagem para ser facilmente compreendida por outras pessoas que gostam da linguagem BASIC (é por isso que eu não escolhi LISP - ainda: D).

Eu também verificado Prolog e parece uma linguagem muito legal (fácil de fazer relações entre dados e mais fácil do que Lisp), mas eu gostaria de ouvir o que você pensa.

Thx

Edit: Eu sempre confundir Lisp comum com Smalltalk. Desculpe por colocar esses dois langs juntos. Também o que eu quis dizer com " outras pessoas que gostam da linguagem BASIC " é que eu não prefiro uma linguagem com a semântica como Lisp (para pessoas sem experiência CS) e acho Prolog um pouco pouco mais intuitivo (mas essa é a minha opinião depois eu só mexeu um pouco com os dois).

Foi útil?

Solução

Existe alguma razão particular para não usar R? É uma espécie de uma compra construção vs. ( ou neste caso download) decisão. Se você estiver fazendo um cálculo estatístico, R tem muitos pacotes da prateleira. Estes incluem muitas bibliotecas e interfaces para vários tipos de fontes de dados. Há também bibliotecas de interface para a incorporação de R em outros idiomas como Python, para que você pode construir uma aplicação híbrida com um GUI em Python (por exemplo) e um motor núcleo cálculo usando R.

Neste caso, você poderia reduzir o esforço necessário para a implementação e acabar com uma aplicação mais flexível.

Se você tem o seu conjunto coração em aprender outra língua, por todos os meios, fazê-lo. Há vários bons livre (alguns como no discurso, algumas como a cerveja) implementações de Smalltalk, Prolog e LISP.

Se você está colocando uma interface de usuário no sistema, Smalltalk pode ser a melhor opção. Se você deseja criar grandes conjuntos de regras como parte de sua aplicação, Prolog é projetado para este tipo de coisa. Várias pessoas têm escrito sobre a ephiphany LISP que influencia a maneira como você pensa sobre programação, mas eu realmente não posso atestar isso por experiência -. Eu só realmente utilizados AutoLISP para escrever scripts de automação em AutoCAD

Outras dicas

Com o risco de ofender alguns, eu tenho uma reconciliação momento difícil " facilmente compreendida por outras pessoas que gostam da linguagem BASIC " com qualquer um dos idiomas que você mencionou. Isso é não pretende ser uma crítica, mas como uma observação que cada um dos idiomas que você menciona tem um estilo e linguagem natural que é completamente diferente da de BASIC.

  • Smalltalk - OO puro de baixo para cima, geralmente (por exemplo rangido) acoplado com um meio ambiente integrado que é simultaneamente o IDE e o tempo de execução. IOW você entra no Smalltalk VM e trabalho dentro , em vez de apenas escrever um texto que é "código fonte".

  • LISP - muito mais perto de programação funcional (embora com conotações imperativas); a notação de prefixo é a primeira barreira para a maioria das pessoas que "como" outras línguas, mas o conceito e uso de macros é um muito mais substancial.

  • Clojure -. A combinação de LISP, OO, e JVM integração torna este ainda menos BASIC-like

  • Python e Ruby - Eu fixo-los juntos (com o risco de novos fãs irritantes de qualquer ;-) porque eles são ambos linguagem OO com notações distintos que levarão um estranho um pouco de curva de aprendizagem. O uso de recuo somente para o assentamento de controle em Python e Perl-como uso de caracteres especiais em Ruby são muitas vezes pontos da denúncia pelos recém-chegados. Embora ambos podem ser escrito em um estilo imperativo, que seria considerada não-padrão por usuários experientes.

  • Prolog - Este é o mais diferente de BASIC de todas as línguas mencionadas. Todas as outras línguas que você mencionou pode ser (ab) usado em um estilo semi-processual, mas que é essencialmente impossível em Prolog. Ela exige uma compreensão completa de, e conforto, com, recursão para fazer qualquer coisa não-trivial.

O código escrito com um "sotaque nativo" essencialmente todos esses idiomas (mas especialmente Prolog, IMHO) vai fazer uso de expressões e conceitos que estão fora da norma para programação BASIC convencional. Dito de outra forma, se você pegar um desses e de código, em seguida, escrever "com um sotaque BASIC" você praticamente desperdiçado os benefícios que a linguagem pode oferecer.

Eu acredito que todos eles são dignos de aprendizagem para os conceitos que podem ensinar (ou pelo menos reforçar, dependendo do seu plano de fundo). Mas a semelhança com Idioma X (para uma ampla gama de valores de X) não é o que você vai conseguir.

Eu posso te responder parcialmente

(não são Smalltalk / Lisp / Clojure o mesmo? - como Python e Ruby -semantics-wise)

Não, não é. Smalltalk é uma linguagem OO com passagem mensagem em vez chamadas de método. Lisp é Lisp ;-) Isso significa linguagem verdadeiramente funcional com o poderoso sistema de macro, suporte OO que nunca é visto em outros idiomas (em CL) e muitas características mais. O encerramento é Lisp-like linguagem sem muitos Lisp recursos, mas boa integração para JVM. Não é apoiar otimização de chamada de cauda, ??por exemplo. E Python ou Ruby são clássicos linguagens OO imperativo com alguma capacidade funcional limitada. Nota palavra limitado. Por exemplo, Guido não gosta de programação funcional e removeu algumas características funcionais na versão 2.5 e 2.6.

Se você familiarizado com a programação processual imperativo como em Python e você quiser mudar o seu paradigma que você deve fazer a sua decisão com cuidado.

Prolog é uma linguagem muito diferente. Pode ser muito difícil de entender, principalmente porque ele depende fortemente de recursão para fazer tarefas básicas. Se você está realmente disposto em seguida, dar-lhe um ir. Ele pode ser muito poderosa, pois permite Expess relacionamentos e resolver problemas complicados simplesmente, exemplos típicos são Torres de Hanói ou quicksort. Ele vai mudar a maneira de pensar, o que pode ser difícil se você está acostumado a linguagens imperativas.

Se você estiver interessado em Prolog, então há uma versão gratuita do Visual Prolog disponível eo versão comercial é um preço razoável.

É um tipo forte desdobramento do Prolog, portanto, não é a sua implementação clássica da língua, mas tem uma história respeitável - Borland comercializado o ancestral DOS nisso como Turbo-Prolog de volta no final dos anos 80.

Também é somente para Windows, mas pode ser usado para criar DLLs padrão do Windows para que você possa ligar seu código em um janelas 'normais' linguagem de programação. Eu nunca usei o pacote com raiva mesmo, mas eu fiz um par de cursos Prolog na Uni assim ter baixado-lo de vez em quando para brincar e olhar para possíveis usos e parece bastante sólida. Pode ser apenas o conjunto de engrenagens que você está procurando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top