Desktop - Qual linguagem?

Qual a linguagem mais adequada pra desktop?
Qual a vantagem?

Delphi já foi pro limbo há muito tempo…
Java e .NET são boas opções.

Queria saber se o visual basic também foi pro limbo também, para fazer uma festa de comemoração! :grin:
EU ODEIO VB 6.
:grin:

fiquei sabendo que o Java é melhor para interfaces graficas do que o Delphi. A unica desvantagem é o acesso ao DB que é mais lento, isso é verdade ?? O acesso ao DB para java é pior que o Delphi ??

Melhor em que sentido? Facilidade de implementação? Velocidade? Pra dar uma resposta certa teria-se que fazer um bench mark com os dois. Mas vou te dizer que temos aplicações Java usando Oracle, SQLServer e PostGres e todas funcionam muito bem e rápido. Trabalhamos com volumes de dados muito grande, te garanto. T+

pra algumas situações eu acho bem questionável o uso do Java para apilações desktop…

aplicações q não precisem de muita coisa…por exemplo um sisteminha de cadastro para uma lojinha, por exemplo…acredito q a utilização de Delphi ate mesmo VB, eh bem valida, pela facilidade e velocidade no desenvolvimento e tb pela facilidade de manutenção…

não eh possível escolher “a linguagem mais adequada pra desktop”, acredito q cada caso eh um caso, e vai da necessidade do cliente…tipo assim, o muleque q mora ali na esquena q eh sobrinha da Dona Maria, sabe fazer um sisteminha em VB, se isso serve pra loja do seu Manuel, otimo, perfeito, ele vai gastar pouco, o muleque vai estar sempre ali na esquina se der algum problema, etc…

eu sou a favor do ambiente web inclusive para aplicações locais, a interface em qq sistema em ambiente web, não vai fugir muito de qq site q qq usuário está acostumado, para ampliar a disponibilidade desse sistema é muito simples, sem gastar muito mais, vc pode oferecer os dados do cliente na internet (marketing nervoso, hehehe), outra coisa, com Java, acredito q o desenvolvimento para web seja muito mais produtivo do q para desktop…

bom, isso tudo eh uma discussão sem fim…

flw

Não. É totalmente falso. O acesso a DB no java é muito melhor, mais eficaz, mais flexível e mais globalizado que em delphi.

[quote=“pedrobusko”]
eu sou a favor do ambiente web inclusive para aplicações locais, a interface em qq sistema em ambiente web,
flw[/quote]

Eu tenha a opinião exatamente contrária. Web só deve ser usada em aplicações dirigidas ao publico geral como e-commerce, ou portais como este. Aplicações coorporativas deveriam usar swing. Isto pq os requerimentos normalmente são mais simples de implementar em swing.
É claro que isso aumenta a complexidade do sistema a um nivel que poucos programadores e desenvolvedores java estão habituados.

eu acho que a qualidade do software esta muito mais a “quem desenvolve” do que “em que desenvolve”, programador tosco faz coisa tosca em qualquer linguagem.
quanto a interface web ou swing, ao meu ver, com web fica muito mais bonito e moderno, mas, com swing da pra ter mais recursos fica mais funcional e também da pra deixar bonito ( ai vai dar mais trabalho… )

Eu também sou totalmente a favor do ambiente WEB. Se eu tiver um sisteminha de agenda eu vou querer acessá-lo de qualquer lugar, ainda qu seja via JWS.

[quote=“sergiotaborda”]Eu tenha a opinião exatamente contrária. Web só deve ser usada em aplicações dirigidas ao publico geral como e-commerce, ou portais como este. Aplicações coorporativas deveriam usar swing. Isto pq os requerimentos normalmente são mais simples de implementar em swing.
É claro que isso aumenta a complexidade do sistema a um nivel que poucos programadores e desenvolvedores java estão habituados.[/quote]

Eu já acho que tudo quanto é tipo de aplicação deve ser disponibilizada através da WEB. O grande problema é que aplicações corporativas quase sempre são enormes e como uma empresa com usuários distribuídos poderia disponibilizar o sistema da forma mais simples possivel ?

Quanto a implementação em Swing eu acho que bem mais “chatinha” do que HTML/XHTML. É muito mais fácil implementar uma tela em HTML do que em Swing (é claro que com o Matisse a disputa fica boa :wink: ).

[quote=“pregospan”]eu acho que a qualidade do software esta muito mais a “quem desenvolve” do que “em que desenvolve”, programador tosco faz coisa tosca em qualquer linguagem.
quanto a interface web ou swing, ao meu ver, com web fica muito mais bonito e moderno, mas, com swing da pra ter mais recursos fica mais funcional e também da pra deixar bonito ( ai vai dar mais trabalho… )[/quote]

Isso é verdade o cara quando é ruim faz merda em qualquer linguagem. Esse papo de que Swing oferece mais recursos do que WEB é passado, agora com AJAX/Laszlo as interfaces WEB ficaram bem mais ricas.

:wink:

[quote=“sergiotaborda”] os requerimentos normalmente são mais simples de implementar em swing.
É claro que isso aumenta a complexidade do sistema a um nivel que poucos programadores e desenvolvedores java estão habituados.[/quote]

requerimentos? não entendi muito bem, se estamos falando de regras de negocio, essas regras serão aplicadas numa camada específica independente do ambiente. Hoje a disponibilidade de informações é essencial…

será q realemnte é valido, construir uma aplicação local (swing, por exemplo), e uma outra para disponibilizar os dados na web? não é mais facil uma única aplicação onde o usuário estará acostumado a utiliza-lade qualquer lugar que ele esteja?

por exemplo, MVC é um padrão originalmente idealizado para aplicações desktop, e foi adaptada para web. Independente do ambiente toda a parte Model, será praticamente igual implementando os requsitos…

bom poderíamos discutir por horas, dias, sei lá, cada um defendendo suas idéias…mas isso q eu acho bacana neh…hehehehe

Flw!

Programo em Delphi desde a década de 90, mas devido aos altos custos do upgrades e do destino incerto da linguagem, estou aprendendo Java para migrar as minhas aplicações e também aprender uma linguagem de aplicações mais amplas.

Atenção que disponibilizar é diferente de desenvolver. Eu posso desenvovlver swing e disponibilizar via web como o usem jws (que tb tem suas limitações). Eu aposto no jws para destribuir e no swing para desenvolver, mas como disse antes, swing e html têm fionalidades diferentes.

A questão é entre swing e html. Qual é melhor para um aplicação coorporativa ? A resposta é : depende da aplicação. Mas em geral, swing permite um controlo muito maior da visualização que html. A menos que vc inlcuar Ajax e javascript, mas ai, vira tão complexo quanto swing (no meu entender mais ainda)

Não acho que seja mais chatinha não. Eu adoro swing. Dizem que é lento e dificil , Isso é conversa. É rápido e poderoso. Esperimente fazer uma tabela editável em html e me diga se é fácil. Em swing não só é possivel e simples, como é o padrão que a pessoa espera. O exemplo clássico de pedido e items. Se o pedido é um form, os itens devem ser uma tabela editável desse form. Isso em html , mesmo com ajax é um inferno.

Quanto ao Matisse pode ser muito bom para o programador iniciante - e não me entendam mal, programadores iniciantes são bem vindos - , mas o netbeans gera um monte de codigo sozinho e isso nunca é bom. Isso é o que o VB e o Delphi e o .NET fazem e que é exatamente o ruim dessas linguagens. Eu acho muito bem que tenham criado o Matisse, para RAD é muito bom, mas RAD e “aplicação séria” não cabem na mesma frase.

[quote=“pedrobusko”][quote=“sergiotaborda”] os requerimentos normalmente são mais simples de implementar em swing.
É claro que isso aumenta a complexidade do sistema a um nivel que poucos programadores e desenvolvedores java estão habituados.[/quote]

requerimentos? não entendi muito bem, se estamos falando de regras de negocio, essas regras serão aplicadas numa camada específica independente do ambiente. Hoje a disponibilidade de informações é essencial…
[/quote]

requisitos era o que ue queria ter escrito :slight_smile:
E não estamos falando de regras de negocio. Estamos falando de regras de visualização. Essas pertencem apenas à camada de view. E podem ser variadas, desde colocar campos inválidos com cor diferentes até fazer desaparecer campos , desabilitar ,etc… on-the-fly.
O tipico se o campo A = x então desabilita B, coloca C em negrito e faz D ser obrigatorio… coisas desse tipo

repare que swing não é sinonimo de local. A aplicação pode ser destribuida (aka não local) e ser em swing. É que uma aplicação Web não é destribuida e ai é que está a diferença e a dificuldade de fazer uma aplicação swing destribuida ( tem que se pensar diferente nas coisas)

Mas para o usuário, swing sempre será mais facil de usar. Tens teclas de atalho, menus , grqaficos dinamicos, etc etc… que em web, tb podes ter, mas dá um trabalhão …

Se a aplicação for complexa o suficiente em termos de edição de dados, web não comporta e/ou o usuário tem que sofrer muito.

Na realidade o MVC que é implementado pelo Swing e pelo JSF (por exmeplo) são o mesmo padrão. Só que as pessoas confundem o MVC do Swing com o MVC da sua aplicação e ai é que vaca vai pro brejo…
Repara que o Swing é apenas o V do MVC da tua aplicação (tal qual o HTML), embora ele, internamente implemente o seu ppr MVC.
Depois que se entende isto programar swing é simples, o problema é conseguir entender isto.

[quote=“pedrobusko”][quote=“sergiotaborda”] os requerimentos normalmente são mais simples de implementar em swing.
É claro que isso aumenta a complexidade do sistema a um nivel que poucos programadores e desenvolvedores java estão habituados.[/quote]

requerimentos? não entendi muito bem, se estamos falando de regras de negocio, essas regras serão aplicadas numa camada específica independente do ambiente. Hoje a disponibilidade de informações é essencial…
[/quote]

requisitos era o que ue queria ter escrito :slight_smile:
E não estamos falando de regras de negocio. Estamos falando de regras de visualização. Essas pertencem apenas à camada de view. E podem ser variadas, desde colocar campos inválidos com cor diferentes até fazer desaparecer campos , desabilitar ,etc… on-the-fly.
O tipico se o campo A = x então desabilita B, coloca C em negrito e faz D ser obrigatorio… coisas desse tipo

repare que swing não é sinonimo de local. A aplicação pode ser destribuida (aka não local) e ser em swing. É que uma aplicação Web não é destribuida e ai é que está a diferença e a dificuldade de fazer uma aplicação swing destribuida ( tem que se pensar diferente nas coisas)

Mas para o usuário, swing sempre será mais facil de usar. Tens teclas de atalho, menus , grqaficos dinamicos, etc etc… que em web, tb podes ter, mas dá um trabalhão …

Se a aplicação for complexa o suficiente em termos de edição de dados, web não comporta e/ou o usuário tem que sofrer muito.

Na realidade o MVC que é implementado pelo Swing e pelo JSF (por exmeplo) são o mesmo padrão. Só que as pessoas confundem o MVC do Swing com o MVC da sua aplicação e ai é que vaca vai pro brejo…
Repara que o Swing é apenas o V do MVC da tua aplicação (tal qual o HTML), embora ele, internamente implemente o seu ppr MVC.
Depois que se entende isto programar swing é simples, o problema é conseguir entender isto.

Não confundam destribuição via web com interface html , nem aplicação desktop swing com aplicação standalone. Essas coisas não têm nada a ver.

[quote]sergioborda escreveu:
Não confundam destribuição via web com interface html…[/quote]

Oq vem a ser distribuição via web? e aplicação distribuída? Oq vc quis dizer com interface html?

[quote]sergioborda escreveu:
…nem aplicação desktop swing com aplicação standalone. Essas coisas não têm nada a ver.[/quote]

Qual a diferença entre aplicação desktop swing e aplicação standalone?

Outra dúvida que tenho é sobre a interface swing…como coloca-la na web?

Abraços

sergio…

admito q minha experiencia com swing eh reduzida, e talvez eu não entenda como vc falou q devemos para torna-lo simples…

mas uma coisa eu acho certa, programando para web ou swing(local ounão, como vc disse), eu não quero fazer tela, não sou designer e não tenho conhecimentos de IOC suficientes para determinar padrões…sou programador…
ja participei de grandes projetos web onde a interação com o usuário era dinâmica e eficiente, conceitos como tableless e ajax, e a união dos dois, fornecem uma ferramenta poderosa, permitindo paginas incriveis, e com tudo isso q vc falou de forma simples…

como eu disse antes, poderiamos ficar horas discutindo sobre isso…e acho q nunca iriamos concordar 100%, hehehehehe…o lance eh cada um fazer o seu…

flw

[quote=“gbazilio”][quote]sergioborda escreveu:
Não confundam distribuição via web com interface html…[/quote]

Oq vem a ser distribuição via web? e aplicação distribuída? Oq vc quis dizer com interface html?
[/quote]

Aplicação distribuída é aquela em que , grosso modo, o código roda em mais do que uma máquina. Uma aplicação feita em jsp ou afim , não é distribuída (normalmente não é. O ajax veio mudar isso).
Distribuição usei como sinônimo de deploy (tlv infelizmente - pq não tem nada a ver com aplicação distribuída). Distribuição é o ato de fornecer a aplicação ao seu usuário final.
Interface html referia-se a interface gráfica no browser escrita em html.
Então uma aplicação feita com jsp, por exemplo, cuja interface é html no browser, é distribuida via web (http). Mas uma aplicação feita com swing,cuja interface gráfica não é html, tb pode ser distribuida via web (tecnologia jws)

Aplicação standalone é aquela que não depende de um servidor central.
(o eclipse, ou o netbeans são aplicações standalone). Todas as aplicações jsp , por exemplo , dependem, e portanto não são standalone.
Aplicação desktop swing é uma aplicação que corre no desktop e cuja interface foi feita em swing.
Uma aplicação feita em swing e que corre no desktop ñ é necessáriamente uma aplicação standalone, pois é possivel fazê-la comunicar com um servidor de forma semelhante à que um browser usa. Aliás, esse é um dos usos possíveis da tecnologia EJB. Com isto, toda a logica está no servidor e a aplicação no desktop é apenas uma interface. A vantagem é que é um interface muito rica e que pode comunicar com a máquina local (aceder o regestry, usar dlls, sokets, periféricos, etc…)

É só usar a tecnologia JWS (Java Web Start) - a aplicação é instalada e começa (start) através de um browser ,mas corre desacoplada dele.
Isso é uma forma de distribuir uma aplicação swing via web. ( A única coisa que o usuário necessita é um browser. Ajuda se tiver um JVM , mas se não , pode ser instalada junto)
Básicamente, desenvolve-se a aplicação swing normalmente, com uma classe que tenha o metodo main e depois cria-se uma arquivo xml que contém certas propriedades que o JWS usará para baixar a aplicação de um servidor e executá-la.

Nem tanto. A DisplayTag está aí para isso :wink:
Também gosto de Swing, aliás comoçei em Java como muitas pessoas: programando em Swing. Hoje há muito mais ferramentas para se trabalhar com Swing do que há um tempo atrás. O JGoodies é um bom exemplo de framework que facilita bastante a construção de interfaces.

Eu já acho o contrário, programadores iniciantes devem ter menos contato possível com RAD. Como você disse, o NetBeans gera uam série de códigos sozinho, sem que o programador inicante saiba o que está acontecendo de verdade.

Programadores iniciantes em Swing devem de preferência, utilizar o bloco de notas para começar a se familiarizar com todos os componentes, listeners, etc…

Não entendi. Porque uma aplicação construiída em JSP não pode ser uma aplicação distribuída ? e se tiver EJBs na camada de negócio ?

E o que o Ajax tem a ver com isso ?

O Ajax é apenas uma tecnologia (não muito nova) que visa aumentar a interatividade usuário-aplicação.