Porquê eu escolhi Delphi e então, Object Pascal


Essa é minha contribuição aos artigos na Internet com a hastag #WhyIChooseDelphi.

Unsplash image Photo by Kace Rodriguez on Unsplash

Quando tudo começou

Minha história com Object Pascal começa em 1999 quando comecei a estudar programação de computadores.

Havia um curso chamado Programação de Computadores com “Novas” Tecnologias ministrado na PUC-RJ.

Lá eu aprendi bastante sobre algoritmos, SGBD’s e linguagens de programação como COBOL, C/C++, Pascal, Java, Visual Basic e Delphi.

Através dos convênios da PUC com outras empresas, consegui meu primeiro emprego como estagiário numa software house chamada Fuzion Engenharia de Software em meados do ano 2000.

Um caminho diferente

Na Fuzion utilizáva-mos Delphi, Visual Basic e pouca coisa em Java. No entanto, a maioria dos projetos eram desenvolvidos em Delphi.

Na PUC éramos referência no desenvolvimento Orientado a Objetos. Veja, em Delphi, não em Java.

Quando eu entrei na empresa a versão era Delphi 4. Alguns bugs, alguns problemas… mas então veio a tão aclamada versão 5 e a produtividade era sem igual.

Tínhamos desenvolvido nossa própria metodologia e ferramentas que geravam código automaticamente e eu já tinha um cargo de Desenvolvedor Pleno.

Nunca utilizamos DB-aware components, pois tudo era feito através de camadas e Objetos. Esse era um dos motivos para ser tão difícil contratar mais desenvolvedores, pois aqueles que vinham fazer uma prova depois da entrevista, não sabiam como mostrar informações num Form com “Mestre/Detalhe” e outros widgets, sem utizar componentes DB-aware.

Essa sempre foi a beleza do Delphi: Você pode utilizar o paradigma que quiser e conseguir um excelente resultado no final.

Na Fuzion trilhávamos um caminho diferente. Delphi era um dos nossos segredos de performance e eficácia. E tivemos sucesso… enquanto durou.

A mudança de ambiente

Eu abri minha própria empresa em 2003 para trabalhar como consultor alocado em outras empresas.

Eu já havia mudado de empresa umas duas vezes até estar na atual, onde já trabalho por quase 13 anos.

Lá também utilizamos Delphi, a versão 7. Na época que entrei nesta empresa, o Delphi ainda dominava o mercado quando se tratava de aplicações Desktop.

Por volta de 2006 (se não me engano) a Borland estava vendendo o Delphi. Eu acompanhei, com tristeza, o Delphi ser vendido entre as empresas.

Eu adorava a Borland, a ponto de querer trabalhar pra ela, e Delphi sempre foi a minha escolha, mas eu achava que tinha que seguir em frente, já que agora o caminho parecia incerto.

Apesar de na época estar num emprego relativamente estável, eu tinha meus próprios clientes. Eu utilizei Delphi para fazer todos os seus softwares e, como não tinha certeza se o Delphi iria sobreviver, comecei a pensar em migrar para outra linguagem, outro ambiente.

Apenas em 2010 eu comecei a pensar em outras possibilidades, quando soube um um projeto que “voltou das cinzas”, hoje conhecido como Lazarus.

Migrando para Lazarus

Eu comecei a utilizar Lazarus e quase desisti. Comparado com o Delphi, na época, Lazarus era muito inferior.

Muitos bugs, pouca produtividade e muita diferença entre ambientes. Apesar de ambos utilizarem a mesma linguagem.

Felizmente eu consegui superar os problemas. Hoje o ambiente Lazarus é bem estável e completo e me sinto “em casa” como eu me sentia na época do Delphi 5~7.

Então consegui migrar muitos projetos de Delphi para Lazarus e outros parmaneceram nas versões antigas de Delphi — e vão muito bem, obrigado.

Apesar de ainda haver problemas, hoje em dia a história parece ser outra. Cada vez mais vejo pessoas reclamando de bugs no Delphi e, em comparação, vejo cada vez mais elogios ao Lazarus e ao compilador Free Pascal.

Hoje em dia tenho aplicações Desktop e Web, construídas em Free Pascal e Lazarus, rodando em servidores Windows IIS utilizando FastCGI.

Nada mal, considerando que tais softwares foram desenvolvidos utilizando ferramentas gratuitas e livres, não é?

Free Pascal e Lazarus são ferramentas desenvolvidas apenas nas horas vagas por alguns programadores motivados e apaixonados por Object Pascal.

Simplicidade, Performance e Lucro

Hoje em dia existem tantas linguagens e ambientes que alguns programadores continuam querendo saber meus motivos em continuar utilizando Object Pascal.

Bem, eu publiquei um vídeo que explica meus principais motivos.

E enquanto esses motivos forem válidos, irei continuar utilizando a linguagem Object Pascal.

Object Pascal hoje em dia

A linguagem Object Pascal é relevante hoje em dia? Bem, depende de como você vê o mundo.

A linguagem Object Pascal, pra mim, é como um carro esportivo antigo, como essa imagem do Porsche aí em cima.

Esse Porsche — ou quase qualquer outro esportivo antigo — é simples, manual e puro. Você precisa saber o que está fazendo a todo momento. Não há computadores e sensores para lhe ajudar. Não há muita segurança como airbags. Você tem que fazer mais força para “domá-lo”. Quase tudo é manual e “barulhento”. Você precisa entender de subesterço e sobre-esterço, se quiser dirigir de forma mais agressiva ao entrar numa curva. Enfim, você precisa saber muita coisa se quiser ter a verdadeira experiência de dirigir.

Mas no fim do dia, após passar algumas horas atrás do volante, você se sente realizado. Você sabe exatamente o que fez. Você entende como as coisas funcionam nos seus mínimos detalhes. Você estava integrado ao ambiente. Você era apenas um com seu Porsche. Homem e máquina.

A linguagem Object Pascal é como um clássico esportivo que nunca sai de moda.

Hoje temos cada vez mais IDE’s e linguagens “inteligentes” que podem mudar a cada nova versão. Esquecem do passado e “inventam” novas maneiras de fazer a mesma coisa que já fazíamos antes. Essas IDE’s nos dão “airbags”, “segurança” e todo tipo de “artefato” para ajudar no desenvolvimento, mas no fim o desenvolvedor não sabe exatamente o que está fazendo. Ele apenas memorizou quais “botões apertar no painel” e se algo não sai conforme o esperado, sempre haverá a Internet para responder suas dúvidas, certo?

Vejo desenvolvedores correndo atrás do último lançamento da IDE, Lib ou compilador, apenas para constatarem que deverão modificar seu código que antes funcionava.

A última versão do compilador adiciou tais e tais features e todos querem utilizar, no entanto a maioria não sabe separar um software em módulos reutilizáveis!

Então, pra mim, Object Pascal continua muito relevante. Gosto de “ter trabalho” ao construir meus softwares, pois gosto do sentimento de ter construído algo por minhas próprias mãos sem ser obrigado a seguir as “regras de desenvolvimento” que algumas empresas consideram ideal.

Não quero depender de outras empresas e de seus produtos privados, que podem mudar a qualquer momento, para que eu possa entregar valor aos meus clientes. A confiança que eu tinha na antiga Borland se foi… até que me provem o contrário. Hoje eu quero ser livre.

Liberdade, é disso que se trata.

Conclusão

Eu gosto de imaginar um mundo onde o Delphi fosse disponibilizado de graça, doado ao time do Free Pascal e Lazarus.

Gosto de pensar numa união de forças entre o Open Source e a magnífica IDE, Delphi, que sempre ajudou o desenvolvedor (experiente ou não) da melhor forma possível.

Gosto de pensar num mundo onde iríamos dar um passo pra trás e ver a beleza e a simplicidade da linguagem Object Pascal, linguagem essa que foi e ainda é inspiração para várias outras.

Eu escolhi Delphi no passado e construí minha carreira com a ajuda dele.

Delphi continua sendo uma ótima escolha para aqueles que sabem aproveitá-lo.

Eu não o abandonei. Tiraram ele de mim devido a burocracia e altos custos. Mas ele continua no meu coração.

Minha hastag hoje — infelizmente ou não — não é mais #WhyIChooseDelphi, mas sim #WhyIChoseDelphi (uma letra faz diferença).

Felizmente tem algo que nunca mudou: A linguagem Object Pascal.

Até logo.

Posts Relacionados

  • Eliminando Métodos Privados

  • Classes Aninhadas

  • API Unit: Tudo num só lugar

  • Injeção de Dependência sem XML, Atributos/Anotações ou Frameworks

  • Nomeando Classes em Libraries

  • Versionando e Organizando seus Pacotes

  • Xavier Package

  • Inter-process Communication

  • Redefinindo Classes

  • Git-work Project