<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Profissionais TI - Pra quem respira informação &#187; IronPython</title>
	<atom:link href="http://www.profissionaisti.com.br/tag/ironpython/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.profissionaisti.com.br</link>
	<description>Pra quem respira informação</description>
	<lastBuildDate>Thu, 29 Jul 2010 19:37:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Python: Seja híbrido! Use dialetos</title>
		<link>http://www.profissionaisti.com.br/2009/03/python-seja-hibrido-use-dialetos/</link>
		<comments>http://www.profissionaisti.com.br/2009/03/python-seja-hibrido-use-dialetos/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 17:06:40 +0000</pubDate>
		<dc:creator>Klaus Peter Laube</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Jython]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=1466</guid>
		<description><![CDATA[Olá galera!
Venho tocando frequentemente no assunto Jython aqui no PTI e acho que já é hora de falarmos abertamente sobre outros dialetos conhecidos do Python.
Segundo o Wikipedia:
Um dialeto é a forma como uma língua é realizada numa região específica.
Python tem influência forte de linguagens como LISP, Smalltalk, Modula-3, Haskell, etc. Por ser uma linguagem de [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1646" class="wp-caption alignleft" style="width: 264px"><img class="size-medium wp-image-1646" src="http://www.profissionaisti.com.br/wp-content/uploads/2009/03/01104588500-300x213.jpg" alt="01104588500" width="254" height="180" /><p class="wp-caption-text">Seja híbrido!</p></div>
<p>Olá galera!</p>
<p>Venho tocando frequentemente no assunto <a title="Leia mais sobre Jython no PTI" href="http://www.profissionaisti.com.br/tag/jython/"><strong>Jython</strong></a> aqui no PTI e acho que já é hora de falarmos abertamente sobre outros dialetos conhecidos do <a title="Leia mais sobre Python no PTI" href="http://www.profissionaisti.com.br/tag/python/">Python</a>.</p>
<p>Segundo o <a title="Definição de Dialeto no Wikipedia" href="http://pt.wikipedia.org/wiki/Dialeto" target="_blank">Wikipedia</a>:</p>
<blockquote><p>Um dialeto é a forma como uma língua é realizada numa região específica.</p></blockquote>
<p>Python tem influência forte de linguagens como <a title="Leia mais sobre LISP no Wikipedia" href="http://pt.wikipedia.org/wiki/LISP" target="_blank">LISP</a>, <a title="Leia mais sobre Smalltalk no Wikipedia" href="http://pt.wikipedia.org/wiki/Smalltalk" target="_blank">Smalltalk</a>, <a title="Leia mais sobre Modula-3 no Wikipedia" href="http://pt.wikipedia.org/wiki/Modula-3" target="_blank">Modula-3</a>, <a title="Leia mais sobre Haskell no Wikipedia" href="http://pt.wikipedia.org/wiki/Haskell_(linguagem_de_programa%C3%A7%C3%A3o)" target="_blank">Haskell</a>, etc. Por ser uma linguagem de script, e com orientação a objetos forte, é possível criar desde scripts de configuração à frameworks robustas de uma forma uniforme e clara.</p>
<p>No caso de uma framework, temos à disposição uma camada de ferramentas. Alguns comportamentos são executados sem o &#8220;consentimento&#8221; do desenvolvedor (claro, se você entende a arquitetura da framework que usa com certeza sabe o que acontece), outros requerem uma intervenção mais direta. Mas acima de tudo, não deixamos de programar na linguagem.</p>
<p>No caso dos dialetos Python, temos uma camada de escrita Python que executa sobre a camada de recursos de um ambiente. Os dialetos Python que conheço são:</p>
<ul>
<li><a title="Leia mais sobre o CPython" href="http://wiki.python.org/moin/CPython" target="_blank">CPython</a>: É a implementação principal da linguagem. É desenvolvida e mantida por Guido van Rossum e sua comunidade;</li>
<li><a title="Leia mais sobre o Iron Python" href="http://wiki.python.org/moin/IronPython" target="_blank">IronPython</a>: É a implementação da linguagem para a plataforma .NET;</li>
<li><a title="Conheça o PyPy" href="http://codespeak.net/pypy/dist/pypy/doc/" target="_blank">PyPy</a>: É uma implementação de Python escrita em Python;</li>
<li><a title="Leia mais sobre o Jython" href="http://www.jython.org/Project/" target="_blank">Jython</a>: É uma implementação de Python para máquinas virtuais Java.</li>
</ul>
<h3>CPython: Um dialeto?</h3>
<p>CPython é a implementação de Python escrita em C. É a forma padrão de executar Python.</p>
<p>A máquina virtual que você possui aí é implementada nas especificações do CPython. Todos os recursos da linguagem estão alí, o que você escreve é só um documento Python que o interpretador irá ler, tentar entender e traduzir para o computador.</p>
<p><strong>Em outras palavras: </strong>É o interpretador Python compilado para a sua arquitetura, traduzindo diretamente suas instruções Python para comando de máquina.</p>
<h3>IronPython: Python para plataformas .NET</h3>
<p>Já no IronPython é possível escrever Python utilizando recursos da plataforma .NET. IronPython é escrito em C# e a forma de escrita do script é praticamente a mesma do CPython, o que muda são as bibliotecas que você têm à disposição.</p>
<p>Tem algumas <a title="Discussão sobre a performance do Python" href="http://groups.google.jo/group/python-em-portugues/browse_thread/thread/60f38a877e57ce0d/ab2fa3cc89aca47e" target="_blank">listas e fóruns</a> que chegam a mencionar que a performance do IronPython é <a title="Veja um comparativo" href="http://unethicalblogger.com/posts/r_tyler_ballance/comparing_ironpython_and_cpython" target="_blank">superior</a> a do CPython. Bom, como não sou usuário Windows não tenho como comprovar.</p>
<p><strong>Em outras palavras: </strong>O seu script Python será executado em .Net.</p>
<h3>Jython: Escrevendo Python para JVMs</h3>
<p>A mesma filosofia! Só que para Java.</p>
<p>Possuímos um interpretador específico que irá interpretar e gerar o bytecode para as máquinas virtuais do Java. É a sintaxe do Python acessando recursos do Java. Simples assim&#8230;</p>
<p><strong>Em outras palavras: </strong>Jython é um .class Java, ou seja, uma máquina virtual Python rodando sobre uma máquina virtual Java.</p>
<h3>PyPy: Python em Python?</h3>
<p>O PyPy é interessante&#8230; o interpretador é construído em RPython e não em C.</p>
<p>O RPython é um dialeto Python com uma série de restrições que permite criar de extensões para a linguagem até sistemas standalone. Um bom exemplo de uso é <a title="Flash Game em RPython" href="http://www.taniquetil.com.ar/py/chimp/chimp.html" target="_blank">escrever um jogo em Flash utilizando RPython</a>.</p>
<p><strong>Em outras palavras: </strong>É um interpretador Python feito em Python =)</p>
<p>No site oficial do Python, há uma <a title="Leia mais no Wiki do Python" href="http://wiki.python.org/moin/implementation" target="_blank">lista com mais dialetos</a>.</p>
<p>Até a próxima&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/03/python-seja-hibrido-use-dialetos/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
