Alguém aqui usa Lazarus?

[quote=kicolobo]Testei o Lazarus uns 4 anos atrás e, naquela época, achei ele MUITO fraquinho comparado com o Delphi 7. Além disto, era também bem bugado. Travava o tempo inteiro.

O papo de que as versões do Delphi posteriores á 7 ser bugado é um mito. Um maldito mito que basicamente destruiu a Borland. Há uma versão bugada e horrível do Delphi, e esta se chama 8 (Octane). O maior erro da história da empresa.

Recentemente brinquei com o Delphi 2010 e achei MUITO legal. Fiquei uns 5 anos longe do Delphi e quando o reencontrei, foi uma surpresa maravilhosa. Sei lá: acho que se é para dar suporte à plataforma, compensa muito comprar o Delphi. Inclusive, a versão XE te permite acesso às versões anteriores (incluindo a 7) gratuitamente.

Compensa também comprar por outra razão: dar o suporte financeiro para que continuem o desenvolvimento da ferramenta que, apesar de ter perdido muito mercado, ainda é uma ferramenta foda.[/quote]

Mito não é não. Apesar de eu ter usado apenas a 2005 e 2006 posteriores ao 7, são bugadas, da mesma forma que o c++ builder nas mesmas versões. O erro da borland foi o dot net no início de carreira, que afetou o desempenho da ide de maneira fatal.

Julio,
Uma coisa que me chamou atenção no Lazarus foi uma integração com o qt. Dá pra desenvolver bem pascal com qt usando o Lazarus?

[quote=marcosalex]Também não gostei do Lazarus, parece o Delphi de 15 anos atrás.

E o suporte a MMX, o Delphi possui, mas é o compilador que cuida disso, enquanto o Lazarus a gente programa explicitamente. Pra mim, uma vantagem do Lazarus.

Os componentes novos e os recursos novos da IDE do Delphi não estão presentes no Lazarus. Delphi evoluiu muito, principalmente da versão 2007 em diante.[/quote]

Isso é verdade. O suporte a instruções mmx apareceram no delphi 2007. Mas em termos de compilador o free pascal na minha opinião tem muitas vantagens ao delphi, principalmente no quesito multiplataforma.

[quote=matheuslmota]Julio,
Uma coisa que me chamou atenção no Lazarus foi uma integração com o qt. Dá pra desenvolver bem pascal com qt usando o Lazarus?[/quote]

Você consegue falar pro compilador gerar os widgets usando Qt ou usando gtk. Basta configurar o parâmetro que o código gerado muda completamente, de forma totalmente transparente pra você.

Claaaaro que como os widgets são diferentes, pode ser que um botão fique um pouco maior ou menor e estrague seu layout, mas daí basta um ajuste manual, da mesma forma que acontece com o swt no Java.

Sobre a linguagem OO do Delphi, também gosto muito e muita coisa que o pessoal conta como vantagem no Java e .NET, o Delphi já tinha. A única coisa que não gosto da sintaxe dele, é que pra implementar uma interface, você é obrigado a usar uma herança.

[quote=matheuslmota]Julio,
Uma coisa que me chamou atenção no Lazarus foi uma integração com o qt. Dá pra desenvolver bem pascal com qt usando o Lazarus?[/quote]

Tem um projeto para isso, mas nesse ponto não sei te dizer se é estável. Com lazarus posso te dizer que não terá problemas para desenvolver software, embora eu tenha que concordar com o pessoal em que as ferramentas do delphi são mais maduras e realmente melhores. Mas se for criar software multiplataforma o lazarus é uma boa opção.

[quote=juliocbq] O executável ainda é gigante se você não estripar as informações de debug do mesmo. Existe uma opção no compilador, ou mesmo você pode usar a ferramenta strip.exe para fazer isso.

Já trabalhei muitos anos com delphi, e na minha opinião as melhores ides foram as de código nativo(até o 7). Quando o .net entrou em cena ficou tão ruim de usar a ferramente que eu fui obrigado a portar meu trabalho para java(sem nenhum arrependimento nem dor de cabeça).[/quote]

Concordo. Eu gosto muito do Delphi por causa da facilidade em se chamar funções nativas e também por causa da possibilidade de usar Assembly inline. Mas com a entrada do .net no Delphi deixou a IDE bastante bugada, tanto que todos os densenvolvedores Delphi que eu conheço usam somente a versão 7 do Delphi.

Uma outra dúvida: dá pra chamar funções nativas no Lazarus?

[quote=x@ndy][quote=matheuslmota][quote=kicolobo]Testei o Lazarus uns 4 anos atrás e, naquela época, achei ele MUITO fraquinho comparado com o Delphi 7. Além disto, era também bem bugado. Travava o tempo inteiro.

O papo de que as versões do Delphi posteriores á 7 ser bugado é um mito. Um maldito mito que basicamente destruiu a Borland. Há uma versão bugada e horrível do Delphi, e esta se chama 8 (Octane). O maior erro da história da empresa.

Recentemente brinquei com o Delphi 2010 e achei MUITO legal. Fiquei uns 5 anos longe do Delphi e quando o reencontrei, foi uma surpresa maravilhosa. Sei lá: acho que se é para dar suporte à plataforma, compensa muito comprar o Delphi. Inclusive, a versão XE te permite acesso às versões anteriores (incluindo a 7) gratuitamente.

Compensa também comprar por outra razão: dar o suporte financeiro para que continuem o desenvolvimento da ferramenta que, apesar de ter perdido muito mercado, ainda é uma ferramenta foda.[/quote]

eu gosto muito mesmo do Delphi. De todas as ferramentas que já usei (eclipse, netbean, visual studio, codeblocks e outras que não lembro agora), o delphi foi certamente a melhor. Produtividade total, debug excelente, bom nível de otimização dos executáveis, alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java, sem falar que gera um código muito mais limpo. Talvez o Delphi só perca (em termos de produtivade) para o Visual Studio 2010. Mas como eu disse, tava atrás de uma ferramenta open source e multiplataforma e achei o Lazarus. Me pareceu uma opção interessante, possuindo inclusíve, suporte ao qt. Mas como eu não conheço a ferramenta, vim pedir a opinião dos colegas mais experientes. Será que esse suporte ao qt funciona bem mesmo?[/quote]

Realmente a IDE do delphi é ainda superior ao Eclipse, Netbeans e Cia.
Tenho um único porém ao seu comentário "alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java,"
O delphi é extremamente produtivo para desenvolver no padrão de Interface Inteligente. O modelo Dataware do delphi é maravilhoso para isso, porém se você vai querer desenvolver OO no delphi ele se torna um inferno. Nisso o java é nota 10.
Para quem tenta fazer uma aplicação OO em delphi o primeiro problema é questão das referencias entre os objetos. No pascal, como não existe garbage colector, você cria um objeto é obrigado a destrui-lo. Isso se torna um problema quando esse objeto é compartilhado. Aqui até tem uma solução para isso, mas não é nada elegante.[/quote]

Como qualquer linguagem sem coletor de lixo e que suporta apontadores, você pode implementar um smart pointer. Funciona como um coletor de lixo automático.

http://www.swissdelphicenter.ch/torry/printcode.php?id=2192

[quote=juliocbq][quote=x@ndy][quote=matheuslmota][quote=kicolobo]Testei o Lazarus uns 4 anos atrás e, naquela época, achei ele MUITO fraquinho comparado com o Delphi 7. Além disto, era também bem bugado. Travava o tempo inteiro.

O papo de que as versões do Delphi posteriores á 7 ser bugado é um mito. Um maldito mito que basicamente destruiu a Borland. Há uma versão bugada e horrível do Delphi, e esta se chama 8 (Octane). O maior erro da história da empresa.

Recentemente brinquei com o Delphi 2010 e achei MUITO legal. Fiquei uns 5 anos longe do Delphi e quando o reencontrei, foi uma surpresa maravilhosa. Sei lá: acho que se é para dar suporte à plataforma, compensa muito comprar o Delphi. Inclusive, a versão XE te permite acesso às versões anteriores (incluindo a 7) gratuitamente.

Compensa também comprar por outra razão: dar o suporte financeiro para que continuem o desenvolvimento da ferramenta que, apesar de ter perdido muito mercado, ainda é uma ferramenta foda.[/quote]

eu gosto muito mesmo do Delphi. De todas as ferramentas que já usei (eclipse, netbean, visual studio, codeblocks e outras que não lembro agora), o delphi foi certamente a melhor. Produtividade total, debug excelente, bom nível de otimização dos executáveis, alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java, sem falar que gera um código muito mais limpo. Talvez o Delphi só perca (em termos de produtivade) para o Visual Studio 2010. Mas como eu disse, tava atrás de uma ferramenta open source e multiplataforma e achei o Lazarus. Me pareceu uma opção interessante, possuindo inclusíve, suporte ao qt. Mas como eu não conheço a ferramenta, vim pedir a opinião dos colegas mais experientes. Será que esse suporte ao qt funciona bem mesmo?[/quote]

Realmente a IDE do delphi é ainda superior ao Eclipse, Netbeans e Cia.
Tenho um único porém ao seu comentário "alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java,"
O delphi é extremamente produtivo para desenvolver no padrão de Interface Inteligente. O modelo Dataware do delphi é maravilhoso para isso, porém se você vai querer desenvolver OO no delphi ele se torna um inferno. Nisso o java é nota 10.
Para quem tenta fazer uma aplicação OO em delphi o primeiro problema é questão das referencias entre os objetos. No pascal, como não existe garbage colector, você cria um objeto é obrigado a destrui-lo. Isso se torna um problema quando esse objeto é compartilhado. Aqui até tem uma solução para isso, mas não é nada elegante.[/quote]

Como qualquer linguagem sem coletor de lixo e que suporta apontadores, você pode implementar um smart pointer. Funciona como um coletor de lixo automático.

http://www.swissdelphicenter.ch/torry/printcode.php?id=2192[/quote]

Não conhecia o “smart pointer”, ótima referência, mas achei horrível a forma de utilização, mas é valido quando não se pode usar a contagem de referencia como havia colocado no link acima!

Adoro o delphi justamente por ele mascarar muito bem o uso de ponteiros. Ter que fazer uso deles com um smart pointer só mostra como java é melhor para programar usando OO.

Isso não é um ode ao java até pq adoro o delphi e pascal, mas a falta de da contagem de referencia em TObject, a meu ver, limita muito sua utilização em sistemas OO.

Já havia colocado antes, mas não custa repetir, para quem saber sobre contagem de referencia com o delphi segue o link abaixo
http://blog.joaomorais.com.br/2008/09/06/objetos-contagem-ref.html]Aqui até tem uma solução para isso, mas não é nada elegante[/url]

[quote=x@ndy][quote=juliocbq][quote=x@ndy][quote=matheuslmota][quote=kicolobo]Testei o Lazarus uns 4 anos atrás e, naquela época, achei ele MUITO fraquinho comparado com o Delphi 7. Além disto, era também bem bugado. Travava o tempo inteiro.

O papo de que as versões do Delphi posteriores á 7 ser bugado é um mito. Um maldito mito que basicamente destruiu a Borland. Há uma versão bugada e horrível do Delphi, e esta se chama 8 (Octane). O maior erro da história da empresa.

Recentemente brinquei com o Delphi 2010 e achei MUITO legal. Fiquei uns 5 anos longe do Delphi e quando o reencontrei, foi uma surpresa maravilhosa. Sei lá: acho que se é para dar suporte à plataforma, compensa muito comprar o Delphi. Inclusive, a versão XE te permite acesso às versões anteriores (incluindo a 7) gratuitamente.

Compensa também comprar por outra razão: dar o suporte financeiro para que continuem o desenvolvimento da ferramenta que, apesar de ter perdido muito mercado, ainda é uma ferramenta foda.[/quote]

eu gosto muito mesmo do Delphi. De todas as ferramentas que já usei (eclipse, netbean, visual studio, codeblocks e outras que não lembro agora), o delphi foi certamente a melhor. Produtividade total, debug excelente, bom nível de otimização dos executáveis, alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java, sem falar que gera um código muito mais limpo. Talvez o Delphi só perca (em termos de produtivade) para o Visual Studio 2010. Mas como eu disse, tava atrás de uma ferramenta open source e multiplataforma e achei o Lazarus. Me pareceu uma opção interessante, possuindo inclusíve, suporte ao qt. Mas como eu não conheço a ferramenta, vim pedir a opinião dos colegas mais experientes. Será que esse suporte ao qt funciona bem mesmo?[/quote]

Realmente a IDE do delphi é ainda superior ao Eclipse, Netbeans e Cia.
Tenho um único porém ao seu comentário "alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java,"
O delphi é extremamente produtivo para desenvolver no padrão de Interface Inteligente. O modelo Dataware do delphi é maravilhoso para isso, porém se você vai querer desenvolver OO no delphi ele se torna um inferno. Nisso o java é nota 10.
Para quem tenta fazer uma aplicação OO em delphi o primeiro problema é questão das referencias entre os objetos. No pascal, como não existe garbage colector, você cria um objeto é obrigado a destrui-lo. Isso se torna um problema quando esse objeto é compartilhado. Aqui até tem uma solução para isso, mas não é nada elegante.[/quote]

Como qualquer linguagem sem coletor de lixo e que suporta apontadores, você pode implementar um smart pointer. Funciona como um coletor de lixo automático.

http://www.swissdelphicenter.ch/torry/printcode.php?id=2192[/quote]

Não conhecia o “smart pointer”, ótima referência, mas achei horrível a forma de utilização, mas é valido quando não se pode usar a contagem de referencia como havia colocado no link acima!

Adoro o delphi justamente por ele mascarar muito bem o uso de ponteiros. Ter que fazer uso deles com um smart pointer só mostra como java é melhor para programar usando OO.

Isso não é um ode ao java até pq adoro o delphi e pascal, mas a falta de da contagem de referencia em TObject, a meu ver, limita muito sua utilização em sistemas OO.[/quote]

Alguma linguagem não gerenciada OO possui contador de referência?

[quote=juliocbq][quote=kicolobo]Testei o Lazarus uns 4 anos atrás e, naquela época, achei ele MUITO fraquinho comparado com o Delphi 7. Além disto, era também bem bugado. Travava o tempo inteiro.

O papo de que as versões do Delphi posteriores á 7 ser bugado é um mito. Um maldito mito que basicamente destruiu a Borland. Há uma versão bugada e horrível do Delphi, e esta se chama 8 (Octane). O maior erro da história da empresa.

Recentemente brinquei com o Delphi 2010 e achei MUITO legal. Fiquei uns 5 anos longe do Delphi e quando o reencontrei, foi uma surpresa maravilhosa. Sei lá: acho que se é para dar suporte à plataforma, compensa muito comprar o Delphi. Inclusive, a versão XE te permite acesso às versões anteriores (incluindo a 7) gratuitamente.

Compensa também comprar por outra razão: dar o suporte financeiro para que continuem o desenvolvimento da ferramenta que, apesar de ter perdido muito mercado, ainda é uma ferramenta foda.[/quote]

Mito não é não. Apesar de eu ter usado apenas a 2005 e 2006 posteriores ao 7, são bugadas, da mesma forma que o c++ builder nas mesmas versões. O erro da borland foi o dot net no início de carreira, que afetou o desempenho da ide de maneira fatal.[/quote]

Cara, uso o 2006 até hoje (Win32) e não tenho problemas. A IDE tem alguns bugs, mas é raro dar algum problema (lembrando que o eclipse tb tem alguns bugs), o 2005 sim era horrível, e realmente o .net foi tiro no pé, tanto que foi abandonada a partir do delphi 2007

O fato da maioria das pessoas usarem delphi 7 pelo que sei é devido ao uso de componentes legados sem codigo fonte. Isso é a maior dor de cabeça.

Digo isso pq trabalho com delphi até hoje. Hoje mesmo estou usando trabalhando com ele.

[quote=x@ndy][quote=juliocbq][quote=x@ndy][quote=matheuslmota][quote=kicolobo]Testei o Lazarus uns 4 anos atrás e, naquela época, achei ele MUITO fraquinho comparado com o Delphi 7. Além disto, era também bem bugado. Travava o tempo inteiro.

O papo de que as versões do Delphi posteriores á 7 ser bugado é um mito. Um maldito mito que basicamente destruiu a Borland. Há uma versão bugada e horrível do Delphi, e esta se chama 8 (Octane). O maior erro da história da empresa.

Recentemente brinquei com o Delphi 2010 e achei MUITO legal. Fiquei uns 5 anos longe do Delphi e quando o reencontrei, foi uma surpresa maravilhosa. Sei lá: acho que se é para dar suporte à plataforma, compensa muito comprar o Delphi. Inclusive, a versão XE te permite acesso às versões anteriores (incluindo a 7) gratuitamente.

Compensa também comprar por outra razão: dar o suporte financeiro para que continuem o desenvolvimento da ferramenta que, apesar de ter perdido muito mercado, ainda é uma ferramenta foda.[/quote]

eu gosto muito mesmo do Delphi. De todas as ferramentas que já usei (eclipse, netbean, visual studio, codeblocks e outras que não lembro agora), o delphi foi certamente a melhor. Produtividade total, debug excelente, bom nível de otimização dos executáveis, alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java, sem falar que gera um código muito mais limpo. Talvez o Delphi só perca (em termos de produtivade) para o Visual Studio 2010. Mas como eu disse, tava atrás de uma ferramenta open source e multiplataforma e achei o Lazarus. Me pareceu uma opção interessante, possuindo inclusíve, suporte ao qt. Mas como eu não conheço a ferramenta, vim pedir a opinião dos colegas mais experientes. Será que esse suporte ao qt funciona bem mesmo?[/quote]

Realmente a IDE do delphi é ainda superior ao Eclipse, Netbeans e Cia.
Tenho um único porém ao seu comentário "alta facilidade para integrar a aplicação com banco de dados, o editor de interface gráfica dá uma surra nos disponíveis para o Java,"
O delphi é extremamente produtivo para desenvolver no padrão de Interface Inteligente. O modelo Dataware do delphi é maravilhoso para isso, porém se você vai querer desenvolver OO no delphi ele se torna um inferno. Nisso o java é nota 10.
Para quem tenta fazer uma aplicação OO em delphi o primeiro problema é questão das referencias entre os objetos. No pascal, como não existe garbage colector, você cria um objeto é obrigado a destrui-lo. Isso se torna um problema quando esse objeto é compartilhado. Aqui até tem uma solução para isso, mas não é nada elegante.[/quote]

Como qualquer linguagem sem coletor de lixo e que suporta apontadores, você pode implementar um smart pointer. Funciona como um coletor de lixo automático.

http://www.swissdelphicenter.ch/torry/printcode.php?id=2192[/quote]

Não conhecia o “smart pointer”, ótima referência, mas achei horrível a forma de utilização, mas é valido quando não se pode usar a contagem de referencia como havia colocado no link acima!

Adoro o delphi justamente por ele mascarar muito bem o uso de ponteiros. Ter que fazer uso deles com um smart pointer só mostra como java é melhor para programar usando OO.

Isso não é um ode ao java até pq adoro o delphi e pascal, mas a falta de da contagem de referencia em TObject, a meu ver, limita muito sua utilização em sistemas OO.

Já havia colocado antes, mas não custa repetir, para quem saber sobre contagem de referencia com o delphi segue o link abaixo
http://blog.joaomorais.com.br/2008/09/06/objetos-contagem-ref.html]Aqui até tem uma solução para isso, mas não é nada elegante[/url][/quote]

Depende do ponto de vista. Em alguns casos o uso de apontadores é importante, justamente para se pode gerenciar a memória de uma maneira mais clara. Um exemplo são justamente os smart pointers e o seu irmão mais complexo, o garbage colector.

Um ótimo exemplo também é o impliciti sharing do framework qt: Os componentes compartilham memória e isso minimiza o custo da cópia(deep copy), aumentando o desempenho da aplicação. Já que ao invés do conteúdo da área de memória, apenas o endereço é copiado.

http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html

Todos eles não modelos de otimização e gerenciamento de memória


http://dlugosz.com/Repertoire/refman/Classics/Smart%20Pointers%20Overview.html

[quote=matheuslmota]
Alguma linguagem não gerenciada OO possui contador de referência?[/quote]
Bah, otima pergunta! Alguem conhece?
Bem que a Embarcadero podia implementar isso nativamente no delphi, ia ser uma mão na roda.

[quote=x@ndy][quote=juliocbq]

Mito não é não. Apesar de eu ter usado apenas a 2005 e 2006 posteriores ao 7, são bugadas, da mesma forma que o c++ builder nas mesmas versões. O erro da borland foi o dot net no início de carreira, que afetou o desempenho da ide de maneira fatal.[/quote]

Cara, uso o 2006 até hoje (Win32) e não tenho problemas. A IDE tem alguns bugs, mas é raro dar algum problema (lembrando que o eclipse tb tem alguns bugs), o 2005 sim era horrível, e realmente o .net foi tiro no pé, tanto que foi abandonada a partir do delphi 2007

O fato da maioria das pessoas usarem delphi 7 pelo que sei é devido ao uso de componentes legados sem codigo fonte. Isso é a maior dor de cabeça.

Digo isso pq trabalho com delphi até hoje. Hoje mesmo estou usando trabalhando com ele.[/quote]

Não tenho como opinar sobre as novas versões do delphi. Há tempos que não trabalho com ele, então minha opinião até pode ser dita como desatualizada.
Na época, as versões dotnet deram muita dor de cabeça, inclusive para compilar programas com o c++ builder.

O lazarus é uma boa ferramenta e pode ser utilizada sem problemas, e ainda aposto no freepascal como gerador de código mais enxuto que o bdc32.exe. Lembrando, comparando com as versões que eu já trabalhei(3,5,6,7, 2005 e 2006).

[quote=juliocbq]
Depende do ponto de vista. Em alguns casos o uso de apontadores é importante, justamente para se pode gerenciar a memória de uma maneira mais clara. Um exemplo são justamente os smart pointers e o seu irmão mais complexo, o garbage colector.

Um ótimo exemplo também é o impliciti sharing do framework qt: Os componentes compartilham memória e isso minimiza o custo da cópia(deep copy), aumentando o desempenho da aplicação. Já que ao invés do conteúdo da área de memória, apenas o endereço é copiado.

http://doc.qt.nokia.com/4.7-snapshot/implicit-sharing.html

Todos eles não modelos de otimização e gerenciamento de memória


http://dlugosz.com/Repertoire/refman/Classics/Smart%20Pointers%20Overview.html[/quote]
Com certeza o uso de ponteiros tem seu lugar. Mas eu pessoalmente não gosto de usar. Faço uso somente quando necessário.

O engraçodo sobre isso é q esses tempos fui implementar uma arvore binária balanceada em java para um trabalho da facul e vi que ela éra muito mais fácil de ser implementada usando C e ponteiros :D!

[quote=x@ndy][quote=matheuslmota]
Alguma linguagem não gerenciada OO possui contador de referência?[/quote]
Bah, otima pergunta! Alguem conhece?
Bem que a Embarcadero podia implementar isso nativamente no delphi, ia ser uma mão na roda.[/quote]

olha o link que postei acima. O framework qt usa isso. Contadores de referência são implementados em frameworks, não são atributos de linguagens.

[quote=x@ndy]Com certeza o uso de ponteiros tem seu lugar. Mas eu pessoalmente não gosto de usar. Faço uso somente quando necessário.
O engraçodo sobre isso é q esses tempos fui implementar uma arvore binária balanceada em java para um trabalho da facul e vi que ela éra muito mais fácil de ser implementada usando C e ponteiros :D!
[/quote]

Eu também já me encontrei em situações, no Java, em que eu implementaria uma algoritmo muito mais facilmente se a linguagem tivesse ponteiro (obviamente eu sei que uma linguagem gerenciada não pode ter ponteiros).
Bem que o Delphi e o C++ poderiam implementar nativamente Smart Pointers, iria ser uma senhora ajuda.

[quote=juliocbq][quote=x@ndy][quote=juliocbq]

Mito não é não. Apesar de eu ter usado apenas a 2005 e 2006 posteriores ao 7, são bugadas, da mesma forma que o c++ builder nas mesmas versões. O erro da borland foi o dot net no início de carreira, que afetou o desempenho da ide de maneira fatal.[/quote]

Cara, uso o 2006 até hoje (Win32) e não tenho problemas. A IDE tem alguns bugs, mas é raro dar algum problema (lembrando que o eclipse tb tem alguns bugs), o 2005 sim era horrível, e realmente o .net foi tiro no pé, tanto que foi abandonada a partir do delphi 2007

O fato da maioria das pessoas usarem delphi 7 pelo que sei é devido ao uso de componentes legados sem codigo fonte. Isso é a maior dor de cabeça.

Digo isso pq trabalho com delphi até hoje. Hoje mesmo estou usando trabalhando com ele.[/quote]

Não tenho como opinar sobre as novas versões do delphi. Há tempos que não trabalho com ele, então minha opinião até pode ser dita como desatualizada.
Na época, as versões dotnet deram muita dor de cabeça, inclusive para compilar programas com o c++ builder.

O lazarus é uma boa ferramenta e pode ser utilizada sem problemas, e ainda aposto no freepascal como gerador de código mais enxuto que o bdc32.exe. Lembrando, comparando com as versões que eu já trabalhei(3,5,6,7, 2005 e 2006).[/quote]

Isso me faz lembrar que no em algum lugar do blog do joão morais ele fala de algumas IDEs para freepascal. Quem tiver interesse de procurar
http://blog.joaomorais.com.br/

trabalho com Delphi a ums 15 anos.

atualmente estou trabalhando com Lazarus por ser open e multi-plataforma.

tive um rapido contato com ele a ums 5 anos atraz e julguei estar ainda mt “zigoto”.

mas hoje, acho q dizer q o lazarus é inferior a um Delphi3 é não saber o q fala.

pra falar a verdade o lazarus coloca o Delhi2007 pra traz em mts quisitos.

a grande vantagem q acho nele é q ele melhora a acada dia literalmente.

e temos q derrubar alguns MITOS.

executaveis grandes: mentira. (provar?) desmarque a opção “gerar informação de depuração”;
o exe de 13 mb cai pra 1.5 mb;
ah no delphi ele seria 400 kb. (mas com API até no talo);

lento pra compilar; (mentira) desmarque a opção “sempre contruir tudo”;

essa é do pascal;
não permite referencia circular. mentira; (a verdade é q tem gente q não conhece o pascal)

[code]type
ClasseB = class;

ClasseA = class
strict private
B1 : ClasseB;
B2 : ClasseB;
end;

ClasseB = class
strict private
A1, A2, A3 : ClasseA;
end;
[/code]

isso é referencia circular não?

[quote=x@ndy][quote=matheuslmota]
O fato de o Delphi (ou Object Pascal, chame como quiser) não ser uma linguagem gerenciada não encaro como um problema, é uma característica da linguagem, assim como o C++ e o C possuem, que também têm essa características. Além do mais, também não é certo do ponto de vista das boas práticas usar objetos compartilhados.

EDIT:
Complementando o que eu disse, esse negocio de objetos compartilhados parece aquele padrão Singleton, que eu acho horroroso. Uma instância de um objeto para ser referenciada em vários lugar, posso está errado, mas nem parece OO, parece quase uma tentativa de programar de maneira procedual dentro do OO. Como eu disse, é minha opinião e posso está errado.
Agora voltando ao tópico, mais alguém usa o Lazarus atualmente? Até agora a única pessoa que de fato usa a versão mais atual do Lazarus é o julicbq. Os outros, usaram somente versões antigas (4 anos para um projeto que sofre alterações diárias é uma eternidade).[/quote]

Não tem nada haver com o padrão singleton. O que eu falei é passar um objeto como referencia para outro tipo "ObjetoA.Create(ObjetoB)"
Se você destruir o ObjetoB o ObjetoA a referencia que o ObjetoA faz para ele estará perdida e quando be chamar algum procedimento do ObjetoB vai levandar uma exceção de “Access violation”.

PS: Singleton é muito bom e só saber usar, como para factorys e objtetos de configuração.[/quote]

quem sabe usar pascal não tem problema com isso.

primeiro. no maioria das vezes seria feito um Assign.
Exite tb o

TComponent .... procedure Notification(AComponent: TComponent; Operation: TOperation); virtual;

q avisaria q fulano está sendo destruido.

[quote]td vc cria vc tem q destruir.[/quote] Pesquise sobre o parametro AOwner passado nos construtores.

[quote=GilsonNunes][quote=x@ndy][quote=matheuslmota]
O fato de o Delphi (ou Object Pascal, chame como quiser) não ser uma linguagem gerenciada não encaro como um problema, é uma característica da linguagem, assim como o C++ e o C possuem, que também têm essa características. Além do mais, também não é certo do ponto de vista das boas práticas usar objetos compartilhados.

EDIT:
Complementando o que eu disse, esse negocio de objetos compartilhados parece aquele padrão Singleton, que eu acho horroroso. Uma instância de um objeto para ser referenciada em vários lugar, posso está errado, mas nem parece OO, parece quase uma tentativa de programar de maneira procedual dentro do OO. Como eu disse, é minha opinião e posso está errado.
Agora voltando ao tópico, mais alguém usa o Lazarus atualmente? Até agora a única pessoa que de fato usa a versão mais atual do Lazarus é o julicbq. Os outros, usaram somente versões antigas (4 anos para um projeto que sofre alterações diárias é uma eternidade).[/quote]

Não tem nada haver com o padrão singleton. O que eu falei é passar um objeto como referencia para outro tipo "ObjetoA.Create(ObjetoB)"
Se você destruir o ObjetoB o ObjetoA a referencia que o ObjetoA faz para ele estará perdida e quando be chamar algum procedimento do ObjetoB vai levandar uma exceção de “Access violation”.

PS: Singleton é muito bom e só saber usar, como para factorys e objtetos de configuração.[/quote]

quem sabe usar pascal não tem problema com isso.

primeiro. no maioria das vezes seria feito um Assign.
Exite tb o

TComponent .... procedure Notification(AComponent: TComponent; Operation: TOperation); virtual;

q avisaria q fulano está sendo destruido.

Nesse caso, você está errado. Não tenho os 15 anos de experiência, mas tenho 10 o que me permite dizer isso.

  1. Assign deve ser implementado em todas as classes! Seria como fazer uma copia do mesmo e estamos falando de referência e não cópia do mesmo. Já tentou fazer um Assign de um TButton por exemplo? É gerado uma exeção pois o TButton não implementa a função Assign, mesmo herdando de TPersistent.

  2. Gerar um evento para notificar que um objeto está sendo destruído também não resolve o problema, pois o evento agiria sobre o objeto em si e não sobre o objeto que contém a referencia. Isso só poderia ser utilizado implementando o padrão observer, de modo que a classe que contém a referência fosse notificada sobre quando esse objeto fosse destruído, mas ai fica mais simples utilizar a contagem de referencia.

  3. Usar Owner também não resolve, pois estou passando a responsabilidade de destruição para o objeto proprietário desse objeto e se seguirmos assim o proprietário final será a a própria aplicação. Isso forçaria a liberação da memória somente quando a aplicação fosse encerrada.

Não sei qual a sua experiência em objetos com delphi, mas a minha me diz que não usar contagem de referencia torna a utilização de objetos bem dificil, principalmente em aplicações complexas.