10 motivos para não usar JSF (opinião pessoal)

esse é o principal motivo pra eu usar :smiley:

Mentawai não é tão velho assim e não acho que estou acomodado. Você já implementou alguma coisa em GWT?

Cada um tem sua opinião. Acho que facilidade e rapidez na implementação é imporante e o JSF não ajuda muito nesse caso.

O Mentawai surgiu depois do JSF, Struts e WebWork.

Essa discussão não vai levar a nada. Tem muita gente que usa o Mentawai (porque é simples, eficiente e oferece um monte de soluções práticas para as maiorias dos problemas), muita gente usa o JSF porque é padrão, component-based, etc.

Muita gente também não gosta de JSF pelos motivos que o autor do tópico descreveu no primeiro post. E algumas pessoas não gostam do Mentawai porque… bom… porque não usa XML… :?

Há espaço para os dois!

[quote=saoj][quote]
Você escolheu o melhor pra você, as vzes as pessoas possuem um certo problema de deixar os laços do passado ou do comodismo pra aprender uma nova tecnologia.
[/quote]

O Mentawai surgiu depois do JSF, Struts e WebWork.

Essa discussão não vai levar a nada. Tem muita gente que usa o Mentawai (porque é simples, eficiente e oferece um monte de soluções práticas para as maiorias dos problemas), muita gente usa o JSF porque é padrão, component-based, etc.

Muita gente também não gosta de JSF pelos motivos que o autor do tópico descreveu no primeiro post. E algumas pessoas não gostam do Mentawai porque… bom… porque não usa XML… :?

Há espaço para os dois!

[/quote]

Pois então, ai que está a diferença, quem sabe mexer com JSF sabe configurar QUALQUER COISA DO JSF sem XML!

Você não precisa definir componentes, renderkits, navigation rules, managed beans no xml, então para de falar que precisa configurar muito XML com JSF porque não é verdade, quem sabe faz.

Desculpa te decepcionar mais uma vez.

[quote=casmeiron][quote=saoj][quote]
Você escolheu o melhor pra você, as vzes as pessoas possuem um certo problema de deixar os laços do passado ou do comodismo pra aprender uma nova tecnologia.
[/quote]

O Mentawai surgiu depois do JSF, Struts e WebWork.

Essa discussão não vai levar a nada. Tem muita gente que usa o Mentawai (porque é simples, eficiente e oferece um monte de soluções práticas para as maiorias dos problemas), muita gente usa o JSF porque é padrão, component-based, etc.

Muita gente também não gosta de JSF pelos motivos que o autor do tópico descreveu no primeiro post. E algumas pessoas não gostam do Mentawai porque… bom… porque não usa XML… :?

Há espaço para os dois!

[/quote]

Pois então, ai que está a diferença, quem sabe mexer com JSF sabe configurar QUALQUER COISA DO JSF sem XML!

Você não precisa definir componentes, renderkits, navigation rules, managed beans no xml, então para de falar que precisa configurar muito XML com JSF porque não é verdade, quem sabe faz.

Desculpa te decepcionar mais uma vez.[/quote]Tem??? Como???

Tádá!

Dê uma olhada na classe RuntimeConfig do faces :slight_smile:

Pessoal, estou voltando à discussao (eu postei la na pg 1 hehehe).

Bom, eu questiono essa visão de componentes JSF unicamente como sendo “reaproveitar componentes”. Um Date Picker ou um Menu Tree não são o espírito do JSF ao meu ver. Esses “componentes” existiam muito antes do JSF, e basta colocar um JS lá.

Questionaram que com JSF vc nao escreve nada de JS por isso seria melhor. Bom a maioria desses componentizinhos em JS já provê alguma espécie de facilidade como uma taglib para incluir automaticamente (nao que escrever uma linha de JS mate alguém mas realmente tem gente que não gosta).

Falar que JSF tem Date Picker, Menu Tree ou trequinhos em Ajax já prontos não o diferencia das outras tecnologias. Aliás a produtividade em relação ao reaproveitamente dessas coisas é igual em JSF ou no meu JSP+Taglib.

A grande diferença do JSF é voce parar de pensar no HTML (perde-se o controle dele), parar de pensar em Request/Response e sua página ser, além de componentizinhos visuais em JS, uma verdadeira árvore de componentes em Java (como o Swing). Temos então algo que mantém o estado da aplicação e essa árevore de componentes na nossa aplicação.

São esses últimos argumentos que fazem a diferença do JSF. E são eles que eu acho que para certas pessoas podem ser contra-intuitivos (como o saoj falou, “Web nao eh Swing!”, em web EXISTE request/response por mais que tentem esconder, em Web NAO existe estado por mais que se faça “gambiarra” em cima… agora Date Picker tem em todo lugar e nao precisa de JSF pra isso).

A vantagem de voce abrir mao do seu HTML é que é possivel fazer certas coisas que no modelo JSP+Taglibs dariam trabalho, como validacoes no cliente e no servidor. Alguns componentes JSF sao espertos o suficiente para fazer a validacao em JS e no servidor com base na mesma configuracao. Com JSP isso nao funciona; voce precisa colocar o JS (ou uma taglib que faca isso pra facilitar) E depois fazer isso na sua “Action” (seja Struts, Mentawai, Vraptor ou o que for).

Enfim…

Eu tambem, mas vamos la. hehehe

[quote=sergiousp]A grande diferença do JSF é voce parar de pensar no HTML (perde-se o controle dele), parar de pensar em Request/Response e sua página ser, além de componentizinhos visuais em JS, uma verdadeira árvore de componentes em Java (como o Swing). Temos então algo que mantém o estado da aplicação e essa árevore de componentes na nossa aplicação.

São esses últimos argumentos que fazem a diferença do JSF. E são eles que eu acho que para certas pessoas podem ser contra-intuitivos (como o saoj falou, “Web nao eh Swing!”, em web EXISTE request/response por mais que tentem esconder, em Web NAO existe estado por mais que se faça “gambiarra” em cima… agora Date Picker tem em todo lugar e nao precisa de JSF pra isso).

A vantagem de voce abrir mao do seu HTML é que é possivel fazer certas coisas que no modelo JSP+Taglibs dariam trabalho, como validacoes no cliente e no servidor. Alguns componentes JSF sao espertos o suficiente para fazer a validacao em JS e no servidor com base na mesma configuracao. Com JSP isso nao funciona; voce precisa colocar o JS (ou uma taglib que faca isso pra facilitar) E depois fazer isso na sua “Action” (seja Struts, Mentawai, Vraptor ou o que for).

Enfim…[/quote]

Concordo com tudo que tu falou Sergio. Mas acrescentando alguns pontos. Nao da para comparar JSF com Struts, WebWork, Menta como o Mauricio ja comentou aqui. Ele foi concebido pra simular ambiente desktop na web. Componentes statefull, eventos e etc. Reclamar de Web nao é Desktop nao deve ser feito para o pessoal que inventou o JSF e sim a nós desenvolvedores que de uns anos pra cá queremos colocar tudo na web (entenda-se html + js + alguma coisa). A meu ver isso não ta correto. O que jsf e outros frameworks component based estao tentando fazer é facilitar pra quem trabalha assim.

Um sistema erp na web? Na boa fazer com Struts, WebWork, Menta funciona mas esta longe de ser simples. Com JSF o negocio fica muito melhor.

Agora nao sei o que é pior, se é o pessoal fazendo gambiarra com outros frameworks para conseguir essas funcionalidades ou se é o pessoal usando JSF pra fazer sitezinho simples. hehehe

]['s

É essa “longe de ser simples” que eu questiono… Pra mim seria mais simples, porque é mais contraintuitivo pra mim o JSF do que o Actions tratando Requests. Justamente porque me parece gambiarra colocar Statefull, Listener e etc na Web… sei lá…

Acho que a questão toda é essa: enxergar que sao tecnologias diferentes e com focos diferentes. Mas que, na minha opiniao, podem ter a mesma produtividade. Eu acho errado dizer que JSF é mais produtivo. Acho que apenas uma abordagem diferente (que eu particularmente acabo usando pouco).

PS. Algumas pessoas falaram antes aqui da “facilidade” do JSF em ter ferramenta drag&drop e tal. Sei que não é disso que voce fala, Fabio, mas só pra deixar claro pro pessoal que nao estamos discutindo um recurso de IDE mas a tecnologia em si…

[quote=fabgp2001] Agora nao sei o que é pior, se é o pessoal fazendo gambiarra com outros frameworks para conseguir essas funcionalidades ou se é o pessoal usando JSF pra fazer sitezinho simples. hehehe
[/quote]

Concordo. Embora com nomes talvez improprios, eu costumo diferenciar “Site Web” de “Aplicação Web”. Site web é aquele cheio de firula, de corzinha, com designer e o escambau que é feito pro povão acessar (usar JSF nisso é suicídio). E Aplicação Web é aquele ERP que voce falou, o treco bem Form Based, cheio de inputs de dados, data grids e etc (aqui que o JSF entra justamente porque nao te interessa o HTML, mas a funcionalidade).

Aprendi em 1 semana os conceitos básicos. Não achei nada extraordinariamente difícil ou complicado de se fazer…

Como assim? Não achei nada de complicado em se criar qualquer componente jsf, ainda mais se estiver usando um binding para os mesmos.

Nada é intuitivo? Amigo, vc ta falando do JSF mesmo?

Tomando-se em conta que um “newbie” vai aprender jse primeiro, depois vai ver as bases dos servlets e jsp, com certeza vai ser difícil um cara com um mês de familiaridade com o Java aprender a usar jsf ou qualquer outro framwwork… Já aos veteranos, me desculpe, mas só se a pessoa for muito devagar…

Tudo que precisei até hoje encontrei sem problemas.

?

Já ouviu falar do JSF 1.2?

Onde?

Você acha desvantagem usar eventos para tratar componentes web? Eu não acho nem um pouco.

Como assim?

Bem, acho que vai ser difícil de desaparecer. Primeiro pq é o padrão usado pela sun (dá uma olhada no sun java creator ou no visual web pack do netbeans)
Struts 2 != Struts 1.x.x
Antes de falar que algo é uma droga, vc deveria implementar algo melhor. Não estou falando bem ou mal do mentaway pois nunca o usei, mas você não pode criticar as coisas assim. Se é uma droga explica pq vc num gosta e usa um termo mais educado para falar que não gostou.
Pq um framework que se preza TEM que usar xml? Então todo desenvolvedor web que se preza tem que usar Struts? Cada um é de um jeito meu caro… Ainda bem que tem gente que faz coisas diferentes…

Muito equivocada e mal educada a sua crítica…

Só lamento…

Vejam esse código aqui para parsear um array de bytes para hex, que eu encontrei na Internet:

		private final char[] hex = "0123456789ABCDEF".toCharArray();
		public void hexdump(byte[] buf,int len) {
			byte b;
			for(int i=0;;i+=16) {
				for(int j=0;j&lt16;++j) {
					if (i+j&gt=len) System.out.print("   ");
					else {
						b = buf[i+j];
						System.out.print(" "+ hex[b&gt&gt&gt4] + hex[b&0xf] );
					}
				}
				System.out.print("  ");
				for(int j=0;j&lt16;++j) {
					if (i+j&gt=len) break;
					System.out.print((char)(buf[i+j]));
				}
				System.out.println();
				if (i+16&gt=len) break;
			}
		}

Depois de me deparar com esse atente a simplicidade, resolvi perder um tempinho para fazer meu próprio método:


       private final char[] hex = "0123456789ABCDEF".toCharArray();
       
	public String toHex(byte[] array) {

               StringBuilder hexSB = new StringBuilder(64);
		
		for(int i=0;i<array.length;i++) {
			
			int b1 = array[i] & 0xF;
			
			int b2 = array[i] >&gt&gt 4;
    	
    		hexSB.append(hex[b2]).append(hex[b1]);
			
		}
		
		return hexSB.toString();
		
	} 

Então fica a pergunta: O que leva uma pessoa a dar a volta ao mundo para complicar o simples, etc?

Não sei. De acordo com o livro Better, Faster, Lighter Java, algumas pessoas acreditam que: "Se eu escrevo código complicado, eu devo ser um bom programador!"

Eu acho que na maioria dos casos, na maioria dos projetos web que não necessitam de uma interface super complicada, JSF dá a volta ao mundo para resolver o simples.

E para esses projetos que precisam de uma interface super complicada, melhor usar Swing dentro de um applet, e não JSF.

Um projeto com uma interface web complicada só tem vez dentro de uma intranet, ou seja, num ambiente controlado, então melhor usar um applet swing.

O resto vou ver se opino depois, mas lendo uma coisa dessas melhor que eu tenho a fazer é ir dormir. Applet…argh

]['s

O resto vou ver se opino depois, mas lendo uma coisa dessas melhor que eu tenho a fazer é ir dormir. Applet…argh

]['s[/quote]

É o que eu já disse, é melhor alguém ligar pro Google e dizer pra eles que não se faz interface complexa como o GMail pra web não, tem que fazer em um applet e usando Swing :lol:

Eu só acredito que alguém está falando isso porque eu estou presenciando :lol: :lol: :lol:

[quote=Maurício Linhares]
Eu só acredito que alguém está falando isso porque eu estou presenciando :lol: :lol: :lol: [/quote]

Eu acho que eu escrevi lá uma palavrinhas tipo INTRANET, AMBIENTE CONTROLADO, etc e tal.

Não faz o menor sentido usar applet se não for um ambiente controlado.

Eu acho que Google não tem nada haver com JSF, mas posso estar enganado…

Sorry, mas mesmo em ambientes controlados, usar applets só em último caso. E de preferência, que esse caso seja de morte.

[quote]
Concordo. Embora com nomes talvez improprios, eu costumo diferenciar “Site Web” de “Aplicação Web”. Site web é aquele cheio de firula, de corzinha, com designer e o escambau que é feito pro povão acessar (usar JSF nisso é suicídio). E Aplicação Web é aquele ERP que voce falou, o treco bem Form Based, cheio de inputs de dados, data grids e etc (aqui que o JSF entra justamente porque nao te interessa o HTML, mas a funcionalidade).[/quote]

bom … já que chegamos na discussão de “Site Web” e de “Aplicação Web” … qual a opinião de vocês.

A partir de um sistema em Swing, que agora deseja-se torná-lo web.
Qual seria o melhor caminho?
JSF ou framework´s baseados em ação?

[quote=saoj][quote=Maurício Linhares]
Eu só acredito que alguém está falando isso porque eu estou presenciando :lol: :lol: :lol: [/quote]

Eu acho que eu escrevi lá uma palavrinhas tipo INTRANET, AMBIENTE CONTROLADO, etc e tal.

Não faz o menor sentido usar applet se não for um ambiente controlado.

Eu acho que Google não tem nada haver com JSF, mas posso estar enganado…

[/quote]

Estamos em 2007 amigos, applet?! Deixe isso pros teclados virtuais dos bancos.
Bom, eu acho que você está com um conceito muito corrompido de web, a idéia é fazer aplicações web para rodar em qualquer tipo de cliente, móvel, desktop etc… Esse é o futuro, agora usar applet?! Certeza que você tá tirando uma com a nossa cara…

Outra coisa, concordando com o que o outro usuário falou, pra quem ja mexe com java web a algum tempo, achou o JSF a coisa mais simples do mundo, aonde tá a dificuldade?!?!?!?!?!
Quer validar? Usa os validators dele.
Quer chamar um método do seu managed bean?! Coloca action ou actionlistener.
Mapear o fluxo da sua página?! Navigation-Rules.
Quer modificar alguma coisa que não está do jeito que você quer?!?! Listener
AJAX?? Listener!!!
Cuspir WML?!?! RenderKit!!!

Mas axo que pra você vai servir bem o applet :stuck_out_tongue:
Mentawai nele!

*** Utilizando JSF sem precisar do faces-config ***

// implemente um listener pro servletContext
// implemente o método contextInitialized

public void contextInitialized(ServletContextEvent evt) {
    RuntimeConfig runtime = RuntimeConfig.getCurrentInstance(new ServletExternalContextImpl(this.getContext().getServletContext(), null,  null));
     // managed beans
    bean = new ManagedBean();
    bean.setName(name);
    bean.setScope(scope);
    runtime.addManagedBean(beanName, bean);
    // navigation-rules
    runtime.addNavigationRule(navigationRule);
    // component
    facesContext.getApplication().addComponent();
    // converter
    facesContext.getApplication().addConverter();
    // validator
    facesContext.getApplication().addValidator();
    // supported locations
    facesContext.getApplication().setSupportedLocations(Collection);
}

Em ambiente controlado/intranet, não há o menor problema em usar applets/java web start, principalmente se vc precisa trabalhar com Swing. Nunca falei em usar applet/jws para web em geral. Falei em usar para INTRANET onde o ambiente é controlado. Isso se vc quiser uma interface complexa, o que eu acho que só em último caso. As pessoas gostam de WEB mesmo, e não de listas, trees, e essas coisas… (Ok, applet não tem mais vez, principalmente porque tem-se java web start agora. Perdoem minha ignorância nesse sentido…)

Acho que o teu problema é outro casmeiron. Posso entender. O Mentawai é reconhecido por um monte de empresas e usado por um monte de gente inclusive pessoas da própria Sun (leia o esse link novamente). Acho que tu deve ter ficado meio mordido com isso, mas tudo bem… Continua trabalhando no Pimpas que sua vez vai chegar também… Só seja menos debochado e mais sério…

Pra fazer um site com uma interface tipo google, não precisa de JSF, precisa de Ajax. Não deixe de dar uma olhada aqui: http://code.google.com/webtoolkit/

Casmeiron, anota meu messenger aí: oliveira_sergio at hotmail.com. Vamos continuar esse papo em private para não incomodar o GUJ, ok?