Taverna /dev/All

Desenvolvimento desktop hoje: o que tem usado?

Quando se trata de desenvolvimento desktop, o que vocês tem usado? Vou narrar aqui as minhas últimas experiências para que possamos começar a discussão.

Java com Swing

Especialmente quando usado junto com Netbeans, se mostra uma alternativa fenomenal. Tenho ali um excelente construtor de interfaces totalmente visual e a própria IDE ajuda bastante no trabalho.

Além disto é realmente multi plataforma: roda em praticamente qualquer plataforma. A única parte chata é a construção de instaladores, dado que ainda é necessário fornecer a JVM junto com o projeto. Mas acredito que é algo que deva ser resolvido em breve.

Lazarus

Tenho estudado o Lazarus ( https://www.lazarus-ide.org/ ) como alternativa ao Delphi e têm se mostrado uma alternativa muito interessante. Há tudo o que preciso ali e ainda por cima é multi plataforma: posso compilar meu código para uma infinidade de plataformas incusive.

O porém ainda é a linguagem: Pascal, que infelizmente não é tão popular, então isto dificulta um pouco a obtenção de mão de obra.

.net com WinForms ou WPF

É outra alternativa bem bacana por ser bem madura, mas tem um grande inconveniente: Windows only até onde pude ver.

Java agora tá com um framework muito bom chamado JavaFx. Eu criei um cliente Kafka para empresa e é excelente. A principal vantagem é que dá pra fazer customizações usando CSS, obviamente não usei.

O problema: requer Java 11.

Tem o Electron que é javascript. Gera instaler fácil pra qualquer SO. Eu fiz uma POC durante uma aula chata do MBA: GitHub - vepo/pomodoro: This is a TODO Management and Pomodoro Timer. This app pretends to allow you creating a TODO list integrated with a Pomodoro Timer.

Achei excelente. É usado no VSCode, Spotify, Discord e outros. HTML e javascript. Dá pra portar os frameworks frontend.

Desenvolvimento desktop é uma constante quando falamos de tooling. Criar ferramentas para facilitar o nosso uso do computador no dia a dia. Usar ferramentas num browser não é tão flexível quanto usar uma ferramenta dedicada no desktop, em que você pode dar um ctrl+c/ ctrl+v, ou abrir a mesma ferramenta uma dezena de vezes, as vezes sem precisar ter a internet.

Java swing na minha opinião é um dos melhores toolkits para desenvolvimento desktop. Ele é amplamente testado e maduro. O javafx é voltado para aplicações multimídia. É uma boa para aplicações de vídeo, jogos, simulações, criar interfaces ricas com linguagem declarativa.

No quesito .net, eu acredito que a única alternativa viável é o gtk, que funciona bem. Winforms é legal, mas está atrelado ao windows. O wpf é complicado, precisa usar xaml e você precisa do visual studio para trabalhar, porque não existem visualizadores fora dele.

O Lazarus, assim como pascal é eficiente que nem a linguagem c para gerar executáveis. O resultado final é perfeito. Talvez o único problema seja a linguagem, que as pessoas conhecem pouco. Muitos programas famosos são escritos usando essa ferramenta.

Ferramentas como Electron eu não gosto. O modelo de memória é ruim. Você precisa ter um chromium para rodar seu aplicativo. É moda hoje, mas nem tudo que é moda é realmente eficiente.

A parte boa e toolkits como gtk e qt é que existem ferramentas e wrappers de várias linguagens.

2 Curtidas

A primeira versão do skype foi desenvolvida com Lazarus kiko. Pra mim, foi a melhor até hoje.

1 Curtida

O editor de ícones, que uso para desenhar os que uso nas minhas aplicações, é uma ferramenta implementada no lazarus.

É extremamente leve e rápido, não importa quantos ícones você carregue nele.

não foi Delphi não? Eu vivia ouvindo falar que era feito em Delphi, inclusive era exposto como um case de sucesso.

Lazarus, porque era multiplataforma.

Olhei na página lá. Era delphi mesmo. A versão pra linux que usou o lazarus.

Eu acho o Delphi uma ferramenta muito show, o que desanima são as diretrizes da embarcadero quanto a licenciamento. Lazarus só dei manutenção em uma aplicação mas também achei muito bom, o legal é que a comunidade cresceu bem nos últimos anos. Pascal para desktop é bem bacana, tem uma sintaxe amigável e muito performática.
Electron tive problemas de performance, principalmente sobre gerenciamento de memória, achei terrível.

2 Curtidas

Eu utilizei muito Lazarus no passado, principalmente pela possibilidade de exportar para linux mac e windows.

Ultimamente porém, minhas ferramentas pessoais são pequenas e utilizo Lua para desenvolve-las. para a GUI, uso uma biblioteca chamada YUE, do cara que criou o Electron: libyue . com

Para os interessados, cheguei a ensinar o básico em uma série de vídeos:

1 Curtida

Concordo. Pascal é on pair com linguagem c no quesito performance. A linguagem como você falou é muito amigável e tem abstrações que facilitam muito a escrita de soluções.

itexto