Django UtilidadesMarinho Brandão

May/07 03

“Não aguento mais Java”

java python
Publicado há 1 year, 8 months por Marinho Brandao
Bom, antes que derramem em cima de mim toda a fúria religiosa pró-Java, vou me explicando: este post é apenas um resumo de algumas mensagens na lista Python-Brasil, que podem ser vistas em sua totalidade aqui. Mas a minha opinião está bem próxima da média vista abaixo. decopzp: " A galera nas faculdades no meio de programação so fala em Java. Queria saber como começar a aprender Python, gostei muito só que estou com algumas duvidas em relação a classes methodos e etc...Na verdade que saber tudo como fazer o que fazer...Não aguento mais java" Luciano Ramalho: "Em Java, existe uma aberração sintática chamada "inner classes" que foi parida para suprir a grotesca falta de um jeito de se passar funções como parâmetros. Apenas uma das diversas falhas gritantes de projeto da linguagem Java. Mas é uma ótima linguagem para quem está em busca de um emprego chato. Agora sério: Java é um excelente substituto para C++. Empresas e instittuições que antes desenvolviam em C++ agora têm uma alternativa mais segura e confiável para seus projetos. Faz todo o sentido a Apache Foundation e a IBM usarem Java, por exemplo. O grande erro que muitas empresas no mercado estão cometendo é substituir linguagens de mais alto nível por Java, e achando que a queda de produtividade é apenas passageira, enquanto a equipe não ganha fluência na linguagem." Rodrigo Senra: " No contexto particular de ensino *introdutório* de programação, eu diria que Java como primeira linguagem é no mínimo nocivo. > Java está na moda. Piercing também está. Fumar já esteve na moda. Particularmente eu não sou um cara que liga para a moda. Prefiro mais a média, ou até mesmo a mediana ;o) Em suma, o fato de Java estar na moda para mim só não é irrelevante porque me atrapalha. Atrapalha pois tenho que convencer semi-leigos de que o fato de Java estar na moda é irrelevante ;o) Eu não digo para o Padre qual vai ser o sermão, eu não digo para o padeiro como fazer o pão nem para o médico qual o tratamento que quero receber antes dele dar o diagnóstico. O computeiro, apesar do nome cacofônico, merece respeito. Uma tecnologia ditada pela moda, e não fundamentada pela análise prática e teórica, é uma falta de respeito para a nossa classe. > Ela é uma otima linguagem Aqui concordo, ela tem seu nicho e suas vantagens. E ainda é melhor que *muita* linguagem por aí. > Vamos com calma. Python está sendo usada em cursos > introdutorios de programação pois é uma linguagem de fácil acesso... > mas isso nao quer dizer que seja a melhor linguagem do mundo. Melhor é um conceito extremamente dependente de contexto. No contexto de ensino introdutório, ainda não vi nada melhor do que Python." Luciano Ramalho: "tenho plena consciência de que existem milhões de programadores brilhantes que preferem Java. Mas eu não resisto a uma oportunidade de criticar o Java, exatamente porque "está na moda". Isso tem duas consequências lamentáveis, a meu ver: (1) muitos gerentes que não sabem distinguir uma referência de um ponteiro escolhem Java para projetos que poderiam ser muito melhor resolvidos em PHP, Python, Ruby, Perl, VBScript etc, e acabam submetendo equipes inteiras de desenvolvedores a uma linguagem e uma API que são otimizadas para projetos imensos e complexos, e consequentemente acabam induzindo projetos pequenos e simples a ficarem imensos e complexos também. (2) é tão sofrido aprender e ficar produtivo em Java que muitos de programadores estão ficando sem vontade de aprender uma segunda, terceira ou quarta linguagem, com medo de passar pelo mesmo calvário de novo; pior, depois de suar tanto a camisa para aprender Java, muitos se convencem de que complexidade == qualidade, e que uma linguagem mais fácil de usar, como Python, tem que ser necessariamente inferior ou mais limitada, o que absolutamente não é verdade." Luciano Ramalho: " > E como ensinar herança múltipla, sobrecarga de operadores e tipagem > dinâmica em uma linguagem que não os suporta/não os tem? Sua lista de conceitos de OO está contaminada por uma perspectiva javista, Gleidson. Smalltalk, a primeira e até hoje uma das melhores linguagens orientadas a objeto já criadas tem tipagem dinâmica e não tem interfaces. C++ tem sobrecarga de operadores e não tem interfaces. Ninguém pode dizer que Smalltalk e C++ não são exemplos de linguagens orientadas a objetos (*). Enfim, o que é essencial em uma linguagem orientada a objetos? A resposta não é simples, nem única. > A questão do Java é meio que a popularidade dele. Sim, é o que eu tenho dito: a popularidade do Java é ao mesmo tempo sua maior virtude e seu maior defeito. O defeito está no fato de qua a "popularidade" está levando milhares de empresas a usarem Java para desenolver aplicações que seriam feitas de forma muito mais simples com uma linguagem mais ágil, como Python, Ruby, Perl ou até mesmo PHP e VBScript. > É fácil achar um > computador que tenha um ambiente java instalado. Agora vai achar um que > tenha o python instalado pra poder rodar os programas? A Microsoft parou de distribuir Java com o XP, lembra? Há anos o Java perdeu a vantagem de sair pré-instalado em milhões de máquinas Windows. No Linux, praticamente qualquer distribuição vem com Python, mas não com Java. E no MacOS X vem as duas. > Fora que em Python não é compilado, então tens que > dar o código-fonte para que alguém possa rodar seu programa. Não é verdade. Python é compilado para um bytecode, assim como o Java. E eu posso distribuir este bytecode em vez do fonte. Mas existem ferramentas capazes de regenerar o código-fonte a partir do bytecode, tanto no caso do Java quanto no caso do Python. De qualquer forma, para 90% dos desenvolvedores essa questão é irrelevante, porque não somos pagos para produzir software proprietário que vai ser vendido em caixinhas, e sim para desenvolver soluções customizadas para clientes, internos ou externos, que exigem o fonte de qualquer maneira." Luciano Ramalho: " > Ninguém pode dizer que Smalltalk e C++ não são exemplos de linguagens > orientadas a objetos (*). Faltou explicar o (*)... O Alan Kay, líder da equipe que criou Smalltalk, uma vez disse: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." "Eu inventei o termo Orientado a Objetos, e posso lhe dizer que não estava pensando em C++." Se tem alguém que pode dizer o que é ou deixa de ser OO, é o Alan Kay." Luciano Ramalho: "Gleidson, talvez vc não saiba ou passou batido, mas interfaces são uma gambiarra no java para fornecer herança multipla. A unica coisa que é bom em interfaces é que elas fornecem duck typing para java, o que não é necessario em python justamente por causa da tipagem dinamica." PS: bom, só pra não deixar em branco, estas frases foram tiradas de uma discussão na lista de Python, e eu destaquei as argumentações pró-Python, porque evidentemente sou usuário e divulgador desta linguagem. As pessoas citadas acima disseram estas frases no contexto de forma muito ponderada, e obviamente não podem ser mal-interpretadas (da mesma forma que deve acontecer com comunidades de quaisquer outra linguagens). Na minha opinião, a informática é uma ciência que oferece ferramentas para facilitar o dia-a-dia. E ferramentas são assim: uma hora você precisa do martelo, outra hora do porrete, o martelo sozinho não resolve as coisas, ele precisa de um prego, uma tábua e do principal: o carpiteiro. Um carpinteiro qualificado saberia fazer com o martelo o mesmo que se faria com o porrete, e vice-versa, porque ele está preparado pra fazer aquilo. Outra metáfora que pode ilustrar aqui é o de comparar um sedã, uma scania e um trator. Digamos que o Python seja o sedã, o Java seja a scania e o C seja o trator: cada um tem sua aplicabilidade.

Links sociais


Comentários


Escreva o seu


.net adoradores ajax android apple banco de dados blogosfera brasil django emprego família gadgets google inovação java linux lua microsoft musica opensocial opinião publicidade python rails religiao screencast seguranca software-livre tdd web windows yadsel

Artigos recentes