Executando verificação de segurança...
6

Um iniciante querendo aprender Delphi

Sou novo na area, porém já domino muito bem Java e Spring Boot. Apareceu uma oportunidade de trabalho, porem a pessoa me pediu para que eu estuda-se um pouco Delphi antes de começar. Eu estou completamente perdido para aprender Delphi e queria saber se vocês tem alguma dica ou algum material para aprender sobre Delphi.

Carregando publicação patrocinada...
6

Cara, sou sênior em Delphi e minha opinião sincera é que aprender Delphi é perda de tempo.

A Embarcadeiro atual controladora do Delphi matou o próprio produto, quem usa em versões antigas não consegue migrar para mais novas por causa das licenças bizarramente caras.

Ainda tem os sistemas legados que ainda não foram migrados ou não são migráveis em que você utilizará o delphi 7, 2005 e etc.

A maioria das vagas que aparecem são para as versões antigas onde se tem projetos de migração para C#, JAVA etc.

Na empresa que trabalho ficou mais barato migrar todo o ERP para C# e angular do que atualizar a licença do Delphi.

Hoje o Delphi tem usos em aplicativos android/ios tipo o Xamarim(.NET MAUI), Ionic e outras framworks multi plataforma, mas é um mercado bem pequeno e fechado. ( Até hoje só conheci uma empresa no Brasil que usava dessa maneira)

Minha visão particular é que não se inicia novos projetos em delphi no Brasil, por isso to em processo de migrar minha carreira totalmente para o C#.

Mas se vc precisa aprender para algum projeto em especifico no udemy tem uns cursos usando os compiladores mais novos( que são bem diferentes dos antigos) da para você estudar usando a versão communit, agora as antigas vai ser um problema conseguir a licença.

Antigamente existam varios cursos e certificações mas como o delphi foi sendo abandonado foram fechando.

No youtube você também acha alguma coisa.

3

Meu tio também é senior em Delphi, ele o defende por ter 'vários componentes prontos e coisas de acbr' que eu não entendo nada, sou dev fullstack web. Ele faz aplicativos com Delphi e usa as apis que eu desenvolvo com Laravel.

Ele usa o Delphi mesmo pelo carro chefe da empresa que é um ERP feito nessa linguagem. Já contou casos da empresa do Delphi vir atrás de quem ganha acima de tantos ou de quem usa várioas pessoas no mesmo computador com uma licença. E vem multas absurdas, muito dinheiro. Fora a licença né.

Eu, sou de outra geração, sou adepto ao open source. As maravilhas que o Laravel, PHP em geral, nos oferece, muitos pacotes, comunidade bacana que se ajuda. Muito da parte também do Linux que também são bons. Esse negócio de pagar licença de linguagem para poder trabalhar, não é pra mim não.

1
  • VAPO TÁ EM DIA!

Em saber que era um sonho meu aprender Delphi pq meu pai uma vez pegou um livro de Delphi3 no trabalho dele! que doidera... vale por hobby então mas de resto vá de C# ou PHPZADA

1

Eu entendo o seu ponto e bastante gente me disse o mesmo sobre o momento atual do Delphi, mas eu estou nessa porque apareceu uma oportunidade de entrar no mercado e isso seria muito bom porque eu apenas tenho 19 anos e irei começar a faculdade ano que vem então seria uma chance enorme de eu poder já começar com o pé direito.

3

Gostaria de compartilhar minha experiência com o Delphi, não para denegrir a ferramenta, mas para alertar sobre os desafios e evitar que outros cometam os mesmos erros que cometi.

Se você está iniciando, recomendo aprender o necessário para a vaga atual e começar a se preparar para outras linguagens, evitando assim ficar refém do Delphi, que tem se tornado cada vez menos utilizado e mais limitado.

Delphi é bastante comum em sistemas de ERP, como vide o projeto ACBR, um dos maiores e melhores projetos livres feitos no Brasil. No entanto, ao mudar de empresa se você conseguir, a regra de negócio geralmente não muda, forçando você a trabalhar sempre com as mesmas coisas, o que pode se tornar cansativo (Imposto, Governo, Contabilidade, etc.).

Outro ponto complicado é a escassez de material de qualidade para aprender a linguagem. Um exemplo foi quando precisei gerar e consumir JSON em Delphi 7 e e Delphi 4, devido a restrições de licença, não pude usar componentes externos. Isso se tornou uma tarefa muito árdua, enquanto em linguagens como C# ou JavaScript, seria uma linha de código.

Quando comecei com Delphi em 2011, ele já estava em declínio. Aprendi através de vídeo-aulas do MJailton, que hoje nem oferece mais o curso, e um livro extenso conhecido como "A Biblia do Delphi 7". Também tive que lidar com muito código legado estruturado.

Com o tempo, apesar de minha melhora e aumento salarial, tornei-me valioso demais para ser movido para a migração para C#, e a empresa contratou novas pessoas para essa nova linguagem. Isso me deixou em uma situação difícil no mercado, pois ao ser demitido, minhas oportunidades e salários seriam reduzidos, dado meu foco em Delphi.

Ao tentar me realocar, percebi que perderia uma parte significativa do meu salário começando como júnior em C#. Com muito esforço, consegui uma recolocação em C# em uma empresa que acreditou em mim. Se não tivesse saído, estaria até hoje trabalhando com Delphi, correndo o risco de ser demitido e preso em um ciclo de estagnação.

1

Sabe qual o problema de quem trabalha com Delphi? É ficar restrito a versões antigas porque quer.
Meu amigo, Delphi 7 é de 2002, pede por exemplo para o pessoal que trabalha com PHP usar só a versão de 2002, não vai dar bom, isso vale para praticamente qualquer outra tecnologia, nem vou comentar sobre o Delphi 4 que é de 98.
A licença do Delphi é cara? Sim, não é barata a primeira licença, todavia, uma vez comprado, voce segue apenas com a renovação (que é em média 30% do valor de uma licença) e com isso tem direito as versões posteriores, com isso basta saber administrar.
Agora as empresas querem continuar usando um produto de 2002 até os dias atuais e querem que tenha de tudo que é atual, não existe milagre.
Igual pessoas que estão em versões antigas do Delphi e querem compilar para android atuais e colocar na loja, não faz sentido, uma versão antiga do Delphi não tem como prever o futuro para saber como iria ser o android.

Um exemplo foi quando precisei gerar e consumir JSON em Delphi 7 e e Delphi 4, devido a restrições de licença, não pude usar componentes externos

Não entendi aqui, a restrição de licença era devido a uma politica da empresa? Porque nunca ouvi falar de não poder usar biblioteca de terceiros no Delphi por conta de licença.

0

Na empresa que trabalho ficou mais barato migrar todo o ERP para C# e angular do que atualizar a licença do Delphi.

Acho que isso tem muita relação com como ele foi desenvolvido. Existem programas com mais de 20 anos que ainda são mantidos/desenvolvidos (Windows/Linux/Mac). O SimThyr é um exemplo. O maior problema pode ser a mão-de-obra. Parecido com COBOL. A linguagem funciona bem até hoje mas ninguém se interessa em aprender.

1

A Embarcadeiro atual controladora do Delphi matou o próprio produto, quem usa em versões antigas não consegue migrar para mais novas por causa das licenças bizarramente caras.

Segundo informações que eu não tenho, foi cobrado a época 3 milhões de dólares para renovar as licenças.

Eles exigiram que fosse pago todas as licenças de usuário do Delphi do 7 até o Tokio de todo o parque de máquinas, fora as licenças anuais.

Por isso ficou mais barato migrar.

COBOL, PHP, C e etc. não tem esse tipo de problema.

4

Tbm sou programador Delphi e concordo com todos e tudo que falaram.
Delphi é muito caro, isto inviabiliza muito a continuação e novos projetos, infelizmente. Deveria ser bem mais barato e ter mais incentivo nas faculdades igual a Microsoft faz com o C#.
Ao meu ver o que torna o Delphi atraente é a comunidade do projeto ACBr da qual também participo e digo que sem ela seria bem difícil emitir nota fiscal e fazer um monte de outras coisas.
Creio que a maioria que está utilizando Delphi usa porque precisa manter os projetos antigos.
Mas tudo isto não significa que Delphi morreu, pelo contrário, há mercado ainda. Aproveite esta oportunidade.

2

Bem, vamos lá.
Melhor material hoje em dia para aprender ou aperfeiçoar na linguagem Delphi na minha opinião é Academia do código, tem muita coisa no canal deles gratuita e também o "Clube dos programadores" onde é R$49 e uns quebrados por mês e é como se fosse um "netflix" escolha o módulo/conteudo e se divirta.
Fora isso tem outros canais no youtube como exemplo:
99 coders
Alexandre Magno Souza
Imperium Delphi
Bruto do Delphi
Adriano Santos
Vinicius Sanchez
Code4Delphi
Delphi na Veia
DelphiGov
Eder Mello
SWH Sistemas
etc etc

Tem grupos no telegram também (academia do codigo é um deles).

Ou seja material não falta.

Entrando na polemica se vale ou não apena aprender, eu discordo dos demais colegas, apareceu a oportunidade? Aproveite, estão dizendo que Delphi esta morrendo faz mais de anos e esta ai até hoje, tem linguagens/framework que nasceram e morreram nesse tempo, mas Delphi continua, e Delphi é pascal, Lazarus é o "delphi" gratuito e esta crescendo bem ultimamente.
A linguagem esta morta? longe disso, todo ano tem atualizações tanto Delphi quanto o FPC/Lazarus.
Esta mal otimizada? Longe disso, basta olhar o desafio do 1 bilhao de linhas:
https://github.com/ObjectPascal-Community/1brc-ObjectPascal

Ah, a embarcadero esta dificultando com sua politica de preços etc etc. Eu concordo, não é barato, e a versão Community Edition serve só para estudo, se tivesse uma versão Community Edition mais abrangente com limites maiores seria uma porta de entrada muito mais interessante, mas ainda existe esse problema.
Só não acredite que a linguagem esta morrendo, isso é balela.

1
1

Se ele vai trabalhar com Delphi, compensa aprender direto no Delphi já que tem a versão Community Edition e tudo que ele aprender em Delphi vai poder aproveitar no Lazarus depois caso queira.

1

Muito obrigado pelas indicações. Só estou tentando aprender Delphi porque realmente apareceu a minha primeira oportunidade de entrar no mercado e isso seria muito bom para o meu começo na area.

2

Sigo os relatores: nao vale aprender delphi hoje em dia.

Ja fui dev delhpi a uns 20 anos passados (no seculo passado kkk) - e nao tem sentido, exceto para dar manutencao em codigo legado (e neste caso, vai ser uma encrenca dos diabos).

Mas enfim, na UDEMY tem cursos de Delphi (RAD) e nao sao caros, uns R$ 25 cada.

O delphi, em si, nao eh complicado - apenas eh diferente: tenha em mente que voce desenha o "formulario" (tela, dfm) e associa um codigo em object pascal que acessa campos deste formulario (na pratica, cada formulario eh uma classe e cada campo um objeto).

De um modo geral, eh isso - boa sorte !!!

1
2

Concordo com o juliofpsm, também trabalho com Delphi a algumas décadas.

Atualmente não vale aprender Delphi, pois o mercado está ficando cada vez mais restrito em legados e migrações para outras stacks. Quem começa criando algum produto novo usando Delphi como base, está gerando um problema para si mesmo.

A única coisa que eu vejo destaque no Delphi no Brasil hoje é o projeto ACBr, apesar de ser um grande projeto, nada há nada no mercado muito além disso.

1

Sou dev senior em Delphi. Toda a minha carreira foi construída em Delphi. Toda a minha base técnica se iniciou em Delphi. Delphi, é uma tecnologia e tanto, com vários recursos bons semelhantes em outras tecnologias.

Entretanto, desisti do Delphi há tempos e explicarei o por que:

  • Valor da licença: a Embarcadeiro não facilitou o valor da licença para a continuidade da populariação do Delphi. Diria que desde 2005, várias tecnologias que atendiam as necessidades que só Delphi tinha, foram surgindo sendo a maioria Free e outras com custo muito menor que o Delphi. Hoje, uma licença para utilizar bons recursos do Delphi custa uns 25-30k R$, e dependendo do modelo, se for por ativação, esse valor contenplaria um total de 10 ativações. Passou disso, perdeu a licença. Sinceramente, hoje não vejo a necessidade de gerar custos para desenvolver software, onde S.O.=Linux, IDE=VSCode, emuladores=Docker, etc...
  • Não tem integração em Cloud como outras tecnologias disponíveis: para utilizar app em Delphi em Cloud (AWS, GCP, Azure, etc...) é preciso ter uma VM Windows. Nenhuma Cloud (até onde sei) permite você rodar um código (executável) não gerenciado. Recursos como Lambda Function (AWS), Cloud Run Functions (GCP) só permitem rodar códigos gerenciáveis (PHP, Java, NodeJS, .NET Core, Python, Ruby) e não Delphi. Portanto, vários recursos interessantes em Cloud você não conseguria utilizando Delphi.
  • Não rodar bem em Docker: sim, eu sei que dá para rodar uma aplicação Delphi em Docker Linux. Mas experimente crescer essa aplicação, utilizando mais recursos (não nativos em Delphi), que você começará a ter incompatibilidades para jogar isso em Docker. A utilização de Docker nos dias de hoje, considero fundamental para um aplicação em larga escala. Kubernetes, por exemplo, é uma ferramenta que permite você escalar sua aplicação de maneira bem robusta.
  • Comunidade: eu sei que o Delphi ainda tem uma comunidade bem ativa, mas a minha percepção é que algumas pessoas que contribuiram muito para a comunidade Delphi acabaram desistindo (e não me pergunte os motivos), fazendo com que esse apoio fique cada vez menor. Não falo aqui de apoio para ligar um ClientDataset ao DataProvider, mas sim um apoio mais complexo (como por exemplo uso de TMutex, etc...). Quando precisava de apoio assim, só encontro ajuda em inglês e de posts bem antigos.
  • Negligência da Embarcadero com bons produtores de conteúdo: existem uma bliblioteca (http://www.omnithreadlibrary.com/) que, ao meu ver, é um dos melhores códigos escritos em Delphi que já vi. Por exemplo, existem recursos para programação asíncrona, como Event Cycle (o mesmo utilizado em NodeJS). Foi desenvolvida por um cara chamado Primož Gabrijelčič, considero-o um excelente programador, ao analisar os códigos escritos por ele. Então, somente nos últimos anos que vi eventos de Delphi na europa convidando-o para palestrar sobre. Na minha opnião, essa lib deveria ser nativa no Delphi e fomentada seu uso. Creio que muita gente não tem ideia do poder que esta lib tem para criar um app escalável em Delphi. Não vejo nenhum movimento da Embarcadero com essa iniciativa. Vi uma vez, um cara brasileiro que codificou uma Rede Neural em Delphi, um trabalho fantástico, mas que teve pouca procura no canal dele no Youtube. No Github do projeto (https://github.com/marvinbraga/Marvin.IA) o último commit foi a 5 anos atras. Resultado: ele passou a direcionar o conteúdo do canal para Python. Eu, sinceramente, não vejo movimentos da Embarcadero abraçar estas pessoas e promover seus trabalhos, fomentando o uso na comunidade.
  • Salários em Delphi baixos se comparado ao mercado: raramente (repito, raramente e não uma totalidade), eu vejo uma vaga que pague em Delphi o mesmo salário que um sênior Java, .NET, Go ou Python.
  • Projetos legados: a maioria (repito, a maioria e não uma totalidade) de projetos atuais em Delphi são sistemas legados. Raramente você verá um projeto grande, hoje, nascendo em Delphi.

Eu poderia listar mais motivos aqui que me fez tomar a decisão de não utilizar mais o Delphi. E resumindo, não é pelo pode que a tecnologia tem, mas pelos motivos que citei acima.

Bom, esta é apenas a minha singela opinião.

1

🤣 Galera bora pra descer no Delphi e todos estão certos, tem uma galera Sênior ai em Delphi eu vou dá meu 1 centavo como um Juinim em Delphi, Juinim porque trabalhei com Delphi a uns 4 anos atrás durante 2 anos.

E trabalhei com Delphi desktop, bastante! E delphi com firemonkey para android (roda em outras plataformas, mas usei só pra android)

Isso dito, quero dizer a construção da linguagem é ruim, o apoio da comunidade é péssima os únicos que senti um certo companherismo seria a comunidade do Projeto Acbr, eles são um dos poucos que carrega o Delphi nas costas eles aqui no Brasil e Firebird + Ibexpert.

Firebird é um banco do qual eu gosto bastante, depois dá uma olhada. Seria uma espécie de sqlite com servidor de banco, mas realmente muito bom principalmente a v5.

IBexpert assim como o Delphi, parou no tempo!

Delphi é um pato e dos piores tipos, eu acredito que tem linguagens ou ferramentas que se propões a fazer muitas coisas, porém limitadas e deixando claro a limitação e te dando uma alternativa manual.

Com Delphi, você tem muitas coisa que funciona muito ruim, pra você sair do 0 a 40% eu juro a você que é muuuito mais rápido do que com qualquer outra coisa, mas sair do 40% pra 100% é um parto!

Conclusão

Se é pra ter a facilidade do Delphi os Drag And Drop, prefira qualquer outra ferramenta web lowcode, tem mais futuro q você conseguirá entregar um produto multi-plataforma sem fazer gambiarra!

Delphi é um lowcode velho e ruim!

Desculpa a todos, mas o delphi já queimou meus neurônios uma época estou só estravazando com a oportunidade.

0

Delphi não esta muito longe de ser ruim, não generalize uma linguagem inteira por sua experiencia.
A comunidade é muito ativa e se ajuda muito, não sei na onde você pediu apoio.
Ibexpert só se usa em legado muito antigo e olha la ainda, atualmente se usa FireDac/Zeos ou algum outro componente pago como UniDac.
Delphi não parou no tempo, tem atualizações todo ano, em qual sentido parou no tempo?
Você afirma coisas como "Delphi parou no tempo" "muitas coisa que funciona muito ruim" "Delphi é um pato dos piores tipos" "Construção da linguagem é ruim" etc mas não da um misero exemplo do porque dessas coisas.
Eu trabalho com Delphi, conheço varias pessoas que trabalham com Delphi e NADA do que você disse se concretiza.
Exemplo, o HeidiSQL (https://www.heidisql.com/) é um otimo SGDB utilizados por muitas pessoas que nem sabem no que ele é feito, e adivinha? Feito em Delphi.

1

Nem preciso advinhar porque eu sei em que ele é feito, a interface dele é feia e engessada, por isso prefiro o DBEver ou Beekper Studio (esse tem bem menos recurso, é muito enxuto)

Falar da linguagem de uma empresa milionária te machucou não foi? Me desculpe!

O Delphi não parou não acredito que a ultima versão que usei dele acho que foi Delphi Sidney ou Rio, não lembro mas foi uma mais nova, bem melhor que as antigas, mas ele melhora a IDE, e continua um Debugger horrível o Debugger do Go é melhor que o do Delphi. (To falando do Go, porque seria humilhação comparar ao do C#)

Para quem fala de Java ser verboso, deixa mostra pra vocês uma classe simples de usuário em Delphi.

type
  TUsuario = class
  private
    FId: Integer;
    FNome: String;
    FEmail: String;
    
    procedure SetNome(const Value: String);
    procedure SetEmail(const Value: String);
    
    function GetId: Integer;
    function GetNome: String;
    function GetEmail: String;
    
  public
    constructor Create(Id: Integer; Nome: String; Email: String);
    destructor Destroy; override;
    
    procedure AlterarNome(NovoNome: String);
    procedure AlterarEmail(NovoEmail: String);
    
    property Id: Integer read GetId write FId;
    property Nome: String read GetNome write SetNome;
    property Email: String read GetEmail write SetEmail;
  end;

{ TUsuario }

constructor TUsuario.Create(Id: Integer; Nome: String; Email: String);
begin
  FId := Id;
  SetNome(Nome);
  SetEmail(Email);
end;

procedure TUsuario.SetNome(const Value: String);
begin
  FNome := Value;
end;

procedure TUsuario.SetEmail(const Value: String);
begin
  FEmail := Value;
end;

function TUsuario.GetId: Integer;
begin
  Result := FId;
end;

function TUsuario.GetNome: String;
begin
  Result := FNome;
end;

function TUsuario.GetEmail: String;
begin
  Result := FEmail;
end;

procedure TUsuario.AlterarNome(NovoNome: String);
begin
  SetNome(NovoNome);
end;

procedure TUsuario.AlterarEmail(NovoEmail: String);
begin
  SetEmail(NovoEmail);
end;

Obs: esse seria o mundo perfeito, porque a maioria dos devs (que trabalham em projetos legados sim!! nem cria classe, é bem procedural)

Ta ai uma coisa que mostra como a construção da linguagem é péssima, vou te dá outro exemplo:

Métodos anônimos... Epa, Delphi possuí métodos anônimos, você pode me dizer, mas a construção é tão porca que ele funciona em alguns lugares e não em todos.

Vamos lá:

Eu tenho um evento de um botão no firemonkey (eu precisei a um tempo atrás), porém eu crio o meu botão em tempo de execução, então quero atribuir o evento de click um método anônimo, eu posso? Não eu não posso!

Mas porque? Porque um método anônimo de um evento só permite se for uma construção de método com nome e corpo bem definido, pois ele recebe um parâmetro self que é invisível (essa parte eu não entendi muito bem)

Nenhuma linguagem pensou em fazer um novo tipo de método para resolver um problema como métodos anônimos, é rídiculo, não acredita em mim, tudo bem eu tenho fonte de onde eu descobri que não poderia fazer o que tava tentando.

https://en.delphipraxis.net/topic/1047-anon-methods-passed-as-event-handlers/

Pra acalmar seu coração de espartano!

Eu ainda prefiro o Delphi em comparação ao Lazarus, Lazarus é uma IDE muito fraquinha em comparação, mas dá pra fazer algumas coisinhas.

Vlw flw, e estuda o link que mencionei.

https://en.delphipraxis.net/topic/1047-anon-methods-passed-as-event-handlers/

1

Se você vai aprender Delphi ja com uma vaga em vista procura saber qual é a versão que a vaga pede.
Do Delphi 7 para os posteriores houve um salto grande e ainda existem muitas empresas que usam o D7.
O ecossistema do Delphi é muito limitado e é difícil encontrar bibliotecas prontas e gratuitas para resolver alguma coisa. Então provavelmente vai precisar criar muita coisa manualmente.
O gerenciamento de memória dos objetos é feito manualmente ( você cria, você destrói).Existem algumas exceções nisso por exemplo componentes visuais.
Não é uma linguagem complexa e se ja conhece outra vai conseguir mapear os conceitos com facilidade.
Tenta se inteirar sobre a VCL (Visual Component Library), eventos e propriedades. Já procura estudar sobre DUnit e XUnit para implementar testes unitários. Comunicação com banco de dados e serviços web.
Sugiro tentar transcrever programas implementandos em linguagens que você conheça para Delphi. Procura a bíblia do Delphi (do Marcu Cantu) da versão que você vai trabalhar.
Procura saber qual banco de dados e quais bibliotecas a empresa usa. Baixa e tenta criar algo com isso.

Enfim sucesso na sua jornada.

2

Tenho que discordar em um ponto,

O ecossistema do Delphi é muito limitado e é difícil encontrar bibliotecas prontas e gratuitas para resolver alguma coisa. Então provavelmente vai precisar criar muita coisa manualmente.

Poderia citar exemplos? Pois praticamente tudo que precisei até hoje tinha algo, claramente não estou falando de um sistema já pronto.