<?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; Jython</title>
	<atom:link href="http://www.profissionaisti.com.br/tag/jython/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.profissionaisti.com.br</link>
	<description>Pra quem respira informação</description>
	<lastBuildDate>Fri, 10 Feb 2012 16:02:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<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 [...]]]></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>
		<item>
		<title>Programador Python aprendendo Java</title>
		<link>http://www.profissionaisti.com.br/2009/02/programador-python-aprendendo-java/</link>
		<comments>http://www.profissionaisti.com.br/2009/02/programador-python-aprendendo-java/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 22:23:03 +0000</pubDate>
		<dc:creator>Klaus Peter Laube</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jython]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.profissionaisti.com.br/?p=1340</guid>
		<description><![CDATA[Olá pessoal! Minhas aulas de Java começaram na faculdade. Para a minha surpresa estou até simpatizando com a linguagem&#8230; mas ainda assim, algumas coisas me fazem firmar o pé no Python. Segue um slide que solidifica os argumentos que eu defendo: Matando o Java e mostrando o Python. Há alguns mitos em relação ao Java [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1348" style="margin: 5px;" src="http://www.profissionaisti.com.br/wp-content/uploads/2009/02/jython.jpg" alt="jython" width="65" height="112" />Olá pessoal!</p>
<p>Minhas aulas de <a title="Saiba mais no site do Java no Brasil" href="http://www.java.com/pt_BR/" target="_blank">Java</a> começaram na faculdade. Para a minha surpresa estou até simpatizando com a linguagem&#8230; mas ainda assim, algumas coisas me fazem firmar o pé no <a title="Leia mais sobre Python no PTI" href="http://www.profissionaisti.com.br/tag/python/" target="_blank">Python</a>. Segue um slide que solidifica os argumentos que eu defendo:  <a title="Assista a apresentação" href="http://www.slideshare.net/osantana/matando-o-java-e-mostrando-o-python?type=presentation" target="_blank">Matando o Java e mostrando o Python</a>.</p>
<p>Há alguns mitos em relação ao Java x Python que talvez tenham que ser esclarecidos:</p>
<p><strong>PYTHON NÃO GERA BYTECODE<br />
</strong></p>
<p>O fator que faz do Java uma linguagem fantástica com certeza é a tal da <a title="Leia mais sobre JVM" href="http://www.java.com/pt_BR/download/faq/jvm.xml" target="_blank">JVM</a> (<em>Java Virtual Machine</em>). É ela quem &#8220;garante&#8221; que um programa em Java execute em &#8220;qualquer máquina do mundo&#8221;. Para isso, é necessário que o desenvolvedor Java compile seu código-fonte para um formato conhecido como &#8220;<a title="Leia mais sobre bytecode no Wikipedia" href="http://pt.wikipedia.org/wiki/Bytecode" target="_blank">bytecode</a>&#8220;, uma &#8220;língua&#8221; que a JVM interpreta toda vez que acessamos um arquivo compilado Java e traduz para o SO. Em passos:</p>
<pre><strong>Programador escreve -&gt; Compila -&gt; JVM lê o bytecode e interpreta -&gt; Programa Vive!</strong></pre>
<p>O Python também possui sua <em>Virtual Machine</em>. Oras, é uma linguagem interpretada! A diferença fundamental do Python para o Java neste aspecto é:</p>
<ul>
<li>Para executar ou desenvolver um programa em Python, é necessário somente o seu interpretador (nenhum <a title="Leia mais sobre JDK no Wikipedia" href="http://pt.wikipedia.org/wiki/Java_Development_Kit" target="_blank">Development Kit</a>, <a title="Leia mais sobre JRE no Wikipedia" href="http://pt.wikipedia.org/wiki/Java_Runtime_Environment" target="_blank">Runtime Environment</a> ou afins. E de lambuja você leva um interpretador interativo);</li>
<li>Quando um interpretador Python lê um arquivo <strong>.py</strong>, ele automaticamente gera um <strong>.pyc</strong>. Ou seja, automaticamente cria-se um bytecode que pode ser distribuído sem necessitar o fonte;</li>
<li>Geralmente, somente bibliotecas e módulos são compilados para bytecode. Isto não quer dizer que os arquivos principais (main) não possam ser compilados (podem sim);</li>
<li>Também é gerado um arquivo chamado <strong>.pyo</strong>. Trata-se de um bytecode otimizado sem comentários ou docstrigs.</li>
</ul>
<p>Em passos ficaria mais ou menos assim:</p>
<p>- Caso1 &#8211; sem o .pyc no path:</p>
<pre><strong>Programador escreve -&gt; Interpretador lê o fonte, gera bytecode e o interpreta -&gt; Programa Vive!</strong></pre>
<p>- Caso2 &#8211; com o .pyc no path e sem o .py:</p>
<pre><strong>Interpretador lê o bytecode e interpreta -&gt; Programa Vive!</strong></pre>
<p>Em ambiente de desenvolvimento, linguagens interpretadas são bastante efetivas pelo fato de que a cada alteração não se faz necessária a compilação do seu programa. No caso do Python, o interpretador faz isso para você ao mesmo tempo que está interpretando um .py. Além de claro, podermos acessar os recursos de um módulo através de seu interpretador interativo.</p>
<p><strong>fonte: </strong><a title="Leia sobre Ocultação de Códigos Python no Python Brasil" href="http://www.pythonbrasil.com.br/moin.cgi/OcultandoCodigoPython" target="_blank">http://www.pythonbrasil.com.br/moin.cgi/OcultandoCodigoPython</a></p>
<p><strong>JAVA É UMA LINGUAGEM UNIVERSAL, PYTHON NÃO</strong></p>
<p>Até certo ponto, esta afirmação é verdadeira (na parte de que Java é &#8220;universal&#8221;). Mas o interpretador do Python é escrito em C, e é de código aberto&#8230; logo, se sua arquitetura é capaz de entender um programa em C, é possível compilar o interpretador Python para a sua arquitetura e interpretar programas Pythonicos.</p>
<p>Mesmo assim, hoje possuímos interpretadores Python em todos os cantos. Inclusive, podemos rodar Python em cima da <em>JVM</em>&#8230; logo: se Java pode ser considerada uma &#8220;linguagem universal&#8221;, Python também pode.</p>
<p><strong>Fonte: </strong><a title="Inicie-se em Python no Python Brasil" href="http://www.pythonbrasil.com.br/moin.cgi/InicieSe" target="_blank">http://www.pythonbrasil.com.br/moin.cgi/InicieSe</a>, <a title="A Microsoft abraça o Python" href="http://br-linux.org/linux/node/2543" target="_blank">http://br-linux.org/linux/node/2543</a>, <a title="Leia mais sobre Python no Wikipedia" href="http://pt.wikipedia.org/wiki/Python" target="_blank">http://pt.wikipedia.org/wiki/Python</a>, <a title="Aprenda a extender o Python com C" href="http://www.flavioribeiro.com/v2.0/2009/01/14/extendendo-python-com-c/" target="_blank">http://www.flavioribeiro.com/v2.0/2009/01/14/extendendo-python-com-c/</a></p>
<p><strong>VOCÊ FICA RICO PROGRAMANDO EM JAVA, EM PYTHON NÃO</strong></p>
<p>A menos que você trabalhe para a <a title="Leia mais sobre a Google no PTI" href="http://www.profissionaisti.com.br/tag/google/" target="_blank">Google</a>, isto é bem verdade.</p>
<p>Pelo fato do Java ser a <a title="Ranking das linguagens de programação (jan/2009)" href="http://www.profissionaisti.com.br/2009/02/ranking-de-linguagens-de-programacao-jan2009/" target="_blank">linguagem mais utilizada no mercado</a>, seus usuários são muito bem remunerados. Já em Python, que não possui um &#8220;padrinho&#8221; como a <a title="Visite o site brasileiro da Sun" href="http://br.sun.com/" target="_blank">Sun</a> ou a <a title="Visite o site da IBM Brasil" href="http://www.ibm.com/br/" target="_blank">IBM</a>&#8230; este cenário é um pouco decepcionante. Mas lá fora: <a title="Visite o maior buscador de todos os tempos" href="http://www.google.com" target="_blank">Google</a>, <a title="Visite o site do Yahoo!" href="http://www.yahoo.com" target="_blank">Yahoo</a>, <a title="Visite o site da Nasa" href="http://www.nasa.gov/" target="_blank">Nasa</a> e até a <a title="Visite o site da Microsoft Brasil" href="http://www.microsoft.com/pt/br/default.aspx" target="_blank">Microsoft</a>; vem falando bem de Python&#8230;</p>
<p>Python é muito mais fácil de aprender que Java. E possui recursos poderosos como o Java. Então: &#8220;Se você quer ganhar dinheiro, use Java. Se você quer ter prazer programando, use Python&#8221;.</p>
<p><strong>JYTHON &#8211; A RESPOSTA PARA OS NOSSOS PROBLEMAS?</strong></p>
<p>Com o <a title="Visite o site oficial do projeto" href="http://www.jython.org/Project/" target="_blank">Jython</a>, podemos escrever programas Python que geram bytecodes para <em>JVM</em>s. Isto gera um diferencial pois, Python é mais fácil de escrever que Java. Mas Java é mais veloz que Python.</p>
<p>As duas linguagens juntas podem ser imbatíveis.</p>
<p>Humm&#8230; juntar o útil ao agradável?! Tentador não?</p>
<p><strong>Fonte: </strong><a title="Leia mais sobre Jython no Wikipedia" href="http://pt.wikipedia.org/wiki/Jython" target="_blank">http://pt.wikipedia.org/wiki/Jython</a>, <a title="Visite o site oficial" href="http://www.jython.org/Project/index.html" target="_blank">http://www.jython.org/Project/index.html</a></p>
<p>Enfim&#8230; o meu objetivo não é fazer nenhum &#8220;flame&#8221; e nem menosprezar o Java. Não há argumento algum que o tire do &#8220;trono&#8221; e que obscureça o seu sucesso.</p>
<p>Como desenvolvedor eu me sinto na obrigação de aprender Java, e como já disse&#8230; estou até simpatizando com a linguagem e fico feliz por estar me tornando um programador mais completo. Mas não consigo deixar que algumas informações imprecisas sobre o Python sejam transmitidas em prol do Java&#8230; isto eu não posso admitir até por ser um desenvolvedor Python.</p>
<p>E você?! Algum acréscimo ou correção?! Deixa a sua opinião!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.profissionaisti.com.br/2009/02/programador-python-aprendendo-java/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

