Arquivos históricos do BR-Linux.org apresenta:

Mais uma rodada do debate sobre linguagens de programação

Notícia publicada por brain em junho 23, 2004 10:31 AM | TrackBack


Continuando o debate iniciado no último final de semana, Guaracy Monteiro (guaracybm @ ig.com.br) enviou este link e acrescentou: "Afirmações como: 'A minha linguagem é a melhor' ou 'A melhor linguagem é aquela que o programador domina' são besteira. Assim como a maioria das comparações entre linguagens (que geralmente possuem um aspecto subjetivo). Sem que seja caracterizado o escopo não é possível tomar uma decisão. Mesmo assim, mais de uma linguagem pode apresentar solução ótima para o problema. Baseado na afirmação acima e nos diversos benchmarks, escrevi um pequeno artigo e lancei um pequeno desafio. Resolver diversos problemas utilizando a linguagem que você conhece ou que acha mais indicada para cada caso. Em respeito aos leitores, vou transcrever abaixo os exemplos que solicitei aqui (evita que vocês tenham que passar na página e achem que estou apenas querendo acessos) "

Como qualquer comparativo de linguagens ou arquiteturas, pode não comprovar absolutamente nada, mas os interessados têm a oportunidade de aprender aspectos desconehcidos sobre outras linguagens no processo.

O Guaracy continua:

Veja bem, estou apenas pedindo a solução dos problemas na linguagem escolhida. Não estou solicitando informações subjetivas sobre a linguagem. Desafio:

1. Ler a página inicial de um site (http://www.seusiteaqui.com.br), contar quantas vezes cada caractere aparece e mostrá-los em ordem crescente (de caractere).
2. Renomear todos os arquivos com a extensão .icn ou .icon de um diretório, trocando espaços por um sublinhado.
3. Trocar todas as ocorrências de 'TT' em um arquivo html (local) por '-PP-'.
4. Gerar todas as combinações de um quadrado mágico de 3x3. Para quem não sabe, um quadrado mágico é uma matriz quadrada onde são colocados números diferentes de um a n em cada célula. A soma de cada linha, coluna ou diagonais é sempre igual. Por exemplo, para o nosso caso, um quadrado de 3x3, uma das soluções é: 2 7 6 9 5 1 4 3 8 Foram utilizados os números de 1 a 9 e a soma é sempre 15.

 

Comentários dos leitores
(Termos de Uso)

» MrFaber () em 23/06 12:16

Olá pessoal,

Sou programador de sistemas gerenciais cliente X servidor , onde nesse setor existem diversas linguagens de fazem essa tarefa muito bem.

Em relação a peformace da linguagem a ser utilizada, gostaria de compartilhar uma dúvida

No caso de sistemas como as suítes de escritório OpenOffice e MS Office essa diferença de performace pode ser mais visível.

A questão é? Pq? o OpenOffice não consegue ter um desempenho a altura de seu concorrente? Seria a Linguagem utilizada? A forma de desenvolvimento?

Abraços


» MrFaber () em 23/06 12:19

Desculpe! Mas o post anterior ser relaciona a todas noticias anteriores sobre a linguagem de programação


» java2 () em 23/06 12:40

MrFaber: Até onde sei é porque o StarOffice/OpenOffice tinha/tem código Java no meio...


» Felipe Raposo () em 23/06 13:11

Mas eu acho que o OpenOffice é "mais pesado" porque ele foi desenvolvido para rodar em rede, processado em um servidor e as estações se beneficiando disso. O mesmo problema do x.org e do XFree.org.

Pode ser que eu esteja falando besteira. Quem souber melhor, por favor se manifeste.


» albert knox () em 23/06 13:13

peor, o mozilla tb é muuuuito mais lento que o IE.
até o abiword é mais lento que o word.
nem sei se tem a ver com a linguagem.


» Everton Lucas () em 23/06 14:25

Acho que a melhor linguagem de programação é aquela que usamos e satisfaz nossas necessidades.


» Daniel Fonseca Alves () em 23/06 14:30

Bom.
Pelo que sei acho que deve ser pq o Windows carrega muitas bibliotecas durante a inicialização que desta forma melhoram a performance de muitos programas.
Já o Linux é feito com vários tipos de bibliotecas que se não forem carregadas de alguma forma serão carregadas toda a vez que alguém abre um programa.


» Daniel Dantas () em 23/06 14:37

Pediram para quem souber mais se manifestar.
Pela milhonésima vez, vou dizer novamente. O problema do Xfree ou X.org não é o código de rede. Eles não usam o TCP/IP, que é lento. Usam os sockets unix, que são muito rápidos. Tanto não é o problema deles que o X.org e os outros forks do Xfree não retiraram o código de rede e nem vão retirá-lo.
O problema de perfomance do openoffice é outra coisa, totalmente diferente. Nada verdade, ele existe e não existe. O X da questão é que o openoffice tem uma biblioteca gráfica própria, para que seja multiplataforma. O microsoft office utiliza a biblioteca própria do windows.
O openoffice é lento para carregar, mas durante a utilização, ele não tem um desempenho ruim, como dizem. Ele roda normal. Antigamente, ele utilizava muita memória, que o deixava lento em sistemas com pouca memória, mas, agora, esse consumo de memória exagerado já foi corrigido.
O openoffice demora a carregar porque ele tem que carregar a biblioteca gráfica para a memória toda vez que ele é iniciado, enquanto que a biblioteca do microsoft office já está carregada (ela é a padrão do windows). Tanto que se você utilizar o carregador rápido, essa "demora" desaparece.
Só uma coisinha sobre o desafio. Dos 4 itens, 3 utilizam strings, o que prioriza muito linguagens como o python, perl e php, que manipulam muito bem strings. Claro que se pode implementar isso em C/C++, mas exige um trabalho maior, porque eles não foram feitos, principalmente, para manipular strings.
Eu acho que essas briguinhas de qual a melhor linguagem é a maior perda de tempo que existe. Todo o tipo de teste que for se fazer em relação a isso, vai gerar margem a dúvidas.
Só acho o seguinte: você gosta da linguagem que está usando?? Ela não é extremamente lenta para o que você quer fazer?? Ela serve para o que você quer fazer (tipo, o python não serve para criar um sistema operacional do zero)?? Você se dá bem com a sintaxe da linguagem?? Se sim para tudo, por que mudar?? Por que ficar tentando provar que a sua linguagem preferida é melhor que a dos outros??
Vão programar e parar de ficar procurando piolho em cabeça de minhoca. Vão ajudar muito mais a comunidade agindo assim. Flamewar idiota.


» santo () em 23/06 15:04

Bom pelo que eu sei existem duas diferencas básicas entre o windows eo linux que alteram a velocidade dos aplicativos a primeira é o gerenciamento de memoria, o windows não deixa um processo de prioridade normal utilizar mais que uma quantidade X de ram física por exemplo 4MB mesmo que o aplicativo precise de 40MB enquanto o linux libera toda a memoria disponivel que o aplicativo necessita, ai entra a primeira questão para carregar um novo aplicativo o windows normalmente tem o espaco para carregar o aplicativo sem fazer muitos marabalismos enquanto o linux muitas das vezes vai ter que redistribuir a memoria mandando uma parte da memoria utilizada pelos aplicativos para o disco (o famos swap) isto demora um pouco mais, ou seja o linux demora mais para carregar um aplicativo do que o windows mas depois que o aplicativo esta carregado ele possivelmente vai rodar mais rapido no linux. A segunda questão tem a ver com a api gráfica do windows e outras apis que a microsoft fez para otimizar seus produtos no windows por causa disto os produtos microsoft devem ter algumas chamadas de kernel otimizadas para melhorar suas atividades, e é muito provavelmente por causa destas decisões de projeto da microsoft que os seus produtos são mais rápidos que seus concorrentes no windows.
Não é tão a qualidade exepcional dos programdores da microsft, na verdade se alguem escrever um kernel para o linux especialmente dedicado a interface gráfica e a alguns aplicativos estes tambem vão ser muito rápidos e com certeza mais rápidos do que os outros aplicativos dos outros tipos de kernel. O unico problema disto tudo é que se houver um bug na interface gráfica o kernel cai junto é isto que acontece no windows


» Guaracy Monteiro () em 23/06 15:09

Bem Dantas,

Primeiro vou citar novamente a frase do Augusto:

"Como qualquer comparativo de linguagens ou arquiteturas, pode não comprovar absolutamente nada, mas os interessados têm a oportunidade de aprender aspectos desconehcidos sobre outras linguagens no processo."

Apesar dos três primeiros exemplos utilizarem o tratamento de strings, o primeiro acessa a web e o segundo está relacionado com o SO.

Usuários de SOs como o Linux, talvez nem pensem em 'linguagens' para realizar essas tarefas. Palavrinhas simples como for, tr, sed, mv e o resultado já está pronto.

Apesar dos três primeiros serem interessantes, o quarto é que vai provar algo mais. ;-) Assim como os outros, pode ser resolvido em qualquer linguagem. Para informações e dicas sobre como resolver:
http://mathworld.wolfram.com/MagicSquare.html

Quanto ao 'Flamewar idiota', estou certo que não se refere a minha pessoa (ou não entendestes o meu objetivo).

A minha intenção, além de mostrar que pode ser feito tudo com qualquer linguagem com amior ou menos esforço (conheces o sedsokoban do Aurélio?) e, mesmo em uma linguagem de forma diferente, é também uma oportunidade de aprendizado. Se és programador e pretendes ser um dos bons, leia com atenção o texto de:
http://www.pragprog.com/pragdave/Practices/Kata


» santo () em 23/06 15:19

Que tal um desafio diferente!
Eu proponho que as pessoas procurem algum problema que possa ser resolvido na sua linguagem preferida mas não possa ser resolvido em outras linguagens.
Mais uma coisa por que não foi sugerido a implementação de algoritmos de busca e algoritmos de ordenaçao nas linguagens?


» Ark () em 23/06 17:35

Daniel Dantas: este tipo de flame war idiota movimenta o site. É o terceiro post deste em menos de 3 dias que o Augusto põe. A criançada curte. O povo xiita/infantil que curte python (não estou falando mal da linguagem, que é ótima, mas sim de alguns users) então se arrepia: "wow, falar mal de Java".


» Peter Parker () em 23/06 17:37

Daniel Dantas: vc esqueceu de falar que Java também é ruim pra manipular Strings (em termos de desempenho). Por isso existe a classe StringBuffer.


» Augusto Campos () em 23/06 17:41

Ark, movimentar o site é o menor dos interesses envolvidos.

Quem leu e participou das discussões desapaixonadamente teve oportunidade de conhecer e se informar sobre características e recursos de diversas ferramentas tecnológicas que certamente não são do domínio de todos. E o número de participações e o tempo de duração dos debates servem para atestar o interesse que o tema desperta.

Claro que sempre tem aqueles que preferem encarar estes debates como um movimento contra ou a favor de alguma coisa, que deve ser apoiado ou repelido, e não simplesmente apreciado e compreendido. É uma pena, mas não dá de escapar deste fenômeno. Cabe a cada um decidir de que forma vai dispor dos recursos que a comunidade oferece.


» Daniel Dantas () em 23/06 21:18

Guaracy,
Você acertou. Não estou falando de você e a minha intenção não é falar mal de ninguém.
É que já é a terceira notícia que aparece esse tipo de coisa essa semana. Pra mim, ninguém pode superar o C/C++, mas se eu for fazer algo simples, não vou ficar perdendo o meu tempo avaliando onde uso ponteiros, variáveis const e essas coisas.
Programas diferentes pedem características diferentes das linguagens. Claro, como falei que gosto mais do C/C++, um algoritmo bem feito no C/C++ bate qualquer outra linguagem que existe. Estou excluindo o assembler.
O único defeito que vejo no C/C++ é o tempo que você gasta para fazer um programa. Então, para tarefas simples, tem um mundo de linguagens as mais diversas, que vão fazer um código mais lento, mas, como as tarefas são simples, não vai interferir tanto no resultado final.
Por que ficarmos perdendo o nosso tempo discutindo preferências pessoais?? Isso se chama flamewar.
Bem, se a galera gosta mesmo é de ficar discutindo o sexo dos anjos, não posso fazer muita coisa. Quem fez o linux como ele é hoje, prefere ficar programando.
Vamos discutir técnicas de programação e algoritmos e parar com essas discusões sobre preferências pessoais. Se não, vamos colocar milhares de comentários para que no final cada um volte a programar na sua linguagem preferida. Milhões de teclas pressionadas para dar em nada.


» Tomas () em 23/06 21:56

"É ignorância encher os ouvidos dos outros em suas crenças" Alguém lá do oriente

É uma frase que é usada por algumas filosofias orientais e que cabe perfeitamente neste momento


» Tomas () em 23/06 21:56

"É ignorância encher os ouvidos dos outros com suas crenças" Alguém lá do oriente

É uma frase que é usada por algumas filosofias orientais e que cabe perfeitamente neste momento


» andre duarte bueno () em 25/06 12:31

cada macaco no seu galho.

quero fazer uma home-page, que linguagem devo usar?
PHP, html

quero fazer um programa que roda pela internet, preenchimento de cadastro, que linguagem devo usar?
PHP com MySQL/POSTGRES

quero fazer um jogo online (como o chess do games.yahoo.com), ou um programa de comunicação pela internet, que linguagem devo usar?
JAVA

quero fazer um sistema operacional, um programa para desktop instalado localmente (um editor, uma planilha), um programa numérico/matemático, um programa de engenharia, um programa com muitas contas,
que linguagem devo usar?
C++

PS: não conheço PYTHON.


Comentários desativados: Esta discussão é antiga e foi arquivada, não é mais possível enviar comentários adicionais.



O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação, layout, tabela de caracteres, etc.) o acervo de notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter de acervo, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.