Por que não contratar programadores .Net?

Li esse post durante a semana e não consegui concordar nem discordar. Twittei e recebi uma trollada de volta. Normal.  Então vou tentar, aqui, explicar o que pensei/penso.

Em primeiro lugar, o autor do post, com certeza, nunca programou em C# e não faz idéia do quanto a plataforma evoluiu. Passamos de uma arquitetura component-based, com WebForms, para um framework MVC muito bom e extensível, que é o ASP. Net MVC, enquanto o Java, por exemplo, seguiu o caminho inverso. E taí uma plataforma e comunidade que vem se degradando a cada dia. Component-based a essa altura do campeonato é demais pra mim. Se considera um bom programador? Quer evoluir? Então saia dessa!

No início, a “guerra” era Java x .Net e muitos bons frameworks existentes em Java foram portados para .Net, o que fez a plataforma evoluir MUITO. Nada melhor que aprender através da experiência dos outros e não ficar reinventando a roda. Por exemplo, trabalho hoje em um projeto com alguns frameworks que vieram do Java e posso afirmar que você também. Listando alguns: NHibernate, NUnit e log4net.

A “guerra” hoje não é mais .Net x Java, e sim Todos x Ruby on Rails (cuidado com o javascript!).
Quais são os bons frameworks para desenvolvimento de apps web em Java e .Net? Em Java, só escuto falar de VRaptor e em .Net, como já mencionei, ASP. Net MVC. Sabe da onde vieram ambos? Foram inspirados pelo Rails. Em Ruby, é possível instalar gems via linha de comando enquanto em .Net posso usar o NuGet para fazer o mesmo. Ok. Sou noob em RoR. Falei besteira? Pode xingar.

Agora que falei um pouco da tal guerra entre as tecnologias, agora vamos ao post.

Veja que o autor do post fala tudo dentro de um contexto: startups. (Nunca trabalhei em uma startup. Coincidência?)

Quais são as dificuldades de uma startup? Eu imagino que grana seja uma delas. Visual Studio é massa? É, mas só roda no Windows. Licença do Windows é barata? Não. E do Visual Studio? Também não. E não venha me falar de SharpDevelop. Tem que comer muito feijão com arroz ainda.

Acho que o único ponto com o qual realmente discordo do post:

“Programming with .NET is like cooking in a McDonalds kitchen.  It is full of amazing tools that automate absolutely everything.  Just press the right button and follow the beeping lights, and you can churn out flawless 1.6 oz burgers faster than anybody else on the planet.

However, if you need to make a 1.7 oz burger, you simply can’t.  There’s no button for it. The patties are pre-formed in the wrong size.  They start out frozen so they can’t be smushed up and reformed, and the thawing machine is so tightly integrated with the cooking machine that there’s no way to intercept it between the two.  A McDonalds kitchen makes exactly what’s on the McDonalds menu — and does so in an absolutely foolproof fashion.  But it can’t go off the menu, and any attempt to bend the machine to your will just breaks it such that it needs to be sent back to the factory for repairs.

See, Microsoft very intentionally (and very successfully) created .NET to be as different as possible from everything else out there, keeping the programmer far away from the details such that they’re wholly and utterly dependent on Microsoft’s truly amazing suite of programming tools to do all the thinking for them.

Esses trechos destacados em negrito mostram o quanto ele NÃO conhece a plataforma. Concordo que por muito tempo (enquanto WebForms era a única opção), boa parte da comunidade (qual comunidade? onde?) só sabia usar o mouse, arrastar controles numa página, clicar no controle e escrever o código do evento. Um caminho que não sei por que cargas d’água o Java tentou seguir – pior, sem nenhuma ferramenta comparável ao VS  - , com o JSFail (parafraseando o @cmilfont), e que o RoR nem cogitou trilhar.

Mas como ele pode afirmar que .Net é algo completamente diferente de tudo que se faz em outras plataformas? Citei no começo do post alguns frameworks que vieram do Java e conheço muitos outros. Então a pergunta é: hein!?

Por que não é possível criar “1.7 oz burger”? Simples. Por que o autor não conhece a plataforma. Realmente, assim não dá pra fazer nem um pão com ovo.

Sobre a maioria dos programadores .Net, concordo com uma frase de outro post que li semana passada:

“.Net programmers are largely Enterprise programmers who are not constitutionally constructed to create large scalable websites at a startup pace.”

Não tenho como discordar. E, por favor, leia direito a frase e não me xingue.

Pelo custo de um ambiente .Net, fica difícil que startups o adotem, como mencionei antes (Windows Server 2008, VS2010, TFS, etc etc etc).

Bom, era isso. Vou twittar o post. Se quiser xingar ou trocar idéias lá, faça. Mas prefiro aqui. Não tem limite de caracteres.

Abraço.

13 Respostas para “Por que não contratar programadores .Net?”


  1. 1 Carlos Raphael março 30, 2011 às 11:27 am

    “E taí uma plataforma e comunidade que vem se degradando a cada dia. Component-based a essa altura do campeonato é demais pra mim.”

    A sun/oracle foi para esse lado, mas gracas a “comunidade” que ainda resiste, existem alternativas como VRaptor e Spring MVC.

    Usa JSFail quem quer, infelizmente varias empresas ainda estao super enganadas com a falsa produtividade, falsa baixa curva de aprendizado, etc que o JSFail vende, digo, que varios “consultores”, arquitetos master/ultra/power dessas empresas que se dizem “ageis” mas com 3 letrinha na frente.. CMM! vendem.

    Mas te digo uma coisa, JSFail esta com os dias contados, pelo menos é a minha realidade a medio prazo. Essas empresa enganadas tem q sentir na pele o lixo do JSFail p/ poder se tocar da grande merda.

    *Enfim.. resumindo a opera, o q eu queria dizer mesmo era… nao estou defendendo JAVA. apenas nao concordo em partes do trecho acima do seu post. Mas vc esta certo em relacao a morte da plataforma java e sua comunidade. Eu na minha humilde opniao so nao atribuiria essa morte lenta e triste da plataforma ao JSFail e sim a linguagem java em si q faz muito tempo q parou no tempo. Muita gente tem perdido o tesao de trabalhar com uma lingaguem antiga como o java.*

    No mais concordo com vc. Parabens pelo post.

    []s

  2. 2 Carlos Raphael março 30, 2011 às 11:31 am

    PS: se fosse resumir em uma palavra diria que java é muito ‘burocratico’. C#, python, ruby e cia. estao muito a frente do java. Tem q comer muito feijao com arroz ainda.

  3. 3 Christiano Milfont março 30, 2011 às 12:36 pm

    Eu concordo com 99,99%
    0,01% é em relação de não usarem as ferramentas que possuem, apesar de existir NHibernate, Spring.net e tal, o que veja pelo menos na comunidade cearense é usarem apenas o que vem como default no visual studio.

  4. 4 Leonardo Lima março 30, 2011 às 2:11 pm

    Ciço, você esqueceu do Visual Web Developer 2010 Express (http://www.microsoft.com/web/downloads/platform.aspx). Quanto ao post que originou o assunto, eu concordo que os programadores Java via de regra tem melhor preparo do que os C#, Darvin explica isso. Ajude uma borboleta a sair do casulo e ela não será forte o suficiente e morrerá logo. As ferramentas da MS são mais fáceis de usar, embora oferecam recursos para fazer qualquer coisa, e justamente pela facilidade qualquer Zé mané pode dizer que “faz site”, e eu posso dizer que faço um sistema de missão crítica. Essa disparidade causa essa má impressão à plataforma.

  5. 5 Icaro Camelo março 30, 2011 às 5:12 pm

    Concordei com o post em inglês, no entanto os profissionais .NET estão amadurecendo, acho que você quis demonstrar isso.

    Quanto ao exemplo do sanduíche do McDonalds, acredito que ele quis exagerar um pouco de propósito. Quem nunca passou maus bocados pra implementar coisas mais específicas com ASP.NET Web Forms?!

    Quanto ao JSF, falo com propriedade, pois já trabalhei: Uma cópia fajuta do ASP.NET Web Forms. A coisa tem até um ciclo de vida parecidíssimo (coincidência ???) ao do ASP.NET Web Forms.

    Preciso concordar com essa citação: “You become so steeped in tools and techniques that have absolutely no relevance outside of .NET that you are actually less valuable to a startup than had you just taken a long nap.”.

    Trabalhar SOMENTE com .NET te deixa muito limitado, justamente pq a Microsoft sempre teve a filosofia de facilitar tudo. Isso é fato.

    Com Java apanhei e ainda apanho pra fazer algo decente – produtividade é assunto pra outro post – com as ferramentas/frameworks disponíveis. Estou iniciando com Rails 3 e até o momento – visão de iniciante – é muito fácil e bacana de trabalhar.

    O gerenciador de dependências do Rails3 é o Bundler e digo que é EXTREMAMENTE – isso mesmo, EXTREMAMENTE – mais simples do que o Maven e o Ivy (frameworks Java).

    Todas essas “surras” que os desenvolvedores não .NET levam, agregam experiências e skills de resolução de problemas que as soluções Microsoft já nos entregam, sem esses percausos, prontas para uso.

  6. 6 Hamon Vitorino março 31, 2011 às 8:15 am

    @Carlos Raphael

    Minha intenção não era atribuir o esvaziamento da comunidade Java ao JSF, mas mostrar que o perfil da comunidade está mudando e, na minha humilde opinião, JSF tem muita culpa nisso. Já até discutimos isso pessoalmente. Vejo poucas *discussões* na lista de Java em que participo e muitos “como faz XYZ com JSF?”. Como se ensina Java na faculdade, pelo menos aqui no Ceará, a “nova comunidade”, da era “JSFiana”, não sabe o que realmente é a Web, assim como a comunidade .Net não sabia, por conta do WebForms, que tentava mascarar tudo e fazer de conta que você estava desenvolvendo num ambiente Desktop e statefull. Aliás, pergunta pra eles o que é isso – statefull/stateless.
    E concordo com você quando diz que Java é burocrático e que isso afasta os desenvolvedores, ao contrário de linguagens mais modernas. Massa ter essa sua opinião aqui. Enriqueceu muito o post. Valeu.

    @Christiano Milfont

    Concordo com você. Não sei se é maioria, mas muitos continuam no feijão com arroz. Talvez por continuarem trabalhando em “Enterprises” e/ou por comodismo mesmo. Outro problema que faz com que isso aconteça é a inatividade da comunidade. É cada um no seu quadrado. Sem troca de idéias, não há evolução.

    @Leonardo Lima

    Esqueci mesmo do Visual Web Developer 2010 Express. Até já usei. Tem alguma limitação? Qual?

    @Icaro Camelo

    É isso mesmo. A idéia, ou uma delas, era mostrar a evolução do .Net. Só não vê quem não quer. Sobre os maus bocados com WebForms, dá uma sacada nesse link que também tá no post:

    http://highscalability.com/blog/2011/3/25/did-the-microsoft-stack-kill-myspace.html.

    Um dos motivos citados para a queda do myspace foi justamente esse:

    Their system had ” “hundreds of hacks to make it scale that no one wants to touch,” which hamstrung their ability to really compete.

    E concordo com isso:

    “Trabalhar SOMENTE com .NET te deixa muito limitado, justamente pq a Microsoft sempre teve a filosofia de facilitar tudo. Isso é fato.”

    Faria só uma mudança na frase:

    Trabalhar SOMENTE com *UMA TECNOLOGIA* te deixa muito limitado.

    Na verdade, achar que uma só tecnologia resolve todos os problemas já é uma limitação. É achar que encontrou a tal bala de prata, que não existe. Fato.

  7. 8 Rafael Ponte abril 2, 2011 às 8:28 pm

    Então, depois desse post, qual é a resposta para a pergunta “Por que não contratar programadores .Net?”? :-)

  8. 10 Rodrigo Galba abril 25, 2011 às 12:04 pm

    Pronto, tá aí mais um argumento contra o #JSFail : A própria comunidade .NET parece que está deixando de lado o desenvolvimento web baseado em componentes.
    Trolls à parte, acho que usar C# como spring.net e nhibernate é muito bom e mostra o interesse dos desenvolvedores em melhorar.

    Mas ai pergunto:
    Se com o Java já se faz isso, porque fazer a mesma coisa com .NET?

    Isso não seria mais uma resposta ao título do post?

    O fato dos desenvolvedores estarem mudando, deixando ferramentas de geração de código de lado e mudar a definição de um código ‘pronto’ para tentar fazer algo mais sustentável, com testes automatizados, por exemplo.
    Isso justifica a ‘desvalorização’ de um visual studio, por exemplo.

    Outra coisa que fica clara é que hoje os desenvolvedores de determinada tecnologia não são avaliados apenas nesta, ele é comparado a outros desenvolvedores de outras tecnologias. Isso é muito bom.

    • 11 Hamon Vitorino abril 26, 2011 às 3:51 am

      @Galba,

      Tive que comparar com alguma linguagem. Usei java como parâmetro pq foi o mais natural.

      Vamos lá:

      1. Programadores .net evoluiram assim como a plataforma, com grande ajuda dos perrengues dos outros – os javeiros, principalmente.

      2. Enquanto a comunidade .net tá “se libertando” de uma web component-based, a comunidade java tá abraçando o jsf. “Pai Ciço” previu isso tem uns 2 anos. Alguns caras falando de VRaptor, mas a maioria querendo fazer mesmo é “um combo aninhado com jsf”. Já passei por isso com web forms…

      3. Ambos tem crescido com muita influência do RoR, mas um problema do java é a estagnação do jdk e da própria linguagem, afastando devs mais experientes – tome RoR! -, enquanto o framework .net evoluiu muito e o c# foi junto. E ainda tem o Mono. Conheço pouquíssimo. Escrevi um app muito simples, mas pretendo investir mais tempo nisso.

      4. Desenvolvedores .net são, na maioria, de grandes empresas, com grana pra gastar num ambiente de desenvolvimento – o post em inglês fala no contexto de uma startup. Esse tipo de ambiente, normalmente é “quadrado” e desfavorece inovação. Dou razão.

      5. Deve ser $oda pra uma startup manter um ambiente ms.

      6. Dizer que só se pode fazer mcburguer é meio nonsense.

      Respondendo à pergunta:

      Se com o Java já se faz isso, porque fazer a mesma coisa com .NET?

      Num outro dia, eu diria, “depende”, mas hj eu digo q é pq .net é uma plataforma que caminha pra frente e não para os lados.

      []‘s

  9. 12 A.W. Leão maio 6, 2011 às 8:23 pm

    Show de bola.
    A Frase mais marcante “…eu concordo que os programadores Java via de regra tem melhor preparo do que os C#, Darvin explica isso. Ajude uma borboleta a sair do casulo e ela não será forte o suficiente e morrerá logo. As ferramentas da MS são mais fáceis de usar…” do Leonardo Lima é a pura verdade.
    A intenção da MS sempre foi facilitar a vida, nisso ela é fera, anos luz a frente. E acaba livrando o pessoal de “Todas essas “surras”” como disse o Icaro.
    Felizmente o pessoal .Net tem se preparado mais e se tornando mais presente no mercado para tentar limpar essa imagem de programador orientado NNF (Next, Next, Finish) com os Moldes, Componentes e Wizards Micrsoft que os menos conhecedores tanto criticam.

  10. 13 Luiz maio 11, 2011 às 11:03 am

    Tudo isso é altamente relativo e não vale a pena ser discutido.

    As pessoas não conseguem ver além do seu próprio mundinho.

    No meu mundinho, tem muito espaço para ASP.net WebForms, onde demanda uma certa complexidade visual em toda santa tela, incapacidade de gerar o código e facil manutenção por niveis inferiores.
    E também existem projetos MVC.
    Todos fluindo bem.

    A realidade é que nem todos projetos são cadastrinhos e gridzinhas, cliente, aka “o cara da grana” quer grande acessibilidade (Web) e o que mais ele acreditar que vai dar ganho pra ele.

    No fim, esse monte de bla-bla-bla que todos gostam de falar é inutil, é coisa de “funcionário”. Tudo se resume a CUSTO.

    .NET da produtividade, e Microsoft não é mais a vilã da história. Alias, é ridiculamente facil ficar legalizado com a Microsoft sem gastar 1 centavo.
    Existem diversas frentes, como as Website Spark, Biz Spark etc, que dão licenças de SO, BD e IDE, sem falar nas Express.

    Empresas compram o MSDN e utilizam largamente, sem dor de cabeça. Ou, investindo na Partner Network, conseguem lics com custo mais baixo que qualquer outra.

    Poxa que legal que vocês são hardcores e trabalham com .NET, Ruby, Phyton e tudo mais, joinha pra vocês.
    Eu prefiro focar no que a cada ano quase dobra meu salário, investindo em alta performance e qualidade de código que resolvem o problema e deixam o cliente extremamente satisfeito, para aproveitar meu tempo vivendo mesmo ;)


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s




 

março 2011
S T Q Q S S D
« out    
 123456
78910111213
14151617181920
21222324252627
28293031  

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.