Usar IDE's para Programar Interface Grafica ou na Unha?

38 respostas
S

Bom Pessoal primeiramente gostaria de me apresentar me chamo Durval Slompo Junior, começarei a fazer o segundo ano agora em 2010 do curso de Tecnologia em Analise e Desenvolvimento de Sistemas, recentemente nas ferias estava lendo o Core Java 2 Fundamentos I e me bateu uma duvida quando cheguei na parte de programação gráfica a qual é:
Interface de Programação com o NetBeans ou o Eclipse não acabam colocando códigos desnecessários que podem de uma forma ou de outra acabar afetando o Software desenvolvido? Se isso for verdade a saida seria desenvolver as interface graficas na base do código mesmo para obter uma melhor qualidade de produção de Software?

Bom pessoal peço desculpas se acabei fazendo uma pergunta sem sentido ou não, pois estou iniciando e gostaria da opnião de vocês que já estão incluidos nesta área a mais tempo que eu, desde já agradeço pela atenção de todos, muito obrigado =D

38 Respostas

D

Cara eu tenho trauma de usar ferramenta RAD ( arrastar e soltar ) para desenvolver interface gráfica em Java. Usei a do netbeans para JSF e era extremamento lento.

No Eclipse nunca testei , mas caso você ( programador ) tenha que fazer a interface, eu prefiro fazer na mão. Por incrivel que pareça as vezes é mais rápido e te faz passar por menos transtornos.

Espero ter ajudado.

Abraço.

C

Realmente JSF nunca teve suporte descente a RAD, mas o NetBeans arrasa quanto a programação de interfaces desktop.
Mas se vc está aprendendo, o importante é fazer na mão. Quando vc estiver em um ambiente de produção use ferramentas, se achar alguma que atenda as suas necessidades.

U

Cara se for para fazer aplicações grandes faça na IDE!!
mais se for o caso de aplicações basicas na unha assim vc apreende o q ta fazendo!!
vlw
abs

R

Bom, nessas horas eu sinto falta o Delphi, facilidade extrema de criar interfaces. Seria bom se o java fosse assim.

Mas no braço é cruel, extremamente trabalhoso, não se torna muito produtivo o trabalho.

Acho que vale a pena usar a IDE sim, agora qual, é com vc, tem que se adaptar a alguma.

U

romarcio:
Bom, nessas horas eu sinto falta o Delphi, facilidade extrema de criar interfaces. Seria bom se o java fosse assim.

Mas no braço é cruel, extremamente trabalhoso, não se torna muito produtivo o trabalho.

Acho que vale a pena usar a IDE sim, agora qual, é com vc, tem que se adaptar a alguma.


Concordo!!
Delphi nem se fala!!Otimo!!
rsrs
vlw
abs

S

Cara realmente se vc estiver estudando vale muito mais a pena fazer na unha, pois não adianta nada utilizar ferramenta RAD e não saber o que a ferramenta está fazendo por de baixo dos panos. Se vc estiver em um ambiente de produção daí sim dá pra usar uma ferramenta RAD. E outra situação na hora de fazer uma entrevista, muitas empresas fazem vc desenvolver no papel pra ver se vc realmente sabe.

P

Desenvolver com IDEs como NetBeans e realmente produtivo.

Em relação ao códigos que a IDE gera ao colocar os componentes na interface não afeta na qualidade, pois você só esta colocando os componentes da interface, sendo que a parte da logica do programa é você mesmo que desenvolve.

Vejo vários programadores que dizem que o código que o Netbeans gera é porco ou poluido e querem alterar o código que ele gera para interface. Bem eu não vejo motivo algum querer alterar esse código.

As ferramentas como Visual Studio também geram código quando desenho a interface. O Delphi quando colocamos os compoenntes na interface tb gera só que não é visivel para o programar em linha de código.

As IDEs relamente são bastante produtivas para ganhar tempo no desenvolvimento

Bem esta é a minha opinião.

D

Ola,

Olha depende da sua necessidade, se voce esta aprendendo, ou seja iniciando agora, o melhor mesmo eh sempre fazer na mao, e de preferencia no bloco de notas sem usar IDE’s nem nada.

Agora caso voce precise fazer algo que precisa terminar logo, por prazo ou algo do genero, compensa obviamente usar a IDE para facilitar o trabalho.
E com certeza o codigo gerado pela IDE nao vai comprometer em nada a aplicacao, pois o codigo foi desenvolvido justamente por quem entende muito do assunto, no caso do NetBeans, a Sun :slight_smile:

Um Abraco.

L

Vou ser mais radical. A menos que o professor diga: “Eu quero uma interface gráfica”, faça aplicações para serem usadas num terminal de texto. Aplicações gráficas com bom design requerem MVC, só que pra saber isso, você precisa saber o que são padrões e orientação a objetos antes. Então talvez, se você não tiver muito conhecimento dessas coisas, suas aplicações saiam ruins, mesmo com bastante esforço.

E é interessante não usar IDE mesmo, principalmente os tipo “arrasta-e-solta”, porque geram códigos que é difícil de entender. Sugiro não usar Notepad, como muita gente no GUJ costuma falar (o problema é que javeiro tem forte cultura Windows). Ao invés disso, opte por Emacs ou Vim (lê-se: vi-ai), que, apesar de não serem fáceis, são editores feitos para programar, e também não fica escondendo nada de quem está usando. Se possível mesmo, use Linux ao invés de Windows.

Até.

T

Sinceramente a resposta é um grande depende.

Pra aprender recomendo veementemente fazer a interface na unha, pra entender bem o funcionamento dos componentes e gerenciadores de layout (coisa que muita gente desconhece…).

Depois para desenvolvimento desktop nao vejo mal algum em usar o RAD do NetBeans, que é extremamente produtivo e nunca tive problemas com desempenho, somente por conta de código porco de desenvolvedores.

Agora se você vai desenvolver pra web e não é flex desencana, o famoso visual web pack pra jsf, por exemplo, é um horror e deveria ser proibido hehehe.
Montar na mão da trabalho? Dá sim, mas pelo menos sai bem mais limpo, o que também dependo MUITO do desenvolvedor, lógico, mas ao menos você tem a chance de fazer direitinho ^^.

A

Eu confesso que hoje fiz uns testes com C++ com MFC no VS 2010 beta 2, nunca tinha testado, achei muito legal fazer drag&drop dos componentes. \o/

Z

ovelha:
Eu confesso que hoje fiz uns testes com C++ com MFC no VS 2010 beta 2, nunca tinha testado, achei muito legal fazer drag&drop dos componentes. \o/

A unica coisa que eu gosto no VS é o Drag 'n drop, foi o melhor q eu já vi até hoje

Quanto a fazer interfaces gráficas eu prefiro na unha, não consigo me entender com o sistema do netbeans de gerenciamento de layout, dá muito trabalho e eu não tenho paciencia, então prefiro na mão, mas isso é pq eu nunca parei pra fazer testes e descobrir qual gerenciador de layout é melhor

Também já utilizei do eclipse, achei legal de usar, mas eu ainda prefiro fazer na “raça”

T

Nao acredito que haja O gerenciador de layout melhor, mas sim uma combinação adequada deles.
Alias, fazer interface grafica na mao leva muito tempo e exige uma paciencia extrema, dai o RAD do NetBeans ganha mto espaço.

Abraços.

L

Concordo com o pessoal.

Se você quer aprender a usar a Biblioteca GUI do Java, faz tudo na mão. É legal voce ter dominio dos Layout Managers e dos Manipuladores de Eventos.

Não veja tanta dificuldade em desenvolver telas com Swing/AWT, como dizem por aí dessa API.

Quanto ao desenvolvimento Delphi, poderia usar um framework semelhante para o Java: OpenSwing.

S

A resposta não depende de nada. Faça na unha. RAD é um mito. Sobretudo em java.

T

Sou a favor de fazer na unha só pra aprender.
Caso contrário é muito improdutivo, toma um tempo absurdo e o resultado nem fica muito bom.

O inteliJ Idea tem RAD tbm? Alguém aqui já usou? Ele é bom?
Dizem que é a melho IDE, mas nunca tive a oportunidade de trabalhar com ela.

Abraços.

M

Eu sou contra esses geradores de telas D’nD, faço tudo na mão mesmo, voce tem um controle bem maior da aplicação e voce consegue usar OO até em janelas de um modo muito mais produtivo.

E depois que voce domina os LayoutManagers o tempo gasto é insignificante.

F

Uso o netbeans como ferramente para desenvolvimento.

Porém existe um problema que eu vejo em usar ele. A falta de extensibilidade, as vezes a unica coisa que faço numa tela é arrastar os componentes, depois todo o resto é feito via codigo, claro, nao é geral isso, são alguns casos. Algums detalhes.

A grande vantagem de usar uma ferramenta assim é que eu vejo como a tela vai ficar desenhada sem precisar executar o aplicativo.

Mas se vc desenvolver na mão com o MigLayout por exemplo, é muito suave e simples :slight_smile:

E

UMC:
romarcio:
Bom, nessas horas eu sinto falta o Delphi, facilidade extrema de criar interfaces. Seria bom se o java fosse assim.

Mas no braço é cruel, extremamente trabalhoso, não se torna muito produtivo o trabalho.

Acho que vale a pena usar a IDE sim, agora qual, é com vc, tem que se adaptar a alguma.


Concordo!!
Delphi nem se fala!!Otimo!!
rsrs
vlw
abs

O Delphi pode até ser muito fácil de criar interfaces gráficas, mas isso tira boa parte do controle sobre a aplicação.
A maior vantagem de se programar na unha usando gerenciador de layout é que vc pode ter total controle sobre o que vc está fazendo e sobre os eventos da tela. Sem falar que tem certas propriedades de componentes gráfcos que é um parto pra conseguir configurar usando a ferramenta gráfica.

Com relação à produtividade, o Delphi é super produtivo quando vc arrasta componentes do banco de dados para a tela, e os campos ficam ligados com o banco. É tudo lindo. Com poucos minutos dá pra fazer uma tela inteira de cadastro com conexão com o banco de dados.
Mas na hora de dar manutenção é uma tristeza… lembre-se: o que é produtivo na criação é pouco produtivo na manutenção.

T

Preciso experimentar esse MigLayout, alguma sugestão adicional?
É que realmente, já perdi muito tempo programando na unha esse tipo de coisa e nunca obtive um resultado muito bom (sou um tanto perfeccionista), embora eu me esforçasse a aprender bem os gerenciadores de layout.

Foi muito bom pro meu aprendizado, noto que a maioria das pessoas com quem trabalho não sabem o que é um gerenciador de layout :shock: :? :!:

M

Se você quer aprender, faça na unha. Se não quer, faça na unha também e aprenda de qualquer forma! :slight_smile:

H

Não afeta em nada o software, desde que saiba trabalhar corretamente no padrão MVC.

M

Não afeta em nada o software, desde que saiba trabalhar corretamente no padrão MVC.
Eis um problema… o D’nD afasta isso muito do programador e na maioria das vezes não fica bom. Principalmente, como já dito, na hora da manutenção.

H

marcobiscaro2112:

Eis um problema… o D’nD afasta isso muito do programador e na maioria das vezes não fica bom. Principalmente, como já dito, na hora da manutenção.

Para mim isso é frase pronta.

Faço manutenção em um sistema corporativo, feito em Swing e usando DragNDrop nas telas com componentes Customizados, e não vejo problema nessa manutenção. Pelo Contrário, o código fica super limpo e a produtividade é boa.

T

Hellmanss:
marcobiscaro2112:

Eis um problema… o D’nD afasta isso muito do programador e na maioria das vezes não fica bom. Principalmente, como já dito, na hora da manutenção.

Para mim isso é frase pronta.

Faço manutenção em um sistema corporativo, feito em Swing e usando DragNDrop nas telas com componentes Customizados, e não vejo problema nessa manutenção. Pelo Contrário, o código fica super limpo e a produtividade é boa.

To na mesma situação, exceto pelo fato de que o framework privado que pe meio esquisito, o acesso a banco fica todo misturado, tem query sendo montada na gui, pra mim ficou um nojo.
Agora tirando o framework caseiro (apelidei de infame work hehehe, curtiram? ) a manutenção nem é problema, exceto quando a tela tem coisas demais(atualmente to mexendo numa que sozinha, sem os codigos do netbeans tem 7.5 mil linhas =( ), mas ai o mesmo se aplicaria a fazer na unha, quem sabe até pior.

Abraços.

M

Tchello:
Hellmanss:
marcobiscaro2112:

Eis um problema… o D’nD afasta isso muito do programador e na maioria das vezes não fica bom. Principalmente, como já dito, na hora da manutenção.

Para mim isso é frase pronta.

Faço manutenção em um sistema corporativo, feito em Swing e usando DragNDrop nas telas com componentes Customizados, e não vejo problema nessa manutenção. Pelo Contrário, o código fica super limpo e a produtividade é boa.

To na mesma situação, exceto pelo fato de que o framework privado que pe meio esquisito, o acesso a banco fica todo misturado, tem query sendo montada na gui, pra mim ficou um nojo.
Agora tirando o framework caseiro (apelidei de infame work hehehe, curtiram? ) a manutenção nem é problema, exceto quando a tela tem coisas demais(atualmente to mexendo numa que sozinha, sem os codigos do netbeans tem 7.5 mil linhas =( ), mas ai o mesmo se aplicaria a fazer na unha, quem sabe até pior.

Abraços.


:smiley: “infame work” é ótimo!

Mas é isso… há casos que a manutenção será menos complexa que em outros. Mas você realmente acha o código gerado pelo GUI Builder no Netbeans limpo? Sinceramente, não concordo (opinião própria).

H

O código em si não nenhum pouco limpo, mas eu nunca precisei alterar nada naquele bendito código(e por sinal nem é possivel), então para que gerar um código bonitinho?

Cara, gera os Getters dos componentes que vc irá utilizar, cria um contrutor para passar a referencia do controlador da tela e vc nunca precisará olhar para o código gerado pelo DnD. Simples assim.

T

marcobiscaro2112:
Tchello:
Hellmanss:
marcobiscaro2112:

Eis um problema… o D’nD afasta isso muito do programador e na maioria das vezes não fica bom. Principalmente, como já dito, na hora da manutenção.

Para mim isso é frase pronta.

Faço manutenção em um sistema corporativo, feito em Swing e usando DragNDrop nas telas com componentes Customizados, e não vejo problema nessa manutenção. Pelo Contrário, o código fica super limpo e a produtividade é boa.

To na mesma situação, exceto pelo fato de que o framework privado que pe meio esquisito, o acesso a banco fica todo misturado, tem query sendo montada na gui, pra mim ficou um nojo.
Agora tirando o framework caseiro (apelidei de infame work hehehe, curtiram? ) a manutenção nem é problema, exceto quando a tela tem coisas demais(atualmente to mexendo numa que sozinha, sem os codigos do netbeans tem 7.5 mil linhas =( ), mas ai o mesmo se aplicaria a fazer na unha, quem sabe até pior.

Abraços.


:smiley: “infame work” é ótimo!

Mas é isso… há casos que a manutenção será menos complexa que em outros. Mas você realmente acha o código gerado pelo GUI Builder no Netbeans limpo? Sinceramente, não concordo (opinião própria).

Obrigado pelo elogio, estava inspirado quando inventei o “infame work” (será que pega?) hehehehe.

Quanto ao código gerado pelo netbeans, não acho limpo não, muito pelo contrário.
É que não me arrisco (ao menos não tive necessidade) de mexer no código que ele gera, mas ainda assim tenho flexibilidade de alterar a minha maneira. Mas nunca mexo no código gerado automaticamente (que é horroroso só de ver, não é a toa que ele esconde hahahaha).

T

O código em si não nenhum pouco limpo, mas eu nunca precisei alterar nada naquele bendito código(e por sinal nem é possivel), então para que gerar um código bonitinho?

Cara, gera os Getters dos componentes que vc irá utilizar, cria um contrutor para passar a referencia do controlador da tela e vc nunca precisará olhar para o código gerado pelo DnD. Simples assim.

Então, na verdade dá pra alterar algumas coisas sim, um colega aqui teve a necessidade de alterar e conseguimos, só não me recordo onde.
Mas há um suporte do próprio netbeans quando isso é necessário, onde você indica pra ele não mexer mais e deixar do jeito que você alterou aquele trecho.

S

Tchello:
Sou a favor de fazer na unha só pra aprender.
Caso contrário é muito improdutivo, toma um tempo absurdo e o resultado nem fica muito bom.

Pera ai, se vc vai fazer uma aplicação swing, por exemplo, espera-se que vc tenha uma estrutura para isso.
Vc prepara essa estrutura e cria a aplicação com ela. Essa estrutura é quem lhe vai dar produtividade, não o Swing em si.

É um erro generalizado usar o Swing diretamente. Ele não foi feito para isso. Comprando com JDBC , ninguem o usa puro.Sempre tem uma casca por cima para facilitar. Com Swing é o mesmo.

Não são as tecnologias ou as ferramentas que o tornam produtivo, é a sua capacidade de desenvolvedor.

RAD é rápido. Não é bom. Vc quer rápido ? use rad. Vc quer bom ? faça na unha. Mas atenção, fazer na unha não significa fazer do zero. significa montar as coisas via codigo bem desenhado.

F

Também tinha essa dúvida,
Pense nisso:

arrastar e soltar não é um assasino das boas práticas OO ?
-Reusubilidade de software*
-Principio dos objetos livremente unidos
-Encapsulamento
-Delegacão de obrigacões

dificil alcancar tudo isso com o “clicar e arrastar”

e ainda se voce quiser fazer uma coisa na interface que o clicar e arrastar nao faz?? quer criar um botao 3d que mostre uma animacao na tela quando o usuario aperta a tecla ENTER, vai ter muita dificuldade

Pra botar polemica(apenas minha opiniao, heheh):
Se quiser ser um bom desenvolvedor OO possivelmente um grande Diretor de projetos e tudo mais, faca tudo direito, aprenda a ser produtivo com OO, pois se desenvolver sua mente com esse tipo de pensamento voce fica 1000x mais produtivo do que com DnD(drag and drop)

Se quiser ser programador fajuto de Delphi (windows e afins) dependente de plataforma, IDE, programinhas, faca com DnD

L

O arrasta-e-solta é, aparentemente, mais fácil que escrever código porque as grandes empresas que fazem plataforma Desktop deram mais prioridade ao IDE do que à linguagem. Elas nunca investiram numa linguagem específica onde fosse fácil escrever telas à mão (exceção seja JavaFX).

Fosse Delphi ou VB linguagens intuitivas, ninguém compraria IDE.

H

Não terá dificuldade nenhuma, pois pode-se criar componentes customizados, e adicionar ao palet…

L

Sérgio, o que você quis dizer com isso?

S

Obrigado a todos pela opinião que deram e seu tempo aqui perdidos :slight_smile:
Ainda estou meio indeciso se uso uma ferramenta RAD ou se parto para montar minhas próprias classes preparadas de acordo com a necessidade.

Sérgio, o que você quis dizer com isso?

Quanto a pergunta acima, acredito que ele esteja querendo dizer para que você utilize o swing para deixa digamos pré prontas as suas classes de JFrames, JButton e etc… As quais estariam preparadas de acordo com a sua necessidade, algumas vezes isto acaba se tornando mais rapido que usar o RAD ao meu ver, mas ainda assim nem sempre é o melhor caminho

Bem novamente lhes agradeço :wink:

S

Sérgio, o que você quis dizer com isso?

Quiz dizer que vc não vai usar editores de UI, vc vai usar editores de texto para escrever o codigo que produz a UI.
Vc escreve um conjunto de classes e monta um design para que seja fácil definir a ui , essas classes por detrás dos panos usam os objetos swing.

R

Eu comecei usando VB e drap n drop… pra mim aquilo era a coisa mais legal do mundo!
Quando vi que java nao era assim falei mal,muito mal de java uhahuahu

mas hj me dou ate bem com eclipse :smiley:

M

Só pra complementar…

Por exemplo a maioria dos sistemas tem rotinas muito comuns, voce pode criar um componente que faça essa rotina e usar OO para mudar sua ação de acordo com a tela que quer.

No meu sistema eu tenho varios exemplos disso, em relatorios também tenho apenas uma tela para relatorio e passo uma instancia de Report e dependendo do Report passado eu gero o relatorio.

Se não foi isso que voce quis dizer me desculpe.

Criado 7 de janeiro de 2010
Ultima resposta 11 de jan. de 2010
Respostas 38
Participantes 21