<?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>PauloMotta.pro &#187; LINGUAGEM</title>
	<atom:link href="http://www.paulomotta.pro.br/tag/linguagem/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulomotta.pro.br</link>
	<description>&#34;Qualquer tecnologia suficientemente avançada é indistinguível da mágica&#34; - Arthur C. Clarke</description>
	<lastBuildDate>Tue, 10 Jan 2012 03:00:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Diferença nos tempos de execução</title>
		<link>http://www.paulomotta.pro.br/2011/06/17/diferenca-nos-tempos-de-execucao/</link>
		<comments>http://www.paulomotta.pro.br/2011/06/17/diferenca-nos-tempos-de-execucao/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 12:06:20 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[ARQUITETURA]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Ciências]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[PARALELISMO]]></category>
		<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=1413</guid>
		<description><![CDATA[Essa coisa de estudar paralelismo é legal porque faz a gente testar várias coisas em diferentes plataformas em busca de desempenho. Você sabia que o simples fato de ficar convertendo tipos de dados pode ocasionar uma perda de desempenho que dobra o tempo de execução da sua aplicação ? Se você fizer um programa em [...]]]></description>
			<content:encoded><![CDATA[<p>Essa coisa de estudar paralelismo é legal porque faz a gente testar várias coisas em diferentes plataformas em busca de desempenho. Você sabia que o simples fato de ficar convertendo tipos de dados pode ocasionar uma perda de desempenho que dobra o tempo de execução da sua aplicação ?</p>
<p>Se você fizer um programa em C que precise trabalhar com inteiros muito grandes vai usar long long int, que é um inteiro do tamanho de um double (você pode ver <a href="http://en.wikipedia.org/wiki/C_variable_types_and_declarations" target="_blank">aqui na wikipedia</a>). O resultado disso pode ser devastador e pode ser que valha a pena fazer tudo direto em double. É claro que se você optar por usar somente double terá que tomar cuidado com algumas operações matemáticas porque vão existir casas decimais.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2011/06/17/diferenca-nos-tempos-de-execucao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paródia de Let it be</title>
		<link>http://www.paulomotta.pro.br/2011/05/31/parodia-de-let-it-be/</link>
		<comments>http://www.paulomotta.pro.br/2011/05/31/parodia-de-let-it-be/#comments</comments>
		<pubDate>Tue, 31 May 2011 13:39:29 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Diversão]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[nerd]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=1387</guid>
		<description><![CDATA[Eu achei muito divertida, mas ainda não achei a versão com legendas. Como a tese tem me consumido vou deixar para colocar a letra aqui mais para frente.]]></description>
			<content:encoded><![CDATA[<p>Eu achei muito divertida, mas ainda não achei a versão com legendas. Como a tese tem me consumido vou deixar para colocar a letra aqui mais para frente.</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/1S1fISh-pag?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1S1fISh-pag?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2011/05/31/parodia-de-let-it-be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just in time com a linguagem Lua</title>
		<link>http://www.paulomotta.pro.br/2011/05/09/just-in-time-com-a-linguagem-lua/</link>
		<comments>http://www.paulomotta.pro.br/2011/05/09/just-in-time-com-a-linguagem-lua/#comments</comments>
		<pubDate>Mon, 09 May 2011 11:00:53 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[JIT]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[LuaJIT]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=1334</guid>
		<description><![CDATA[Uma das tecnologias mais legais que eu já usei foi o just-in-time (JIT). Para quem já usou uma linguagem interpretada sabe que o que pode deixar grandes frustrações é o tempo de execução, por outro lado é muito mais prático de testar o programa porque você escreve o texto e executa sem necessidade de processos [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das tecnologias mais legais que eu já usei foi o <em>just-in-time</em> (JIT). Para quem já usou uma linguagem interpretada sabe que o que pode deixar grandes frustrações é o tempo de execução, por outro lado é muito mais prático de testar o programa porque você escreve o texto e executa sem necessidade de processos de compilação que podem ser demorados.</p>
<p>Pois bem, andei experimentando a versão 2.0 beta do <a href="http://luajit.org/" target="_blank">LuaJIT</a> e fiquei impressionado, é realmente muito mais rápido, e o legal é que o seu programa Lua funciona igualzinho <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>É claro que tem que ter algum problema não é? E neste caso o que acontece é que a linguagem <a href="http://www.lua.org" target="_blank">Lua</a> tradicional existe para um conjunto muito maior de plataformas do que o LuaJIT, mas porque isso acontece? Porque o JIT nada mais é do que um compilador embutido, ou seja, quando interpreta o seu programa ele gera o código executável da máquina e isso permite que a sua aplicação escrita em uma linguagem interpretada execute como um programa escrito em linguagem compilada.</p>
<p>Para que isso seja possível você precisa ter programado na máquina virtual a geração de código para as diversas máquinas que existem no mercado e isso, além de trabalhoso, não é muito simples de fazer e assim o processo de incluir novas plataformas leva mais tempo.</p>
<p>Mas se você usa Intel/AMD, ARM ou PPC/e500 então vale muito a pena experimentar, no meu caso eu tive que embutir a máquina LuaJIT no meu ambiente e isso precisou de um processo mais detalhado, mas nada que causasse sofrimento <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  mas se você pretende usar uma aplicação diretamente na máquina Lua então basta chamar a máquina LuaJIT passando o seu programa e ficar impressionado.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2011/05/09/just-in-time-com-a-linguagem-lua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>É do Brasil!! Linguagem Lua chegando ao Top10!</title>
		<link>http://www.paulomotta.pro.br/2011/04/28/e-do-brasil-linguagem-lua-chegando-ao-top10/</link>
		<comments>http://www.paulomotta.pro.br/2011/04/28/e-do-brasil-linguagem-lua-chegando-ao-top10/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 14:29:49 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=1331</guid>
		<description><![CDATA[Eu escrevi aqui há algum tempo sobre o índice TIOBE que acompanha o crescimento no uso de linguagens de programação no mundo todo. Pois bem, a linguagem Lua, muito usada pela comunidade de jogos inclusive por grandes estúdios subiu para a 12ª poisção agora em abril! E eu acho que ainda vai subir muito mais. [...]]]></description>
			<content:encoded><![CDATA[<p>Eu escrevi <a href="http://www.paulomotta.pro.br/2008/09/03/ranking-de-linguagens-de-programacao/" target="_blank">aqui</a> há algum tempo sobre o índice TIOBE que acompanha o crescimento no uso de linguagens de programação no mundo todo. Pois bem, a linguagem <a href="http://www.lua.org/" target="_blank">Lua</a>, muito usada pela comunidade de jogos inclusive por grandes estúdios subiu para a 12ª poisção agora em abril! E eu acho que ainda vai subir muito mais.</p>
<p>As linguagens interpretadas estão ganhando muito espaço e com o suporte de IDEs como Eclipse e Netbeans fica muito mais fácil de adotar uma dessas linguagens. O tutorial para instalar o suporte a Lua no Eclipse é bem simples, mas depois eu vou colocar aqui uns macetes para ajudar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2011/04/28/e-do-brasil-linguagem-lua-chegando-ao-top10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>O que deve saber um programador &#8211; nível zero?</title>
		<link>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 16:00:33 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=801</guid>
		<description><![CDATA[Semana passada eu comentei do que acho que é necessário que um programador nível básico precisa saber, enquanto escrevia pensei que para chegar ao nível básico o aspirante precisa passar por um caminho inicial até chegar no ponto de começar a aprender o que vai torná-lo enfim um programador nível básico. Então sem mais delongas [...]]]></description>
			<content:encoded><![CDATA[<p>Semana passada eu comentei do que acho que é necessário que um programador nível básico precisa saber, enquanto escrevia pensei que para chegar ao nível básico o aspirante precisa passar por um caminho inicial até chegar no ponto de começar a aprender o que vai torná-lo enfim um programador nível básico.</p>
<p>Então sem mais delongas vamos listar os passos necessários para percorrer esse caminho:</p>
<ol>
<li>Estude introdução a algoritmos &#8211; nesse tópico não estou falando de algoritmos sofisticados e sim da primeira etapa onde aprendemos a fazer pequenos algoritmos em pseudo-linguagem ou portunhol que geralmente descrevem os passos para fazer um bolo. Entenda como descrever os passos para resolver um problema de forma estruturada e lógica.</li>
<li>Saiba lógica matemática &#8211; sim a boa e velha tabela verdade, é necessário entender como funcionam as relações lógicas. Principalmente AND, OR e NOT.</li>
<li>Estude uma linguagem de programação &#8211; usando o manual da linguagem, aprenda as palavras reservadas, os comandos e blocos de construção de programas. Usando Java como exemplo temos a seguinte lista:
<ol>
<li>Tipos de dados &#8211; int, long, short, byte, char, float, double e boolean</li>
<li>Operadores &#8211; +, -, *, /, %, &lt;, &gt;, &lt;=, &gt;=, !=, == e alguns outros</li>
<li>Estruturas de decisão &#8211; if e switch</li>
<li>Estruturas de repetição &#8211; for, while e do/while</li>
<li>Declaração de métodos (ou funções se fosse em C)</li>
</ol>
</li>
<li>Faça muitos exercícios &#8211; uma coisa que as pessoas demoram a entender (ou aceitar) é que programação precisa de exercício, o programador precisa ser capaz de entender o problema em termos de construções básicas que fazem parte da linguagem com a qual trabalha. Precisa ser capaz de expressar a solução com essas construções e quanto mais programamos mais rapidamente identificamos quais serão os itens que expressarão a resposta. Uma estratégia que estou pensando que pode funcionar (tive essa ideia pensando na forma como estudamos música) é refazer os programas que já foram feitos várias vezes, não estou falando de escrever o programa copiando, e sim de resolver os mesmos problemas várias vezes adicionando um ou dois novos problemas por semana, aos poucos ganha-se mais experiência e mais confiança na resolução de problemas.</li>
<li>Aprenda a escrever claramente &#8211; sim, a interpretação de texto e a capacidade de descrever a solução do problema de forma clara são fundamentais na vida de um programador.</li>
<li>Aprenda a usar a entrada e saída via teclado &#8211; isso é importante para podermos começar a fazer programas com os quais o usuário pode interagir, programas que vão solicitar por exemplo que o usuário informe um número para cálculo, ou um conjunto de números para fazer uma média, e é claro será necessário imprimir pelo menos no console o resultado do processamento.</li>
<li>Entenda o que é um endereço de memória &#8211; em Java não podemos manipular diretamente a memória do computador, mas em C podemos indicar um endereço que queremos acessar, mesmo assim, Java tem variáveis de referência e precisamos entender o que essas variáveis fazem e para que são usadas.</li>
<li>Aprenda a criar e usar <a href="http://www.paulomotta.pro.br/2009/09/01/tipos-abstratos-de-dados/" target="_blank">tipos abstratos de dados</a> &#8211; o programador pode criar seus próprios tipos de dados para organizar melhor seus programas e isso pode ser feito agrupando os tipos básicos da linguagem em novos tipos. Nas linguagens orientadas a objeto, como Java, esses tipos de dados são criados em classes, já nas linguagens estruturadas, como C, usamos structs.</li>
<li>Aprenda a fazer um loop de aplicação &#8211; as aplicações profissionais costumam continuar executando até que o usuário escolha uma opção para encerrar o programa, isso pode ser feito, por exemplo, colocando um laço que só termina quando o usuário digita um valor específico. Enteder como criar esse mecanismo, mesmo em uma aplicação que não tem interface gráfica ajuda a desenvolver muito a habilidade de programação.No nível zero de programação eu costumo trabalhar com programas que tem interface baseada em caracteres, também chamadas CHUI (CHaracter User Interface). Neste modelo, imprimimos um pequeno menu texto e ficamos lendo o que o usuário digita, interpretamos a opção, e se ela for válida executamos a ação correspondente, senão imprimimos uma mensagem para o usuário.</li>
</ol>
<p>Acredito que isso seja o necessário para &#8220;passar de faixa&#8221; saindo assim da faixa branca <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

