Tecnologias de hoje em dia

Olá, pessoal…

Eu fiquei alguns anos sem programar. Fui obrigado por conta dos concursos públicos que prestei durante os últimos anos. Quero voltar, por isso comecei de onde parei…

Queria saber o que está sendo usado hj, em questões de tecnologia, no desenvolvimento de aplicações J2EE. EJB é usado ainda? Usa-se bastante JSF? Struts? Hibernate? Maven? HTML5? Ajax?

Agradeço desde já…

Olá!

Primeiramente, bem vindo novamente ao fórum.

Do tempo que você parou pra cá certamente o maior crescimento do mercado se deu na plataforma Web. Estudar as tecnologias client web básicas (html, css, javascript) e algum framework client que te proporcione produtividade (tais como Jquery, Bootstrap, AngularJs) certamente te ajudarão a ter uma nova colocação na área.

Conhecer alguma tecnologia server-side também é importante. Eu não trabalho com desenvolvimento Java, porém, baseando-me nas questões apresentadas neste fórum, vejo muita gente usando Hibernate, JPA, CDI, Primefaces e etc…

Mobile também cresceu muito nos últimos anos. Saber programar para Android também poderá te ajudar a entrar no mercado Java novamente. Para desenvolver para Windows Phone é necessário conhecer C# e para IOS pode usar Objective C ou Swift.

Caso não queria se prender apenas a plataforma Java, você também pode ver um pouco sobre Ruby on Rails, ASP.Net MVC e o velho PHP (CakePHP, Zend Framework, WordPress, Joomla e afins). São todos voltados para web e são largamente usados hoje em dia.

[quote=ECO2004]Olá, pessoal…

Eu fiquei alguns anos sem programar. Fui obrigado por conta dos concursos públicos que prestei durante os últimos anos. Quero voltar, por isso comecei de onde parei…

Queria saber o que está sendo usado hj, em questões de tecnologia, no desenvolvimento de aplicações J2EE. EJB é usado ainda? Usa-se bastante JSF? Struts? Hibernate? Maven? HTML5? Ajax?

Agradeço desde já…[/quote]
Finalmente para novas aplicações diminuiu o uso de aberrações como EJB e JSF. Mas legado sempre vai ter.

Foque primeiro no que o colega falou acima em relação a parte client. Parte server dê uma lida sobre HTTP e Restful. Depois volte na questão da escolha do framework server, que no caso seu caso de Java pode ser por exemplo o Spring Framework (considerando parte web).

EJB não se usa mais, então?
JSF parece que sim, né?

[quote=ECO2004]EJB não se usa mais, então?
JSF parece que sim, né?[/quote]

Pelo contrario e bem usado… o EJB depois da versão 3.0 evoluiu bastante e continua sendo usado em grades projetos.Sobre o JSF… eu particularmente não gosto da especificação, mas tenha plena noção do seu valor e praticidade.O JSF continua sendo utilizado e continuara assim por um bom tempo.De uma olhada no showcase do Primafaces, muita coisa mudou no mundo dos componentes JSF ^^.

[quote=ECO2004]EJB não se usa mais, então?
JSF parece que sim, né?[/quote]
Quem tem coragem usa. Geralmente quem se limita mais a arquiteturas amarradas no mundo Java.

Eu precisaria de um direcionamento de frameworks…

Strutus?
Hibernate?
JSF?
SpringMVC?

Quais são os melhores?

Em relação a ORM Hibernate continua sendo muito usado em Java e .NET.

Em relação a web server, sugiro Spring MVC/Restful como já tinha mencionado.

Dê uma olhada em frameworks como o AngularJS:
https://angularjs.org/

São coisas como essa que tiraram a força do JSF

Viny, me passe mais dicas de frameworks…

JSF então está defasado? E o Maven? Struts? Para a view, o pessoal tá usando o bootstrap, né?

Para a view atualmente usa-se o que já foi falado aqui desde o início “(html, css, javascript) e algum framework client que te proporcione produtividade (tais como Jquery, Bootstrap, AngularJs)” e reforçado pelo ViniGodoy. Ou seja, ter liberdade no lado client com tecnologia do client e não Java. Esqueça Java no desenvolvimento do client. JSF é um exemplo que vai totalmente ao contrário disso, amarrando o desenvolvimento da view à componentes Java, só para trazer para web desenvolvedores viciados na cultura desktop. Spring MVC com Actions ou principalmente com Restful te dá total liberdade no lado client. Struts vai na mesma linha que o Spring MVC, mas parou no tempo e não é muito usado atualmente. Outras opções existem como JAX-RS, mas só atende a Restful, se esse vir a ser seu caso, é válido. Mais importante é não usar soluções baseadas em componente server como JSF/Primefaces.

Acho que a partir de agora é experimentar na prática as opções cogitadas e tirar suas próprias conclusões. Em resumo de itens para pesquisar, não que vá usar todos, mas experimentar e tirar próprias conclusões do que vai precisar usar:

Client:

HTML5
CSS3
JavaScript
JQuery
AngularJs
Bootstrap

Server:

HTTP
Restful

Spring MVC
Spring Boot
JAX-RS
(Na decisão usará um desses três)

Maven é um assunto a parte, mas faz parte das modas atuais sim.

Se você quiser uma atualizada rápida, pegue algum framework multicamadas, como o Grails, e dá uma estudada. Aí você pode olhar quais são os similares modernos de cada tecnologia que ele usa.

Só por curiosidade, qual é sua ideia??
Você estar voltando para procurar um emprego ou desenvolver algum projeto?
Essa pergunta pode influenciar um pouco sua linha de estudo.Eu sou um cara extremamente pratico no que se diz respeito a tecnologia… tem algumas que você aprende por curiosidade, mas tem a plena certeza que o mercado não vai aderir tão cedo.E tem as batidas, que geralmente vão ser as cobradas nas seleções da vida…JSF, EJB, CDI, JPA…JDBC, á sopa todas de letras do java.

Se a ideia for procurar emprego… da uma olhada como anda sua região… aqui na minha tem bastante coisa em JSF e EJB(Fortaleza-CE)…
me parece que isso e algo que varia de região.

Eu acredito que criticar JSF e EJB nesse contexto não é bom, sei que existem coisas MUITO boas como o angularJS, mas quando o assunto é mercado, ao menos do que eu acompanho na APInfo, Infojobs e Linkedin, essas duas especificações Java tem muito espaço, e arrisco dizer que até mais espaço que as outras citadas.

Como o objetivo do autor do tópico parece ser se recolocar no mercado, não acho que a crítica seja válida.

Sim, como tinha falado legado tem de montão, pois a comunidade Java demorou muito a acordar para a realidade da web. Se ele quer se recolocar nessas condições, a escolha vai ser dele, mas minha colocação é relativa ao que é usado hoje em dia para novos projetos web.

Algo como a velha novela Asp.Net Web Forms vs Asp.Net MVC?

VEJAM O SEGUINTE : Meu velho veja bem eu estou tentado realizar a multiplicação entre duas matrizes 9x9: matrizMK e a matrizK.inverse().
Contudo a palavra fica com sublinhado vermelho(erro), e a mensagem quando compila é a seguinte: Exception in thread ?main? java.lang.RuntimeException: Uncompilable source code ? Erroneous sym type: Array.inverse.

Como faço para multiplicar a matrizMK com a Inversa da matrizK???
O CÓDIGO:

public static void main(String[] args) {

double[][] matrizMK = {{65,57,36,20,77,155,35,83,165},{90,10,15,76,25,107,13,47,193},{57,36,3,0,101,85,7,121,139},
{27,54,66,18,46,25,62,131,41},{68,47,33,48,6,131,126,24,162},{62,41,99,70,79,105,3,86,137},{14,77,60,76,6,138,98,126,13},
{25,73,78,50,54,113,40,143,41},{9,2,36,0,11,0,0,0,18}};

double [][] matrizK = {{1,0,0,0,0,0,0,0,2},{0,2,3,0,0,0,0,0,0},{0,0,3,0,1,0,0,0,0},{0,0,0,4,0,5,0,0,0},
{0,0,0,0,5,0,0,6,0},{0,3,0,0,0,6,0,0,1},{0,0,0,0,0,0,7,1,0},{1,0,0,2,0,0,3,8,0},{4,0,0,0,0,1,0,0,9}};

//int aux = 0;

System.out.println(?MATRIZ Recebida:?);
Matrix matriz=new Matrix(matrizMK);
matriz.print(5,0);

System.out.println(?MATRIZ chave publica?);
Matrix chave= new Matrix(matrizK);
chave.print(5,0);

System.out.println(?MATRIZ INVERSA da chave pública?);
Matrix inversa= new Matrix(matrizK).inverse();
inversa.print(5,0);

// PRODUTO DAS MATRIZES MK E MatrizK.inverse()

int row, column, i;
double aux;
double c[][] = new double[matrizMK.length][matrizK.inverse()[0].length];
for (row = 0; row < c.length; row++) // multiplicação das matrizes
{

for (column = 0; column < c[row].length; column++) {
aux = 0;
for (i = 0; i < matrizMK[row].length; i++) {
try {
aux = aux + matrizMK[row][i] * matrizK.inverse()[i][column];
} catch (Exception e) {
e.printStackTrace();
}
} c[row][column] = aux;
}
}
// define matriz produto
Matrix matrizProduto = new Matrix©;
System.out.println(“Produtoatriz MK com a matriz Inversa”);
matrizProduto.print(5,0);
}

}

Galera gostaria que alguém pudesse me responder o mais breve possível. Agradeço

VEJAM O SEGUINTE : Meu velho veja bem eu estou tentado realizar a multiplicação entre duas matrizes 9x9: matrizMK e a matrizK.inverse().
Contudo a palavra fica com sublinhado vermelho(erro), e a mensagem quando compila é a seguinte: Exception in thread ?main? java.lang.RuntimeException: Uncompilable source code ? Erroneous sym type: Array.inverse.

Como faço para multiplicar a matrizMK com a Inversa da matrizK???
O CÓDIGO:

public static void main(String[] args) {

double[][] matrizMK = {{65,57,36,20,77,155,35,83,165},{90,10,15,76,25,107,13,47,193},{57,36,3,0,101,85,7,121,139},
{27,54,66,18,46,25,62,131,41},{68,47,33,48,6,131,126,24,162},{62,41,99,70,79,105,3,86,137},{14,77,60,76,6,138,98,126,13},
{25,73,78,50,54,113,40,143,41},{9,2,36,0,11,0,0,0,18}};

double [][] matrizK = {{1,0,0,0,0,0,0,0,2},{0,2,3,0,0,0,0,0,0},{0,0,3,0,1,0,0,0,0},{0,0,0,4,0,5,0,0,0},
{0,0,0,0,5,0,0,6,0},{0,3,0,0,0,6,0,0,1},{0,0,0,0,0,0,7,1,0},{1,0,0,2,0,0,3,8,0},{4,0,0,0,0,1,0,0,9}};

//int aux = 0;

System.out.println(?MATRIZ Recebida:?);
Matrix matriz=new Matrix(matrizMK);
matriz.print(5,0);

System.out.println(?MATRIZ chave publica?);
Matrix chave= new Matrix(matrizK);
chave.print(5,0);

System.out.println(?MATRIZ INVERSA da chave pública?);
Matrix inversa= new Matrix(matrizK).inverse();
inversa.print(5,0);

// PRODUTO DAS MATRIZES MK E MatrizK.inverse()

int row, column, i;
double aux;
double c[][] = new double[matrizMK.length][matrizK.inverse()[0].length];
for (row = 0; row < c.length; row++) // multiplicação das matrizes
{

for (column = 0; column < c[row].length; column++) {
aux = 0;
for (i = 0; i < matrizMK[row].length; i++) {
try {
aux = aux + matrizMK[row][i] * matrizK.inverse()[i][column];
} catch (Exception e) {
e.printStackTrace();
}
} c[row][column] = aux;
}
}
// define matriz produto
Matrix matrizProduto = new Matrix©;
System.out.println(“Produtoatriz MK com a matriz Inversa”);
matrizProduto.print(5,0);
}

}

Galera gostaria que alguém pudesse me responder o mais breve possível. Agradeço

theophilo Cara, repare que vc postou sua dúvida num post do cara que não tem nada a ver com o seu problema relatado, além de ter mandado duas mensagens. Abra um outro topico relatando essa sua duvida, coloque as tags code para seu código, não peçam para responder rápido pois ninguem tem obrigação.

Porém uma dica: erros de compilação são os mais simples de resolver, pois o compilador mostra exatamente onde está o erro. Dê mais uma pesquisada e tentada antes de abrir seu topico, ha grandes chances que conseguirá…

EDIT: Caramba, vi ainda que vc postou tambem em outros topicos, como " Desenvolvimento Web", “Certificacao”, “Java FX”. Por favor, leia as regras do forum

Algo como a velha novela Asp.Net Web Forms vs Asp.Net MVC?[/quote]
É por ai mesmo, ficou nessa novela até component based morrer de vez em .NET. O JSF surgiu exatamente por causa da fama RAD do WebForms na época, que atendeu bem para esse tempo, embora pudesse ter a opção de liberdade com WebMethod. Agora com as exigências de frontend maiores, é muito melhor ter liberdade no lado client, do que ficar perdendo tempo entendendo componentes intermediários no lado servidor.