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!
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!
Concordo com todos os pontos.
ResponderEliminarTodas 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.
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.
ResponderEliminarOuvi 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...
Ultimate Programming Language .. pura
ResponderEliminare 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