GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JavaFX realidade ou apenas especulação ?

java
Tags: #<Tag:0x00007f8cacc59140>

#33

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.


#34

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.


#35

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.


#36

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 ?


#37

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.


#38

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.


#39

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.


#40

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…


#41

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.


#42

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.


#43

Então @jeff021 eu ja estou estudando o desenvolvimento do C# usando Windows Form, eh bem simples mesmo e tem muitas opções de componentes, me lembrou o Delphi e o VB.

Agora estou estudando qual framework ORM de persistencia irei usar, se uso o EF ou o NHibernate, nesta parte do uso de Frameworks ORM estou achando meio complicado, acredito que seja pq estou acostumado com Java e as coisas fluem mais facilmente, mas minha primeira impressão é que é bem complicado o uso de ORM no C#, mas vou seguir estudando.

[]s


#44

Show a respeito do C# tem o WPF que e bastante parecido com a mecânica do FXML do JavaFX. Acho que o WPF meio que substituiu Windows Forms. Mas e isso ai tomará que vc consiga ter um desempenho bacana nessa jornada. Pois vi sua qualidade de serviço nos 2 videos que vc colocou acima no post e realmente vc e muito bom e bastante detalhista. Parabéns!!!

Legal ver mas pessoas que gostam bastante de programação Desktop.


#45

@ViniGodoy Quando você diz que programar pra desktop com Java torna seu projeto open source, o que realmente quer dizer? Eu não conheço muito sobre, mas tem como pegar um código de um .jar por exemplo?


#46

Sim, baixe o java decompiler e você vai ver que um jar vira código 100% legível.

http://jd.benow.ca/

Aliás, um .jar nada mais é do que um zip cheio de .class dentro.


#47

Valeu, obrigado!


#48

@ViniGodoy Ainda sobre isso, pesquisei e vi que existem algumas técnicas de ofuscamento de código e outras coisas, mas não há algo muito certo. Que técnica/ferramenta você indicaria para que mesmo desenvolvendo minha aplicação com java, ainda assim conseguisse proteger meu código fonte? Pode não ser uma técnica 100% confiável (e quais coisas são 100%, não é?) mas algo que me desse uma maior segurança para proteger meu software.


#49

Ofuscar o código. Isso vai impedir que um turista simplesmente o descompile e leia. Nada que alguém com um bocado de tempo e paciência não possa fazer.

O ideal seria também baixar os fontes de todas as bibliotecas externas o ofuscar TUUUUDO. Senão as chamadas de código a elas tornarão o trabalho mais fácil.

Agora, se seu objetivo é proteger o mecanismo para impedir pirataria, esquece. Alguém pode simplesmente se concentrar nessa parte específica do código. O cara que descompila ainda pode usar o depurador.


#50

Quanto a descompiladores, tem desses para várias linguagens, veja esse para .exe https://www.jetbrains.com/decompiler/features/. Na TI nada é seguro.


#51

Nada é 100% seguro mesmo, mas pode ser 70% ao invés de 7%. Se realmente for importante pra empresa evitar isso em seu produto, não iria facilitar demais as coisas usando Java ou .NET, usaria C++ nativo por exemplo.


#52

Tente reverter um código c++ compilado com otimização o3, você vai ver que o resultado sai muito distante do código original é ilegível. O c++ não guarda a estrutura ou muitos símbolos, pois não tem reflection. Além disso, boa parte das funcionalidades do C++ são implementadas com templates, que geram código antes de compilar.

Esse descompilador pode ser pra o .Net. O .exe do .net é só um programinha que dispara a vm da Microsoft e envia o bytecode (que fica dentro do exe) para lá.