JavaFX realidade ou apenas especulação ?

Eu tambem tenho larga experiencia em desenvolvimento com swing, e tenho usado JavaFx para desktop, simplesmente d+. tem coisas nele que farão você ficar de joelhos.

1 curtida

javaFX é vida kkkk adoro d++, trabalhei com swing desde do tempo da facul, depois que conheci o javaFX e entendi como funciona, passei a amar ele :slight_smile:

Desde quando é mais facil aproveitar recursos nativos numa tecnologia multiplataforma?

Aproveitando o post aqui. Qual a melhor forma de se trabalhar com JavaFX. Digo isso, pois estou começando agora e tive certa dificuldade em passar valores entre telas e repetição de código.

Então criei uma camada de Interface para implementar as telas e alguns comportamentos. Alguém tem uma forma mais pratica ou é isso mesmo?

tem um projeto que eu to desenvolvendo em javafx atualmente e tem vários tipos de passagem de valores que eu consigo usar, desde passagem por argumento no construtor a passagem por evento customizado. Quiser dar uma olhada: https://github.com/gbrvalerio/LanComm

JavaFX é realidade e é muito usado. Inclusive tem app brasileira em destaque no mundo, veja:

https://groups.google.com/forum/#!topic/javafx-br/sLWqzkprtCw

Para aqueles que querem aprender, sugiro meu blog:

http://aprendendo-javafx.blogspot.com.br/

3 curtidas

Sério mesmo, javaflex? Então escreva algo que rode (bem e de forma uniforme) para osx, linux e windows, que não seja java. Mantenho alguns projetos java swing a 8 anos, nem eu nem meus clientes concordamos com tua idéia. Exisiram dificuldades para fazer o tuning dos aplicativos, no início, mas depois rodam muito bem.

Dê uma olhada neste projeto, que integra spring com javafx.
Estou começando agora na plataforma e usei este como base para entender a passagem de informações entre telas.

Se você precisa acessar recursos nativos da plataforma, use C ou C++. E teu sistema fica preso nesta plataforma. Talvez a maior vantagem do Java é ser multiplataforma, se você não precisa disso, use outra linguagem.

Eu concordo com o @javaflex . Trabalho primariamente com aplicações desktop e o Java deixa a desejar em muitos aspectos. Componentes antigos, acesso difícil ao sistema operacional, difícil de usar aceleração gráfica, etc. Há a desvantagem do processo da instalação da VM também ser traumático e não esconder do usuário que ele saiba exatamente que versão está usando. Sem falar que não há qualquer proteção ao código fonte, se usar Java, seu aplicativo será Open Source.

Sigma2k, em QT é facílimo fazer aplicações que rodam de muito bem e de maneira uniforme em todas as plataformas que você citou e ainda incluir plataformas mobile e embedded, que o Java não suporta. É menos uniforme do que o Java pois ele ainda respeita os idiomas comuns de cada SO - o que é uma grande vantagem.

Sério, vocês provavelmente só defendem o Java porque nunca pararam para desenvolver a sério em outra plataforma melhor. Ou porque nunca desenvolveram aplicações desktop que exigem um pouquinho mais de integração ou multimídia. Que, diga-se de passagem, são coisas extremamente comuns para quem trabalha com desktop a sério.

2 curtidas

sigma2k, não necessariamente. Você pode querer acessar recursos como a aceleração gráfica em OpenGL, acesso a portas USB ou interfaces seriais, e outros recursos bem encapsulados e que o Java não dá qualquer suporte.

Você também pode fazer com que sua aplicação rode melhor em um determinado SO (como por exemplo, o Windows) e prover mecanismos menos interessantes para as demais plataformas. Um exemplo muito comum disso é permitir que, caso o aplicativo esteja instalado no Windows, a autenticação seja integrada ao IIS.

De qualquer forma, é muito comum que desenvolvimento desktop não seja multiplataforma, ou que tenha restrições de tempo real. Pontos onde a fragilidade do Java é evidente. Se você vai trabalhar com todas as restrições que o Java fornece em nome do multiplataforma, pergunte-se se sua aplicação precisa mesmo ser desktop. Provavelmente será mais vantajoso faze-la em web.

2 curtidas

Concordo contigo, Vini. Tenho um app que precisa usar recursos de processamento ao máimo, onde java se mostrou muito rápido, até comparado a C e C++. Neste caso específico, com multithread para processamento, web seria um problema, uma requisição usaria todo o processamento do servidor. Por isso a necessidade de ser desktop. Vejo que não existe uma receita genérica, temos que avaliar os requisitos do sistema para tomar a melhor decisão. E gostaria de te agradecer, muito do que conheço hoje se deve aos conhecimentos que você compartilhou.

Se sua aplicação não é uma ferramenta, ou um software que envolve criação, ou não acessa recurso nativo nenhum, é porque sua aplicação possui pouco valor agregado.

Sobre usar OpenGL etc…Não é para criação de games nem muito menos integração de midias, eh apenas um sistema comercial que acredito seja a real proposta do antigo Swing e do novo JavaFX.

Sobre a proteção do código @ViniGodoy eu tenho um programa que protege o código gerando o exe através do .jar que eh o Excelsior: http://www.excelsiorjet.com/

Esse JavaFX é muito legal, eu como ja conhecia e trabalhei com Swing foi fácil aprender e ainda essa estrutura de usar FXML com Controllers lembra muito JSF e Android(nativo), o que facilitou mais ainda.

No momento eu preciso criar um software que emita o SAT-CF-E e tbm ECF e que tbm imprima em impressoras de cupom na rede, eh basicamente uma frente de caixa. Acredito que com Java será tranquilo fazer, mas ja me sugerirão usar o C# ou C++ ou até mesmo o Lazarus.

Nunca criei um sistema que emita ECF ou esse novo SAT-CF-E, então gostaria da opinião de vocês se realmente minha idéia de usar Java seria uma boa ?

Isso é relativo, aplicações web que cito não são softwares a serem vendidos, mas aplicações com soluções bem específicas que agregam valor para o negócio de forma estratégica, onde a atividade fim não é TI.

Mas concordo no que você falou considerando uma aplicação desktop que não usa recurso nativo, já que a maior razão de ser fazer aplicação desktop hoje em dia é acessar recurso não disponível por HTML.

Acho que esta falando de soluções customizadas para um cliente específico, software sob encomenda. Mas como isso pode PREDOMINAR em relação a por exemplo um jogo, ou ferramenta para músicos, ou qualquer outro nicho que possui audiência global? Certamente existem muito mais jogadores e músicos no mundo para você vender seu software do que clientes potenciais para uma solução customizada.

1 curtida

Não entendi porque tenta confrontar produto com serviço customizado, são casos diferentes. Cada um escolhe o tipo de oportunidade que deseja trabalhar.

Nossa, você conseguiu pagar pelas licenças do Excelsior?!?!?! São 3.000 dólares por plataforma! =O
Se seu software é simples, tanto faz a linguagem. Use a que você tem mais familiaridade. O fato de dizer que o Java seja a pior alternativa para desktop não significa dizer que ele não seja uma alternativa. Só que, para muitas e muitas e muitas aplicações desktop, o Java dará muito trabalho a toa. Os exemplos são os que falei: exigir algum tipo de integração com o SO (para autenticação, uso de hardware, etc), exigir tempo real, exigir uso de bibliotecas exóticas (que são muito comuns em C, mas raras em Java), ou exigir acesso a multimídia.

Para o feijão com arroz, você pode resolver com praticamente qualquer coisa: python, Java, C++, C#, etc…

kkkkk…eh cara mesmo @ViniGodoy mas eu consegui um esquema com eles que saiu bemmm mais barato. Claro, não comprei o master pelo fato de ser esse valor que você disse mas paguei 700 reais quando comprei.

Sobre o desenvolvimento do sistema andei dando uma olhada no C# e gostei bastante, inclusive percebi que tem como usar frameworks para persistência que é o que me fazia mais resistente ao uso pois eu não sou fã de ficar escrevendo SQL, ja fiz muito isso na vida e depois que comecei a trabalhar com Java e usar Hibernate ou EclipseLink abandonei de vez o SQL.

Mesmo eu tendo mais familiaridade com Java vou partir para o desenvolvimento C# para este sistema em específico, afinal, o C# é uma cópia do Java então quanto a linguagem em si acredito que não terei muita dificuldade.

Muito obrigado por sua atenção.

Fernando gosto muito de programação descktop, gostei bastante do JavaFx por uma serie de coisas mas tbm fico pensando se poderia migrar para C# pois todo mundo fala que para descktop C# e de longe a melhor escolha do que java.

1 curtida