Escolhendo a Linguagem de Programação Certa para sua Startup

Toda Startup é fortemente ligada a tecnologia que adotou para desenvolver seus produtos. Nós não somos evangelistas de nenhuma tecnologia, mas sabemos que a linguagem de programação escolhida na fase inicial da empresa tem papel importante na constituição da empresa.

Em vários cases, a segunda geração de empreendedores (ou de qualquer funcionário de uma startup) pode rever suas decisões anteriores para acertar de vez em sua próxima startup. Adam D’Angelo é um ex-funcionário do Facebook, onde aprendeu várias lições valiosas – sobre como escolher a linguagem de programação certa – e está compartilhando informações que o ajudaram a lançar sua própria startup, o serviço de Q&A (perguntas e respostas) Quora.

Respondendo a uma pergunta do porque do Quora ter escolhido o Python para seu desenvolvimento, D’Angelo – fundador do site – voltou aos seus tempos de Facebook para embasar sua resposta. De acordo com D’Angelo, o Quora escolheu o Python por muitas razões técnicas, mas também pelos problemas que eles enfrentaram ao usar o PHP no Facebook.

“PHP estava fora de questão. O Facebook está preso nisso por questões de código legado, e não por ser a melhor opção no momento,” disse D’Angelo, fazendo referência a outra discussão separada do Quora sobre o uso do PHP. “Nossa principal abordagem dessa experiência é que a escolha da linguagem de programação é muito importante e, extremamente cara para mudar depois.”

Uma das outras razões importantes que fez o Quora escolher o Python, segundo ele, é o desejo de ser construído em softwares abertos (o que não desqualificaria o PHP). Outra linguagem que foi cogitada para o Quora foi o C#, mas ele foi criado pela Microsoft como parte do .NET e sua estabilidade ainda é questionável, disse D’Angelo. Escolher a linguagem de programação certa é uma decisão que depende do caso e da startup, e D’Angelo sente que o Python foi a escolha perfeita do Quora.

“Até agora, estamos muito satisfeitos com nossa escolha,” ele disse. “Tivemos uma pequena parte com certo preconceito, mas todos os funcionários que já trabalharam com outras linguagens estão felizes com a transição para o Python, principalmente os que vieram do PHP.”

A linguagem de programação que sua startup escolher será como uma futura estrutura óssea do serviço, e um relançamento em um novo framework ou uma nova linguagem não é o ideal. Cada linguagem tem suas próprias vantagens sobre as outras para completar tarefas diferentes e, para o Quora, o Python parece ter sido a melhor escolha.

Uma das lições mais importantes para Startups web é que independente de para quê, o LAMP ainda é a escolha mais popular. Linux, apache, PHP e Python sempre devem ser levadas em consideração. Hoje já vemos alguns passos em direção ao uso (pontual) de linguagens funcionais, mas ainda assim, sair do comum (principalmente nos momentos iniciais) pode sair caro. Vale ressaltar que nenhum conselho é definitivo, e estar atento aos novos frameworks e a comunidade de cada linguagem é muito importante.

Outra lição que podemos tirar desta experiência é não temer a aprendizagem de uma nova linguagem para um novo projeto. Novas ferramentas facilitam para os desenvolvedores na transição entre as linguagens, por isso, não fique preso na escolha de uma linguagem baseada simplesmente na sua familiaridade com ela. As linguagens devem ser escolhidas por sua capacidade de atender às necessidades de sua startup, e não por ser a tecnologia que os seus desenvolvedores a conheçam.

0 responses to “Escolhendo a Linguagem de Programação Certa para sua Startup

  1. Senti falta de Ruby, que eu arrisco dizer que é a linguagem mais popular para startups no momento.

    E eu sinceramente acho que o D’Angelo não conhece muita coisa de .NET, muito menos do Mono. “Estabilidade questionável”? Sei não, viu…

  2. Senti falta de Ruby, que eu arrisco dizer que é a linguagem mais popular para startups no momento.

    E eu sinceramente acho que o D’Angelo não conhece muita coisa de .NET, muito menos do Mono. “Estabilidade questionável”? Sei não, viu…

  3. As mais usadas por tartups com crtza absoluta são: PHP, Python e Ruby. Agora não deve-se ficar preso em 1 mas sim usá-las dependendo do projeto! ISso sim é uma startup, se moldar ao que é necessário.

  4. As mais usadas por tartups com crtza absoluta são: PHP, Python e Ruby. Agora não deve-se ficar preso em 1 mas sim usá-las dependendo do projeto! ISso sim é uma startup, se moldar ao que é necessário.

  5. Eu participo ativamente da lista de Python Brasil, e também escrevo aqui no ReadWriteWeb, então gostaria de deixar meu comentário…

    Escolher a linguagem certa depende de muita coisa. Da equipe, do projeto, do prazo, da estratégia, etc. Cada linguagem tem um ‘ecosistema’, com fatores e dinâmica diferente. Sem dúvida, se eu fosse começar um projeto novo hoje, faria em uma das três: PHP, Ruby ou Python. Só faria em Java por obrigação, ou se a base legada fosse grande suficiente para justificar o ‘overhead’ que o ‘ecosistema’ do Java impõe. E acredito que em breve, será possível fazer o mesmo em Javascript puro (incluindo o lado do servidor).

    Sobre a comparação de Python e Ruby: ouvi um dia desses atrás que Ruby tem muito mais evidência e popularidade, mas que Python ainda leva certa vantagem em projetos críticos. Concordo com isso, e acho que tem muito a ver com a comunidade. Python é uma linguagem mais antiga, com base formal/científica mais sólida. Muitos projetos Python são fechados, como é o caso dos projetos da Nasa, Google, Lucasfilms, etc., e são feitos por equipes experientes e com domínio da linguagem há muitos anos. Toda infra da linguagem é muito madura, e mesmo limites famosos como o GIL – que incomoda bastante – são tão conhecidos que o pessoal administra numa boa. É um ambiente “sem surpresas”.

    Já Ruby é comparativamente mais nova, e atrai desenvolvedores mais novos também. O pessoal é bem mais vocal na “advocacy” da linguagem. E o principal, é que o ambiente de runtime do Ruby ainda não está tão maduro e reserva surpresas. Isso torna a linguagem menos adequada para equipes que tenham menor propensão a assumir riscos. Por outro lado, equipes mais jovens podem se sentir mais atraídas por essa mesma dinâmica. Tem muito de estilo de trabalho.

    Escolher uma linguagem tem muito disso – de estilo. A linguagem meio que molda seu jeito de pensar e de expressar idéias. Como disse uma vez Caetano Veloso (em música que a Gen Y certamente não ouviu…), “só é possível filosofar em alemão”.

  6. Eu participo ativamente da lista de Python Brasil, e também escrevo aqui no ReadWriteWeb, então gostaria de deixar meu comentário…

    Escolher a linguagem certa depende de muita coisa. Da equipe, do projeto, do prazo, da estratégia, etc. Cada linguagem tem um ‘ecosistema’, com fatores e dinâmica diferente. Sem dúvida, se eu fosse começar um projeto novo hoje, faria em uma das três: PHP, Ruby ou Python. Só faria em Java por obrigação, ou se a base legada fosse grande suficiente para justificar o ‘overhead’ que o ‘ecosistema’ do Java impõe. E acredito que em breve, será possível fazer o mesmo em Javascript puro (incluindo o lado do servidor).

    Sobre a comparação de Python e Ruby: ouvi um dia desses atrás que Ruby tem muito mais evidência e popularidade, mas que Python ainda leva certa vantagem em projetos críticos. Concordo com isso, e acho que tem muito a ver com a comunidade. Python é uma linguagem mais antiga, com base formal/científica mais sólida. Muitos projetos Python são fechados, como é o caso dos projetos da Nasa, Google, Lucasfilms, etc., e são feitos por equipes experientes e com domínio da linguagem há muitos anos. Toda infra da linguagem é muito madura, e mesmo limites famosos como o GIL – que incomoda bastante – são tão conhecidos que o pessoal administra numa boa. É um ambiente “sem surpresas”.

    Já Ruby é comparativamente mais nova, e atrai desenvolvedores mais novos também. O pessoal é bem mais vocal na “advocacy” da linguagem. E o principal, é que o ambiente de runtime do Ruby ainda não está tão maduro e reserva surpresas. Isso torna a linguagem menos adequada para equipes que tenham menor propensão a assumir riscos. Por outro lado, equipes mais jovens podem se sentir mais atraídas por essa mesma dinâmica. Tem muito de estilo de trabalho.

    Escolher uma linguagem tem muito disso – de estilo. A linguagem meio que molda seu jeito de pensar e de expressar idéias. Como disse uma vez Caetano Veloso (em música que a Gen Y certamente não ouviu…), “só é possível filosofar em alemão”.

  7. Faltou mesmo foi o Perl.
    A primeira linguagem franca da web. Uma das bases do mundo Unix.

    (Meus 2 cents).

    O Perl moderno oferece o Moose e o Catalyst e o melhor e mais confiável repositório de módulos, o cpan.org.

    Uso perl desde 1992 eu creio. Com esta libguagem criei o primeiro site de vendas de CDs no Brasil, o cdclassic.com.br, em 1996. Falo todas as outras da moda, C, php, java, python, C++, Ruby, RoR e ainda prefiro o Perl.

    Quem não conhece deve olhar seriamente.

  8. Faltou mesmo foi o Perl.
    A primeira linguagem franca da web. Uma das bases do mundo Unix.

    (Meus 2 cents).

    O Perl moderno oferece o Moose e o Catalyst e o melhor e mais confiável repositório de módulos, o cpan.org.

    Uso perl desde 1992 eu creio. Com esta libguagem criei o primeiro site de vendas de CDs no Brasil, o cdclassic.com.br, em 1996. Falo todas as outras da moda, C, php, java, python, C++, Ruby, RoR e ainda prefiro o Perl.

    Quem não conhece deve olhar seriamente.

  9. Pra galera que tá falando de Java e .NET: Os projetos Jython/JRuby e IronPython/IronRuby estão com uma comunidade incrível e crescendo bastante. E o Twitter, por exemplo, utliza a plataforma Java no seu backend (porém utilizando a linguagem Scala).

    Plataforma, nestes casos, não são a maior parte do problema a meu ver.

  10. Pra galera que tá falando de Java e .NET: Os projetos Jython/JRuby e IronPython/IronRuby estão com uma comunidade incrível e crescendo bastante. E o Twitter, por exemplo, utliza a plataforma Java no seu backend (porém utilizando a linguagem Scala).

    Plataforma, nestes casos, não são a maior parte do problema a meu ver.

  11. importância em analisar qual linguagem usar, indiscutível!
    qual é a melhor? vamos discutir, discutir e nunca chegaremos a um acordo, por que?
    essa escolha depende do cenário da empresa (geografia, equipe, tempo, custo) e de outros muitos fatores.

  12. importância em analisar qual linguagem usar, indiscutível!
    qual é a melhor? vamos discutir, discutir e nunca chegaremos a um acordo, por que?
    essa escolha depende do cenário da empresa (geografia, equipe, tempo, custo) e de outros muitos fatores.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *