Avançar para o conteúdo principal

Ultimate Programming Language

Há já alguns anos que programo e tenho notado que há uma discussão que é sempre actual.

Qual a linguagem de programação definitiva. A melhor que as outras todas? Aquela que toda a gente deve de aprender, porque é sem sombra de dúvida melhor.

Será o Java? Será o .Net? O Perl? O Ruby? O C/C++? o Cobol? o Smaltalk? o LISP? o PHP? o ASP? o J2EE? ETC ...

Encontro um paralelo na discussão de qual melhor a Arte Marcial de todas. Será o Karaté, o Judo, o Jiu Jitsu, o Kempo, o Kung Fu o Taekwondo, o Tai chi Chuan, etc.

Penso que a resposta acaba por ser idêntica! Nos vários Campeonatos organizados para avaliar qual das artes é melhor, numas vezes ganhava uma, noutras ganhava outra. É impossível alguém assegurar que a arte A é sem dúvida melhor que a arte B. Até porque de vez em quando aparece alguém excepcional numa arte que é capaz de surpreender tudo e todos. Mais tarde aparece outro que ganha destaque noutra arte, etc. O que conta é a eficácia que cada um tem na arte que domina. Sempre levei em consideração a máxima do meu Sensei:
"A estrada tem duas bermas. Estar numa é seguro, estar noutra é seguro, estar no meio é perigoso, podes ser atropelado."

Será que quando uma empresa contrata seguranças está preocupada com as artes marciais que os seus seguranças dominam? Ou apenas exige que sejam eficazes a garantir a segurança contratada?

Transpondo isso para as tecnologias de informação. Das imensas tecnologias(linguagens) disponíveis, há algumas que são mais iguais, isto é, que disponibilizam as mesmas potencialidades. Entre Actualização de bases de dados, páginas html dinâmicas, webservices, ligação a sockets, multiprocessamento, processamento de lotes (batch), etc. Entre essas não posso dizer que uma é melhor do que outra. Talvez para mim, tendo em conta a minha experiência, uma seja mais fácil, do que outra. Mas outro terá uma opinião diferente. Será que isso faz com que eu seja melhor do que o outro? Será que o devo convencer a seguir o meu caminho de aprendizagem? O melhor que lhe posso dizer é:

"Sai debaixo das pedras
E vai
Vai

Vai mais longe mais fundo
Não mudes de assunto
Só porque é mais fácil

Vai
Vai mais longe vai
Vai ao fundo do fundo
Não mudes de assunto
Há sempre um perigo"

Esta pérola da cultura portuguesa, ilustra o meu pensamento.

Muitas vezes no percurso do nosso caminho somos confrontados com pretensas facilidades que nos afastam do nosso caminho inicialmente traçado. No entanto o problema é que logo a seguir aparece outra novidade qualquer que também ela é mais fácil, melhor, mais eficiente. Tentam sempre nos fazer passar por tolos por não estarmos na berra da tecnologia. Se seguirmos o impulso de saltar de novidade em novidade, corremos o perigo de não conhecermos uma tecnologia o suficiente para fazermos algo de útil com ela. O que compromete a realização de um processo de fio a pavio. Normalmente no fim ficamos sempre com a sensação que afinal o que aparentemente era difícil é na realidade muito fácil.

Se queres realmente fazer a diferença como programador, escolhe a tecnologia que é mais simpática para ti e para a industria em que queres trabalhar e procura aprender o máximo que puderes, para seres eficáz na realização de qualquer projecto que te proponham. Porque o que avaliam realmente é a tua eficácia no processamento da informação e não a tecnologia por ti escolhida.

A prova disso é questionas-te acerca de qual a linguagem de programação usada no Google? Ou basta-te saber que as tuas pesquisas são praticamente instantâneas? Ao utilizador final, o que conta é a eficácia com que acede à informação e não a tecnologia que a veícula.

Já agora valia pensar nisso!

Comentários

  1. Concordo com todos os pontos.

    Todas as linguagens ou ambientes de desenvolvimento têm os seus pontos fortes. Alguém que seja adepto exímio de uma linguagem consegue fazer qualquer coisa nela (até porque costumam ser todas equivalentes a uma máquina universal de Turing).

    Até vou dar exemplos:

    Quando fomos fazer o nosso trabalho de fim de curso, de computação gráfica, o meu colega e eu escolhemos fazer o código em C++ ao invés de Java, como proposto pelo nosso professor, porque já a conheciamos à muitos anos e sabíamos como espremer desempenho dela se necessário. Já tinhamos um desafio suficiente a implementar algoritmos bleeding edge sem termos de nos preocupar a dominar uma linguagem que na altura ainda era nova e não tinha muito suporte para este tipo de tarefa. Acabamos por ter nota máxima, 20, por isso acho que não nos safamos mal com a escolha. ;-)

    Noutro projecto em que participo, o Freeciv, utilizamos C porque existe imenso código pré-existente em C e demorávamos mais tempo a reescrevê-lo noutra linguagem do que a adicionar as novas funcionalidades que os utilizadores pedem.

    Mas também vou dar um contra-exemplo:

    Recentemente tive de fazer web scraping (i.e. extrair informações de um site web). Para isso utilizei Perl com os módulos HTML::TokeParser e WWW::Mechanize. Porquê? Porque queria fazer parsing de HTML com uma sintaxe bastante doente. Fiz isso em Perl numas 3-4 horas. Penso que se o fosse fazer em C a reutilizar uma biblioteca de expressões regulares ou um parser (e.g. libxml) + o tidy demorava uma semana. No entanto eu programo em C há mais de 7 anos. Este foi o meu primeiro programa a sério em Perl (o outro foi um "Hello World").

    Com isto quero dizer, penso que não se deve cair na tentação de usar todos os últimos buzzwords só porque alguém acha que é melhor. No entanto, também convém olhar um pouco para além do nosso quintal. Caso contrário pode-se ficar com uma visão demasiado redutora.

    ResponderEliminar
  2. Ah e já agora quanto ao Google. Ouvi falar que no Google normalmente fazem o primeiro protótipo em Python e depois reimplementam as partes críticas para o bom desempenho em C++. Se repararem, eles até contractaram o Guido van Rossum à uns tempos.

    Ouvi falar também que o concorrente #1 do Google, o Yahoo, programa o primeiro protótipo em PHP e depois reimplementa as partes críticas para o bom desempenho em C++.

    No entanto isto não é uma regra cega. Pelo que ouço falar no Google são bastante agnósticos quanto às tecnologias de software utilizadas. Já ouvi falar de programadores de Java, Perl e PHP que vão para lá trabalhar. Desde que funcione...

    ResponderEliminar
  3. Ultimate Programming Language .. pura
    e simplemente não existe, já trabalhei em mais linguagem que posso
    contar pelos dedos das minhas mãos.

    Não existe .. existe ferramentas que te ajudam a resolver determinados problemas ...não existe um canivete suiço ....

    Como disse o vasco ... cada uma tem o
    seu ponto forte, eu acrescento "e muitos pontos fraços" quanto mais generalista a linguagem pior é a sua eficácia o java é um belo exemplo disso na sua vertente j2EE
    e os EJBs.
    Eu pessoalmente nunca vesti a camisola de nenhum "fabricante" não tenho qualquer tipo de preconceito em relação a qualquer tipo de liguagem.

    se sabes ... se és um "PROGRAMADOR" ...e não um "copy/paster" ...consegues ... mais
    rapido ou mais lento , com mais 1000 linhas de codigo ou menos 1000
    linhas

    Antonio Roque

    ResponderEliminar

Enviar um comentário

Mensagens populares deste blogue

Conferência Europeia da Comunidade Alfresco

Já foi há quase quinze dias, mas julgo que ainda será relevante abordar a Conferência Europeia da Comunidade Alfresco, que decorreu em Barcelona no dia 22 de Abril. Com uma audiência de mais de 200 pessoas (a sala reservada estava cheia) vindas de vários pontos da Europa, este evento serviu para que muita gente desta comunidade se encontrasse pela primeira vez face a face. A Alfresco Inc. é uma empresa recente, que apostou em criar uma solução de gestão documental de topo de gama usando o modelo open-source . Considerando que a empresa, no seu terceiro ano de actividade, já atingiu o break-even , parece ter sido uma boa aposta. No arranque da conferência esteve John Powell, CEO da empresa, que falou um bocado sobre a excelente evolução da empresa e abordou a "guerra" entre o modelo de negócios proprietário e o modelo de código aberto. Exemplificou este conflito com o Microsoft SharePoint, que ele designou como "a morte da escolha", justificando o epíteto pelo facto ...

Backup automático de disco USB (pen drive)

Hoje em dia toda a gente tem uma pen drive para levar os seus ficheiros de um lado para o outro. E muitas vezes está lá trabalho importante. Mas impõe-se uma pergunta: o que acontece se se perde a pen drive ? Ou se esta se avaria? Quem é que faz backups regulares da pen drive ? Muito pouca gente! Pessoalmente tenho por hábito fazer um backup cerca de uma vez por semana. Quando o trabalho é muito, faço backup mais vezes. Mas já por duas vezes as avarias me fizeram perder as versões mais recentes. E isto chateia. Por isso aqui há uns dias decidi "coçar esta comichão" e resolver o problema de forma mais sistemática: arranjei maneira de fazer um backup automático cada vez que ligo a pen drive a um computador. (sim, eu sei que há software específico para isto, mas que querem, apeteceu-me fazer mais um) A receita é relativamente simples: um script (DOS batch file ) que faz o backup , um ficheiro de definição de autorun e já está. 1. O script de backup - Basta instalar, na roo...

Horário de trabalho

A trabalhar há dois meses na Irlanda, ando para escrever alguns apontamentos daqui de Dublin, mas são tantos e tão diversos que há matéria aqui para escrever um blog inteiro (e talvez ainda o faca se a inspiração vier em meu auxílio). Há no entanto uma diferença que encontrei por aqui que é muito mais marcante do que eu poderia supor poder ser, e lembrei-me deste ponto que talvez se acomode bem neste blog e no tipo de posts que por aqui há. Falo do horário de trabalho . O horário que por aqui se pratica, e que suponho generalizado, é de entrar as 9h e sair as 17h, com meia-hora de almoço. Ou seja, 7 horas e meia. Ou seja, meia-hora de diferença para o horário "normal" de Portugal. E que diferença que essa diferença faz... Os irlandeses não são muito "fanáticos" com o trabalho e os horários, não se trata de regimes "autoritários" como parece ser em Inglaterra ou na Alemanha - a propósito, sabem que os alemães dizem que na Alemanha a taxa de criminalidade é ...