<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Você está nivelando por baixo e/ou não conhece seus desenvolvedores</title>
	<atom:link href="http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/</link>
	<description>Blog da Comunidade Milfont Consulting, uma empresa especializada em desenvolvimento Web, principalmente Javascript, node.js e muito Javascript.</description>
	<lastBuildDate>Mon, 21 May 2012 15:22:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Witaro</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7722</link>
		<dc:creator>Witaro</dc:creator>
		<pubDate>Fri, 22 Jan 2010 13:42:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7722</guid>
		<description>Depende muito do contexto, diria até de uma rede de contextos formada de vários sub-contextos (&quot;Small Worlds&quot;) como contextos econômicos, culturais, estéticos, acadêmicos, de infra-estrutura, etc. 

Abstrações são passíveis de &quot;vazamentos&quot; e não-otimização, ou seja, você pode ter trabalho extra ao ter que lidar com suas inadequações, vide SQL/ORM, HTML+Javascript/(JSF,GWT,etc). Já  evitá-las pode ser danoso se a rede de contextos pede soluções técnicas que acabam mais complexas numa linguagem/ecosistema não pensada (ou menos adaptável) para elas, podendo dar muito mais trabalho para reproduzir &quot;aquele efeito novo&quot; ou construirmos/usarmos abstrações (frameworks) que lhe criam ainda mais camadas intermediárias, onde gambiarras encontram terreno fértil... 

Ao meu ver estamos numa época de transição (sempre estamos numa, mas ainda estamos esperando um novo bolsão de equilíbrio) e há muitas situações diferentes que podem ser resolvidas de diversas formas (&quot;A verdade é uma terra sem caminho&quot;, J. Krishnamurti), então, por exemplo, se vamos usar coisas como Ruby, gosto do que diz Uncle Bob, ele reconhece que é fácil fazer bagunça com ela (&quot;Com grandes poderes...&quot;), mas que aprendendo com os erros passados (ele se refere a &quot;Smalltalk&quot;) sabemos que isso pode ser extremamente minimizado com o uso de TDD (e outras técnicas ágeis, corroborando com o que diz o R. Pontes)... Agora, ocorre que isso também envolve mudanças num sub-contexto delicado e bastante conhecido por todos chamado &quot;cabeça do desenvolvedor&quot;...</description>
		<content:encoded><![CDATA[<p>Depende muito do contexto, diria até de uma rede de contextos formada de vários sub-contextos (&#8220;Small Worlds&#8221;) como contextos econômicos, culturais, estéticos, acadêmicos, de infra-estrutura, etc. </p>
<p>Abstrações são passíveis de &#8220;vazamentos&#8221; e não-otimização, ou seja, você pode ter trabalho extra ao ter que lidar com suas inadequações, vide SQL/ORM, HTML+Javascript/(JSF,GWT,etc). Já  evitá-las pode ser danoso se a rede de contextos pede soluções técnicas que acabam mais complexas numa linguagem/ecosistema não pensada (ou menos adaptável) para elas, podendo dar muito mais trabalho para reproduzir &#8220;aquele efeito novo&#8221; ou construirmos/usarmos abstrações (frameworks) que lhe criam ainda mais camadas intermediárias, onde gambiarras encontram terreno fértil&#8230; </p>
<p>Ao meu ver estamos numa época de transição (sempre estamos numa, mas ainda estamos esperando um novo bolsão de equilíbrio) e há muitas situações diferentes que podem ser resolvidas de diversas formas (&#8220;A verdade é uma terra sem caminho&#8221;, J. Krishnamurti), então, por exemplo, se vamos usar coisas como Ruby, gosto do que diz Uncle Bob, ele reconhece que é fácil fazer bagunça com ela (&#8220;Com grandes poderes&#8230;&#8221;), mas que aprendendo com os erros passados (ele se refere a &#8220;Smalltalk&#8221;) sabemos que isso pode ser extremamente minimizado com o uso de TDD (e outras técnicas ágeis, corroborando com o que diz o R. Pontes)&#8230; Agora, ocorre que isso também envolve mudanças num sub-contexto delicado e bastante conhecido por todos chamado &#8220;cabeça do desenvolvedor&#8221;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Silveira Neto</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7721</link>
		<dc:creator>Silveira Neto</dc:creator>
		<pubDate>Fri, 22 Jan 2010 12:47:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7721</guid>
		<description>É por aí mesmo.

A arte de resolver problemas, a inteligencia, o pensamento, é sempre o mesmo e é o mais importante, independente de linguagem. Linguagem é exercício, conceitos, paradigmas, se aprende, senta na cadeira e aprende.

Não conheço nenhuma linguagem que torne programadores ruins em bons programadores, que torne pessoas burras em inteligentes, e a contra-positiva também vale, se você é bom, se seu time é bom, inteligente, uma linguagem não vai tornar ele burro.</description>
		<content:encoded><![CDATA[<p>É por aí mesmo.</p>
<p>A arte de resolver problemas, a inteligencia, o pensamento, é sempre o mesmo e é o mais importante, independente de linguagem. Linguagem é exercício, conceitos, paradigmas, se aprende, senta na cadeira e aprende.</p>
<p>Não conheço nenhuma linguagem que torne programadores ruins em bons programadores, que torne pessoas burras em inteligentes, e a contra-positiva também vale, se você é bom, se seu time é bom, inteligente, uma linguagem não vai tornar ele burro.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fabiano Sobreira</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7718</link>
		<dc:creator>Fabiano Sobreira</dc:creator>
		<pubDate>Fri, 22 Jan 2010 00:14:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7718</guid>
		<description>&quot;Se você está com essa dúvida, sinto muito: Você está nivelando por baixo e/ou não conhece seus desenvolvedores.&quot;

Ou talvez os conheça bem demais! rs.</description>
		<content:encoded><![CDATA[<p>&#8220;Se você está com essa dúvida, sinto muito: Você está nivelando por baixo e/ou não conhece seus desenvolvedores.&#8221;</p>
<p>Ou talvez os conheça bem demais! rs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cmilfont</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7715</link>
		<dc:creator>cmilfont</dc:creator>
		<pubDate>Thu, 21 Jan 2010 20:56:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7715</guid>
		<description>Fábio, o ponto é que a argumentação segue sempre uma rotina ao longo do tempo: as dúvidas são de desconhecimento da nova plataforma/linguagem/comunidade/whatever por comodidade, simplesmente querem uma resposta pronta que não existe.

Eu sou particularmente contra a adoção de uma unica plataforma por motivo de facilitar o controle, em desenvolvimento esse tipo de mentalidade não deu certo com raríssimas exceções, o ideal é utilizar a ferramenta certa no lugar certo sempre.

Em termos de linguagens estáticas e dinamicas cada qual tem seu uso adequado, inclusive plataforma.</description>
		<content:encoded><![CDATA[<p>Fábio, o ponto é que a argumentação segue sempre uma rotina ao longo do tempo: as dúvidas são de desconhecimento da nova plataforma/linguagem/comunidade/whatever por comodidade, simplesmente querem uma resposta pronta que não existe.</p>
<p>Eu sou particularmente contra a adoção de uma unica plataforma por motivo de facilitar o controle, em desenvolvimento esse tipo de mentalidade não deu certo com raríssimas exceções, o ideal é utilizar a ferramenta certa no lugar certo sempre.</p>
<p>Em termos de linguagens estáticas e dinamicas cada qual tem seu uso adequado, inclusive plataforma.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fábio</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7710</link>
		<dc:creator>Fábio</dc:creator>
		<pubDate>Thu, 21 Jan 2010 16:37:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7710</guid>
		<description>1 - &quot;Os programadores Assembly achavam que programar em Fortan dava maiores possibilidades de erros porquê o programador não tinha total controle sobre o código gerado.&quot;

Pelo contrário, deve ser mais seguro desenvolver em Fortran do que em Asembly. Os compiladores Fortran geram código assembly tão bons ou até mais otimizados do que se feitos um programador, abstraindo detalhes da máquina como registradores de CPU. Claro que não estou falando de somar A + B, mas programas complexos de um modo geral. 

2 -  &quot;Aí veio o pessoal do C/C++ dizendo que Java abstraía demais, deixando margens a bugs serem introduzidos nos programas pelo compilador e/ou pela vm ou porquê simplesmente ele não estava alocando/desalocando memória manualmente.&quot;

Mais uma vez é o contrário: é mais seguro desenvolver em Java do que em C++. Preciso falar do famigerado &quot;segmentation fault&quot;?

3 - &quot;Linguagens dinâmicas dão maiores possibilidades de inclusão de erro no código com isso aumentando de forma significativa a refatoração&quot;

Sim, acredito nessa afirmação. É fácil perceber que linguagens estáticas privilegiam &quot;safety&quot; e linguagens dinâmicas &quot;liveness&quot;. Vejam o exemplo: 

linguagem estática   X   -  function somar(int a, int b)
linguagem dinâmica Y   - function somar(var a, var b)     

Se forem passados argumentos do tipo string, apenas a linguagem Y vai executar. Porém a linguagem X fará a verificação de tipos, antecipando a correção de erros.

Não estou dizendo que linguagens estáticas são melhores ou mais produtivas, apenas que são mais seguras por conta das verificações de tipo.</description>
		<content:encoded><![CDATA[<p>1 &#8211; &#8220;Os programadores Assembly achavam que programar em Fortan dava maiores possibilidades de erros porquê o programador não tinha total controle sobre o código gerado.&#8221;</p>
<p>Pelo contrário, deve ser mais seguro desenvolver em Fortran do que em Asembly. Os compiladores Fortran geram código assembly tão bons ou até mais otimizados do que se feitos um programador, abstraindo detalhes da máquina como registradores de CPU. Claro que não estou falando de somar A + B, mas programas complexos de um modo geral. </p>
<p>2 &#8211;  &#8220;Aí veio o pessoal do C/C++ dizendo que Java abstraía demais, deixando margens a bugs serem introduzidos nos programas pelo compilador e/ou pela vm ou porquê simplesmente ele não estava alocando/desalocando memória manualmente.&#8221;</p>
<p>Mais uma vez é o contrário: é mais seguro desenvolver em Java do que em C++. Preciso falar do famigerado &#8220;segmentation fault&#8221;?</p>
<p>3 &#8211; &#8220;Linguagens dinâmicas dão maiores possibilidades de inclusão de erro no código com isso aumentando de forma significativa a refatoração&#8221;</p>
<p>Sim, acredito nessa afirmação. É fácil perceber que linguagens estáticas privilegiam &#8220;safety&#8221; e linguagens dinâmicas &#8220;liveness&#8221;. Vejam o exemplo: </p>
<p>linguagem estática   X   &#8211;  function somar(int a, int b)<br />
linguagem dinâmica Y   &#8211; function somar(var a, var b)     </p>
<p>Se forem passados argumentos do tipo string, apenas a linguagem Y vai executar. Porém a linguagem X fará a verificação de tipos, antecipando a correção de erros.</p>
<p>Não estou dizendo que linguagens estáticas são melhores ou mais produtivas, apenas que são mais seguras por conta das verificações de tipo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tweets that mention Milfont.org Ultrapassando os limites da WEB -- Topsy.com</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7709</link>
		<dc:creator>Tweets that mention Milfont.org Ultrapassando os limites da WEB -- Topsy.com</dc:creator>
		<pubDate>Thu, 21 Jan 2010 16:28:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7709</guid>
		<description>[...] This post was mentioned on Twitter by cmilfont, cmilfont, Rafael Ponte, Tiago Bastos, flaviosv and others. flaviosv said: RT @rponte: Você está nivelando por baixo e/ou não conhece seus desenvolvedores - http://tinyurl.com/yd9dv4n [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by cmilfont, cmilfont, Rafael Ponte, Tiago Bastos, flaviosv and others. flaviosv said: RT @rponte: Você está nivelando por baixo e/ou não conhece seus desenvolvedores &#8211; <a href="http://tinyurl.com/yd9dv4n" rel="nofollow">http://tinyurl.com/yd9dv4n</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tiago Bastos</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7708</link>
		<dc:creator>Tiago Bastos</dc:creator>
		<pubDate>Thu, 21 Jan 2010 16:26:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7708</guid>
		<description>Excelente observação do Delberto Muniz, esse tipo de argumento é totalmente errado! Por isso hoje muitas empresas, inclusive a Microsoft e Sun investem em linguagens como Ruby e Python, na verdade a própria Microsoft vem modificando o C# para ter mais recursos de outras linguagens. A CLR já possui suporte para implementação de tais mudanças. As tecnologias evoluem, as linguagens de programação também e melhorar os níveis de abstração delas é algo essencial, usamos isso no nosso dia a dia com implementação de DSLs como a que vemos no Rails.</description>
		<content:encoded><![CDATA[<p>Excelente observação do Delberto Muniz, esse tipo de argumento é totalmente errado! Por isso hoje muitas empresas, inclusive a Microsoft e Sun investem em linguagens como Ruby e Python, na verdade a própria Microsoft vem modificando o C# para ter mais recursos de outras linguagens. A CLR já possui suporte para implementação de tais mudanças. As tecnologias evoluem, as linguagens de programação também e melhorar os níveis de abstração delas é algo essencial, usamos isso no nosso dia a dia com implementação de DSLs como a que vemos no Rails.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Handerson Frota</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7706</link>
		<dc:creator>Handerson Frota</dc:creator>
		<pubDate>Thu, 21 Jan 2010 15:59:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7706</guid>
		<description>Sempre existiu e sempre vai existir essa briga LinguagemY x Linguagem Z. 

Hoje um bom desenvolvedor tem que saber utilizar a ferramenta certa para o problema específico. A briga está mesmo para valer a pena em Plataforma A x Plataforma B, linguagem já não é mais tão importante assim.

Hoje o poder e a necessidade de integrar várias linguagens em várias plataformas está bem maior. 

E lembrando uma frase: &quot;Não existe bala de prata !&quot;. Isso é fato.

Boa colocação do Delberto ;)</description>
		<content:encoded><![CDATA[<p>Sempre existiu e sempre vai existir essa briga LinguagemY x Linguagem Z. </p>
<p>Hoje um bom desenvolvedor tem que saber utilizar a ferramenta certa para o problema específico. A briga está mesmo para valer a pena em Plataforma A x Plataforma B, linguagem já não é mais tão importante assim.</p>
<p>Hoje o poder e a necessidade de integrar várias linguagens em várias plataformas está bem maior. </p>
<p>E lembrando uma frase: &#8220;Não existe bala de prata !&#8221;. Isso é fato.</p>
<p>Boa colocação do Delberto <img src='http://www.milfont.org/tech/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rafael Ponte</title>
		<link>http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/comment-page-1/#comment-7705</link>
		<dc:creator>Rafael Ponte</dc:creator>
		<pubDate>Thu, 21 Jan 2010 14:47:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.milfont.org/tech/2010/01/21/voce-esta-nivelando-por-baixo-eou-nao-conhece-seus-desenvolvedores/#comment-7705</guid>
		<description>Na verdade, eu acredito que além do conhecimento da linguagem -não necessariamente um expert- o desenvolvedor precisa, principalmente, ter uma cultura mais ágil (TDD, design incremental e iterativo, baby steps etc) e ter bons conhecimentos sobre design de software (OOP, SOLID Principles etc). Assim, por mais que o desenvolvedor troque de linguagem ou mesmo plataforma ele saberá desenvolver software de qualidade.

Enfim, post sucinto mas bem colocado.</description>
		<content:encoded><![CDATA[<p>Na verdade, eu acredito que além do conhecimento da linguagem -não necessariamente um expert- o desenvolvedor precisa, principalmente, ter uma cultura mais ágil (TDD, design incremental e iterativo, baby steps etc) e ter bons conhecimentos sobre design de software (OOP, SOLID Principles etc). Assim, por mais que o desenvolvedor troque de linguagem ou mesmo plataforma ele saberá desenvolver software de qualidade.</p>
<p>Enfim, post sucinto mas bem colocado.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

