Pergunta

Estou curioso sobre como .NET irá afectar as aplicações Python e Ruby.

As candidaturas serão escritos em IronPython / IronRuby ser tão específico para o ambiente .NET, que será essencialmente tornar plataforma específica?

Se eles não usam qualquer um dos recursos .NET, então qual é a vantagem de IronPython / IronRuby sobre os seus homólogos não .NET?

Foi útil?

Solução

Eu não posso dizer nada sobre IronRuby, mas a maioria das implementações de python (como IronPython, Jython e PyPy) tentar ser o mais fiel à implementação CPython possível. IronPython está rapidamente se tornando um dos melhores neste aspecto, porém, e há uma grande quantidade de tráfego no Planeta Python sobre isso.

A principal coisa que vai incentivar os desenvolvedores a escrever código que é diferente do que eles iriam escrever em CPython é a falta de C módulos de extensão como NumPy (Este é um problema no Jython e PyPy também).

Um projeto interessante para manter o seu olho é IronClad, que vai deixar você chamar módulos de extensão C de dentro IronPython. Esta deve, eventualmente, significa que você pode desenvolver código sob CPython, utilizando quaisquer módulos que você gosta, e ele será executado sem modificações no IronPython.

http://www.resolversystems.com/documentation/index.php/Ironclad

Assim, para responder às suas perguntas:

Deve ser fácil o suficiente para escrever aplicações IronPython que o trabalho em CPython bem, mas eu provavelmente têm como objectivo ir o contrário: programas CPython que o trabalho em IronPython também. Dessa forma, se ele não funcionar, então é mais provável que seja um bug conhecido com uma solução alternativa conhecida.

A vantagem de IronPython et al existente é que eles fornecem implementações alternativas da linguagem, que são, por vezes, útil para detectar erros em CPython. Eles também fornecem métodos alternativos para implementar seus aplicativos Python, se por algum motivo você se encontra em uma situação (como o Silverlight), onde distribuir a implementação CPython com sua aplicação não é apropriada.

Outras dicas

aplicativos serão escritos em IronPython / IronRuby ser tão específico para o ambiente .NET, que será essencialmente tornar plataforma específica?

IronRuby atualmente vem com a maior parte do núcleo rubi biblioteca padrão, e suporte para pedras de rubi.

Isso significa que ele irá suportar praticamente qualquer app ruby ??nativa que não depende de extensões C.
O outro lado é que será possível escrever aplicações Ruby nativas em IronRuby que não dependem da CLR, e aqueles será portátil para MRI.

ou não as pessoas optar por criar ou usar extensões para seus aplicativos usando o CLR é a mesma questão de saber se as pessoas criam ou extensões de uso C para MRI - um não é mais portátil do que o outro

.

Há um lado a questão de ", porque é muito mais fácil criar extensões IronRuby em C # que é para criar extensões CRuby em C, as pessoas vão criar extensões de onde deveriam estar aderindo ao código ruby ??nativa? ", mas isso é totalmente subjetivo.

Em toda a embora, eu acho que qualquer coisa que torna a criação de extensões mais fácil é uma grande vitória.


Se eles não usam qualquer um dos recursos .NET, então qual é a vantagem de IronPython / IronRuby sobre os seus homólogos não .NET?

  1. Performance: IronRuby já mais rápido para a maior parte do que MRI 1.8 é, e não está muito longe MRI 1,9, e as coisas só vão melhorar no futuro. Eu acho que python é semelhante a este respeito.

  2. Implantação: que as pessoas mencionados, a execução de um cross-platform rubi nativa trilhos aplicativo dentro do IIS é uma proposta atraente para alguns desenvolvedores baseados em Windows, uma vez que lhes permite uma melhor integração com servidores existentes / infraestrutura de gerenciamento / etc

  3. Estabilidade: Enquanto MRI 1.9 é muito melhor do que 1,8 foi, eu não acho que ninguém poderia discordar que CLR tem um coletor de lixo melhor muito e tempo de execução de base de C rubi faz

  4. .

IronPython / IronRuby são construídos para o trabalho na máquina virtual .net, então eles são como você diz essencialmente plataforma específica.

Aparentemente, eles são compatíveis com Python e Ruby, desde que você não use qualquer um dos .NET Framework em seus programas.

Se você criar uma biblioteca ou quadro, as pessoas podem usá-lo em .NET com o seu código .NET. Isso é muito legal para eles, e para você!

Ao desenvolver um aplicativo, se você usar o .NET instalações com abandono então você perde "cross-platformity", que nem sempre é um problema.

Se você quebrar esses usos com uma API interna, você pode substituir as implementações .NET depois com puro-Python, envolto C (para CPython) ou Java (para Jython) mais tarde.

De acordo com a página Mono, IronPython é compatível com a implementação do tempo de execução .Net da Mono, então executáveis ??deve funcionar tanto em Windows e Linux.

Você responder à sua primeira pergunta com o segundo, se você não usar qualquer coisa de .Net apenas as libs originais fornecidos pela implementação da linguagem, você poderia interpretar sua py * ou * .rb com outra implementação e ele deve funcionar.

A vantagem seria se o seu .NET compras normalmente você tomar cuidado de ter a estrutura certa instalado na máquina cliente etc ... bem, se você quiser python ou código Ruby, agora você precisa para suportar outra necessidade "framework" para distribuir instalar, cuidar da versão problema etc ... Portanto, há 2 vantagens, utilizando .Net poder quadro dentro de outro idioma + manter a distribuição / manutenção mais simples possível.

Seria legal para executar Rails / Django sob o IIS em vez de soluções do tipo Apache / Mongrel

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