Pergunta

Bem, depois de um longo tempo escrevendo programas .net em C #, comecei a sentir-se irritado e frustrado sobre tudo o que lixo sintática que vem com linguagens de tipagem estática. Agora eu quero mudar a linguagens digitadas dinamicamente, que tira proveito da CLI. Então eu procurei um pouco ao redor e eu não gostei do que vi. A primeira vez que olhei para IronPython. Mas os sente projeto desorganizado, ele simplesmente não parecia bem. Então eu ouvi sobre Boo. Eu gostava vaia do, o ideal e tudo, mas ele meio que se sente como o projeto está parado. Então eu ouvi de IronRuby, mas o projeto ainda está em beta, e por isso decidi esperar até que ele fica mais maduro.

Assim como eu não poderia encontrar um bom CLR compatível linguagem dinâmica, estou pedindo a vocês o que você (você) uso?

Uma vez que as pessoas começaram a perguntar o que é a razão para não escolher IronPython. Bem, a razão é, como afirmei anteriormente, parece desorganizado. Por quê?

1- A página inicial aponta para outra página no CodePlex, a página deve ser limpo e apenas apontar as vantagens de IronPython, pegue a página IronRuby como exemplo http://www.ironruby.net/ sua essas coisas peles linguagem developent do usuário (mesmo que o usuário tem que svn acesso do IronRuby usá-lo antes). Que tipo de problemas IPython estava tentando addres quando foi criado. Existe uma página com esse tipo de informação? Bem, a página está lá, mas a sua escondido no 'Mais informação Página' entre um monte de links sem sentido para artigos. Na página a sua à vista clara nomeado como Manifesto http://boo.codehaus.org/BooManifesto.pdf .

Há mais, mas o sentimento que eu tenho é que IPython é apenas um intérprete caseira, apesar da qualidade que ele pode realmente ter. Senti que era mais seguro para baixar Boo e usar IronPython (mas não se preocupe Microsoft Eu também tinha baixado IPython).

Sobre do Pato-Digitação e Boo tipagem estática ambos parece funcionar bem para mim.

Foi útil?

Solução

Eu ainda usaria Boo . Eu não sei por que você acredita Boo foi interrompido. Desenvolvimento, por vezes, parece lento, mas há várias pessoas trabalhando no momento correções de bugs como demonstrado por essa lista de problemas encontrados recentemente fixos (bugs) .

Para aqueles não familiarizados com Boo, é muito semelhante ao Python, mas inclui coisas que Python não (como string de interpolação e sintática macros ). Você pode compilar programas vaia ou usar Boo através da "Shell interactiva Boo" booish .

A propósito, eu não gostava IronPython ou quando eu olhei para ele um par de anos atrás. Para mim, parecia que uma porta reta do Python para o CLI, mas tanto quanto eu poderia dizer que não incluem novas funcionalidades desenvolvimento típico .NET requer.

Editar : IronPython parece ter progredido desde que eu olhei para ele (graças para Curt apontar isto). No entanto I não se preocuparam em olhar para IronPython novamente desde que eu encontrei Boo.

Outras dicas

Em termos de usabilidade prático IronPython vai ser o seu melhor aposta no momento.

Porque as pessoas estão sugerindo Boo? É uma linguagem de tipagem estática, que não é o que esta questão está pedindo. Sim, eu sei que tem tipagem pato opcional, mas a informação realmente se Boo-relacionado é aceitável para o autor pergunta então a questão deve realmente ser editado para deixar isso claro.

Em relação IronPython, você disse que não gostava dele, mas não há realmente nenhuma resposta que posso dar a comentários críticos que são tão vagos:)

Como alternativa, eu sugiro que você dê uma olhada CPython . Alguns pontos:

  • Você pode construir arquivos .exe com py2exe e outras ferramentas.
  • Muito maior acesso a 3rd-party bibliotecas e frameworks Python
  • O acesso a APIs do Windows via pywin32
  • extensão Python escrito em C são utilizáveis ??(ao contrário de IronPython, embora existam esforços em andamento para melhorar esta situação )

Você vai achar que você realmente não precisa de .NET para a maioria das coisas. Claro que isso tudo depende da sua aplicação. Para integração com código .NET existente, então, obviamente, você tem que usar IronPython.

Você diz que quer "dinâmico", mas se a motivação é apenas para evitar "tudo o que lixo sintática", você deve ter um olhar para F # . É estaticamente digitado, mas tem a sensação de luz sintaxe de uma linguagem dinâmica, bem como um modo de (circular REPL) interativo.

Eu concordo com o seu sentimento de que IronPython parece desorganizado, mas tenho vindo a usá-lo para (pequeno) projetos e eu tenho sido muito feliz com ele até agora.

Se você não viu ainda, você deve verificar se IronPython estúdio .

Eu fui por um caminho similar. Check-out Boo, dotLISP, IronPython, etc.

Eu recomendo IronPython. Mas se você já não tem qualquer experiência Python, então você provavelmente vai aprender núcleo Python mais rápido pela carga CPython e usando isso para os exemplos e tutoriais.

Depois de ter compreensão CPython, IronPython vai ser muito mais fácil de entender. Claro, você ainda precisa entender alguns C # e ter acesso à documentação do .NET SDK. Sem ele, IronPython é extremamente difícil conseguir coisas úteis feitas com.

Você também pode dar uma olhada em linguagem Fan . Não é pura dinâmica, é uma mistura de ambos estático e dinâmico. E como a maioria das línguas mais recentes, é OO pura com mistura de funcional nele. Ele também executado em ambos plataforma JVM e CLR.

Sintaxe sábio é mais perto de C # com um monte de sintaxe açúcar assim que tipo de olhar como C # misturar-se com Ruby / Python.

Uma vez que a língua é novo, apenas 3 anos de idade, seu desempenho não é estelar ainda.

Atualização 21-Feb-2014: Fan tinha mudado seu nome para Fantom

Dê uma olhada Clojure . A versão CLR ainda está nos estágios iniciais, mas você provavelmente poderia obter a versão java trabalhando em .net via IKVM

... lixo sintática que vem com linguagens de tipagem estática ...

Se a sua preocupação é lixo sintática, então você pode também como de verificar linguagens de tipagem estática com a inferência de tipos, principalmente F # .

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