Object Pascal: Lazarus 0.9.30
Enviado por Benjamim Góis (benjamim·goisΘgmail·com):
“Escreva uma vez e compile para onde quiser, é o lema deste ambiente de desenvolvimento integrado desenvolvido para o compilador Free Pascal 2.4.2. O software objetiva ser compatível com o Delphi e, ao mesmo tempo, suportar diversas arquiteturas e sistemas operacionais. A nova versão trás inúmeros aperfeiçoamentos, correções de bugs e aumento de compatibilidade com o Delphi original.” [referência: wiki.lazarus.freepascal.org]
Enviado por Junix (junixbrΘgmail·com):
“Lazarus é uma GUI IDE que permite você desenvolver ferramentas multiplataforma usando Object Pascal. Além de bugfixes, a equipe entregou várias mudanças na interface. Todos os detalhes desta release estão no Release Notes: [wiki.lazarus.freepascal.org/…]” [referência: lazarus.freepascal.org]
• Publicado por Augusto Campos em
2011-03-29
Já usei o Lazarus e apesar de gerar executáveis gigantescos, sua proposta de criar aplicativos multiplataforma é boa. Seria melhor ainda se buscassem destaque com recursos e diferenciais próprios ao invés de buscar compatibilidade com um ambiente de desenvolvimento praticamente extinto.
Flávio
“Já usei o Lazarus e apesar de gerar executáveis gigantescos, sua proposta de criar aplicativos multiplataforma é boa.”
Precisa lembrar de, na hora de distribuir, remover a parte de debug.
“Seria melhor ainda se buscassem destaque com recursos e diferenciais próprios ao invés de buscar compatibilidade com um ambiente de desenvolvimento praticamente extinto.”
A proposta do Lazarus é substituir o Delphi, a princípio. Mas tem muita coisa que é feita através de extensões. Junto com o próprio Lazarus já existem várias que não vem habilitadas por default.
E, como sempre, pode criar as tuas próprias, é até simples, só se torna complicado aprender, pela falta de documentação.
Acabei não sendo claro…
Não me referia a criar componentes somente, e sim em expandir a própria IDE. Usando editores de propriedades próprios e afins.
Seria melhor ainda se buscassem destaque com recursos e diferenciais próprios ao invés de buscar compatibilidade com um ambiente de desenvolvimento praticamente extinto.
O Delphi não está morto, ainda é usado no desenvolvimento de aplicativos em várias empresas, como na Coreware, onde eu trabalho (mas eu não programo em Delphi, programo em Java). Não é usado tanto quanto antigamente, mas ainda é usado.
Com certeza existem ferramentas e linguagens mais modernas e avançadas. Mas o Delphi/Pascal ainda faz muito bem o seu papel. E para mim ainda é uma das linguagens mais simples e fáceis de aprender, tanto é que ainda é muito utilizada durante a graduação em cursos superiores.
@Weber Jr, os binários gerados pelo lazarus são grandes sim. Se comparados com os gerados pelo gcc, são imensos. Isso pq o lazarus não possui suporte à linkagem dinâmica, somente estática. Isso gera binários maiores, com certeza.
Dúvidas?
http://wiki.lazarus.freepascal.org/File_size_and_smartlinking
Particularmente acho que o lazarus deveria atacar investindo na sua interface, que ainda é bem ruinzinha e tem q melhorar em vários sentidos (embora tenha melhorado muito nos últimos anos).
Ainda sobre a questão da linkagem, instalar um novo componente no lazarus é um parto, pq vc tem q recompilar toda a IDE… Tensíssimo. Existe libdl pra pascal?
tenchi
“@Weber Jr, os binários gerados pelo lazarus são grandes sim. Se comparados com os gerados pelo gcc, são imensos.”
Não afirmei que não eram, muito menos comparei. Mas não fui claro: é possível diminuir para bem abaixo do default.
“Particularmente acho que o lazarus deveria atacar investindo na sua interface, que ainda é bem ruinzinha e tem q melhorar em vários sentidos (embora tenha melhorado muito nos últimos anos).”
Algo especificamente ?
Eu gosto no geral, e estava acostumado a usar o Eclipse, que gosto, para java.
“Ainda sobre a questão da linkagem, instalar um novo componente no lazarus é um parto, pq vc tem q recompilar toda a IDE… Tensíssimo.”
Já tentou? Porque apenas falando assim parece terrivelmente complicado. Basicamente é isso:
1-Depois de instalar aparece uma caixa de diálogo avisando que precisa fazer o rebuild, pedindo permissão.
2-Após permitido é recompilado e reiniciado.
Feito! Não precisa nem abrir console e mandar fazer passo a passo. Pra mim não há “#tensão” alguma.
E não é toda a IDE, somente a parte afetada. Para compilar tudo mesmo, há opção, que não é default.
E creio que ninguém gaste muito do seu dia instalando componentes / pacotes :) .
O Tempo de compilação é muito maior que no delphi, mas isso no custo/benefício não me incomoda muito.
O que precisa melhor mesmo, e muito, no Lazarus é o tempo de lançamento entre as versões e a estabilidade da versão lançada.
Demoraram tanto a lançar essa versão que acabaram popularizando a idéia de se usar versão de SVN. Eu uso, mas não acho legal como algo de uso geral.
Fora coisas estranhas como, ter documentação, ainda que incompleta, e ela não vir ajustada para funcionar junto com a IDE.
a pergunta que não quer calar: “onde está o mercado?”
IMHO, não adianta ter uma extraordinária plataforma.. se ninguém usa.
Flávio, vc pode usar o ‘strip’ antes de redistribuir o exe, ele fica bem pequeno. É uma pena que o Lazarus ainda não otimize o executável gerado sozinho.
Tem o strip em alguma subpasta do fpc.
Não sei se o problema do lazarus é só a linkagem estática. O delphi se não me engano também faz linkagem estática e tem os executáveis muito, muito menores, com ou sem debug. E os programas compilados nele ficam mais rápidos, pelo menos nos meus testes.
Mas acredito no projeto Lazarus/Freepascal, a linguagem Pascal é muito didática e fácil de aprender, tem uma boa orientação objeto, embora tenha algumas cag@% na concepção, como obrigar a usar uma herança pra poder usar uma interface.
Infelizmente ele quase não tem mercado, não tem divulgação nem suporte pra empresas no Brasil. Pena.
@Weber Jr, os binários gerados pelo lazarus são grandes sim. Se comparados com os gerados pelo gcc, são imensos. Isso pq o lazarus não possui suporte à linkagem dinâmica, somente estática. Isso gera binários maiores, com certeza.
Tá de sacanagem né? Só falta você falar que é mais fácil programar orientado a objeto em gcc
Foi uma comparação infeliz a sua…
Se olha no FAQ, tem uma pergunta sobre tamanho e uma comparação com software gerado em C++… Veja http://wiki.lazarus.freepascal.org/Lazarus_Faq#Why_are_the_generated_binaries_so_big.3F
Além do que… hoje, com os HDS de Teras e conexão de Megas (fora do Brasil é claro) 2megas num executavel (que é o que dá sem debug) é totalmente aceitavel…
Ainda sobre a questão da linkagem, instalar um novo componente no lazarus é um parto, pq vc tem q recompilar toda a IDE… Tensíssimo. Existe libdl pra pascal?
No linux é ridiculamente rápido gerar todo o IDE novamente… No Windows deu uma bela melhorada depois que trocaram o linker do freepascal (nao mais usando o gnu ld)…
No mais, o uso de Pascal (mesmo que Object) morreu para novas aplicações… Quem desenvolve coisas novas com ele está andando para trás… retrocesso total…
Hoje em dia programo em Python e acho extremamente fácil (linguagem didática?) usar ele… O problema é criar app guis, pois tem várias opções (gtk, tk, etc), diferente do Lazarus no qual uma app qualquer pode ser gerada tanto pra Windows, quanto pra Gtk ou QT e acho que também Cocoa do Mac…
[]‘s
“Infelizmente ele quase não tem mercado, não tem divulgação nem suporte pra empresas no Brasil. Pena.”
Pois é, e o que falei, de não liberarem uma versão estável que ajuda a atrapalhar muito.
O caso é que acho que o Pascal sofre muito estigma da imagem(merecida muitas vezes) dos programadores ruins de quando o Delphi era popular.
Não digo que FPC/Lazarus devessem dominar, mas acho que existe lugar para crescimento. Tanta linguagem e variedade de ambientes por aí.
Benjamim e Marcos, discordo, acho um erro pascal pra quem está começando.
Do ponto de vista de quem começou com uma linguagem que não é pascal nem C. Achei C muito mais fácil de aprender.
Indo para esse ponto(meio offtopic) de qual linguagem aprender, usar, é boa, ou não, suas ferramentas…
Vale a pena ler o texto:
http://blog.expensify.com/2011/03/25/ceo-friday-why-we-dont-hire-net-programmers/
É um primor a descrição de como funciona a idéia de ecossistema da MS, automatização e afins.
Claro, com revolta nos comentários. ;)
@Lucas, isso depende do público. Para quem não programa para ser “hacker”, é muito mais fácil entender “ah, isso é passar por referencia, colocar um var na frente”, do que “vc tem que passar por valor um ponteiro para o valor que quer”, ou a questão do tipo string em C, que não é tão óbvio quanto o tipo string do pascal. Isso pq string é uma coisa bastante utilizada.
Mas se vc estiver estudando arquitetura e pretender utilizar uma linguagem que te ajude a entender alguns conceitos, C é melhor (imho).
@Júnior G., qual o problema entre comparar o fpc ao gcc? São compiladores de linguagens parecidas (tanto em surgimento, quanto em finalidade), que geram código para plataformas comuns. Falou de orientação a objetos? Quando disse gcc me referi à plataforma toda (gnu compiler collection), e, como para todas as linguagens usa-se o mesmo backend, espera-se que o gcc gere um código mais ou menos parecido para todas as linguagens que suporta.
@Weber Jr, é, realmente. Pensando por este lado nem é tão tenso ter que recompilar toda uma IDE para instalar um componente. Mas é estranho, principalmente numa instalação Linux, onde só quem tem acesso para reescrever a instalação do lazarus é o root. Assim, pra instalar um componente, vc tem q logar como root e aí dar o rebuild. Poderia ser bem melhor, mas eu só tenho a admirar o trabalho dos desenvolvedores do lazarus. Embora lancem versões em períodos longos, o desenvolvimento é contínuo.
Li uma vez na lista deles que o lazarus só ficaria famoso (era uma piada, claro) caso os desenvolvedores fechassem o código e lançassem o programa como Lazarus 2011 Professional, e saíssem vendendo por aí, mesmo estando com o mesmo código que atualmente.
@tenchi Gostei do comentário cara. Você parece entender bastante do assunto.
O Pascal é muito utilizado em cursos de engenharia, onde a maioria dos alunos aprende programação apenas para exercitar a lógica matemática, sem se preocupar com conceitos mais profundos da computação. Neste ponto, acho a linguagem fantástica. Lembrando que o pascal foi criado com o objetivo de ensinar programação.
Tenchi
“Assim, pra instalar um componente, vc tem q logar como root e aí dar o rebuild.”
Isso é assim se se instala por pacote, e seria contornável, se após instalar, se apontasse para um diretório do usuário ao recompilar. Aliás, vou procurar saber se já não está fazendo assim, porque é uma crítica comum e antiga de quem usa gerenciador de pacotes.
Como falei, uso a versão de SVN, e portanto, instalo no meu diretório home, nunca preciso dar senha de root. Os próprios desenvolvedores recomendam assim, só falta entender porque não implementam assim via pacotes.