PayPal muda de Java para JavaScript

[quote=mozena]Muito bom o fórum !!! Com diversas opiniões, e informações importantes.

Quero deixar meu comentário:

Sou “Javero” há 7 anos, adoro a linguagem, minha maior experiência são em projeto web(JSF,STRUTS,SPRING,HIBERNATE…etc), e recentemente comecei a trabalhar com aplicativos Mobile, utilizando javascript full com servidor Node.js. A solução que estamos usando é o http://www.kony.com

No desenvolvimento vi diversas vantagens em utilizar o node, incrivelmente o desenvolvimento é mais rápido, a montagem do ambiente é mais simples, organizado (MVC), fácil e bem intuitivo. Sem contar a integração do modulo de teste TDD que é fantástica.

Como alguns colegas citaram, aqui é Brasil e muitas tecnologias que pegaram fora no Brasil não.(Ex:Ruby) Porém vejo mudanças que devem diminuir o mercado de java, principalmente pelas vantagens que o javascript tem na camada web.

Acredito que nos próximos anos mais linguagens surgirão para integrações com aplicativos, não faz sentido desenvolver um sistema para site e outros para mobile.

Noticias


http://www.infoq.com/br/news/2013/12/paypal-java-javascript


https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/

Abraços
Felipe Mozena Antunes
[/quote]
Valeu pelo relato. Qual banco de dados vocês usam nesse sistema?

Disponha amigo. Estamos utilizando SQLite.

Abraços,
Felipe Mozena

Pelo que leio NodeJs é mais para atender casos de zilhões de requisições simultâneas, e banco de dados NoSQL idem, com grande volume de dados chegando aleatóriamente, onde o requisito de alta escalabilidade tem mais importância do que as outras vantagens das outras soluções (como por exemplo perfeita integridade).

Dá uma lida:

http://www.ibm.com/developerworks/br/library/os-nodejs/


Ferramentas só com amadurecimento.

Até agora só fiz um hello world e estudei códigos. Vejo com bons olhos usar JavaScript como uma única linguagem. JavaScript é tranquilo por ser seguir uma sintaxe clássica, ao contrário de Ruby ou Objective C que são bizarras para quem é das antigas.

Outra coisa importante é ter uma opção atual respeitável não orientada a objetos no mercado comercial, assim OOP pára de ser levada como bala de prata.

Obrigado pelo esclarecimento javaflex!

Aproveitando o tema do tópico, é interessante notar como o javascript, uma tecnologia tipicamente web, está também tomando espaço em outras plataformas. Por exemplo, quem conhece .Net talvez conheça os projetos javascript para criação de apps para windows 8. Você pode aplicar seus conhecimentos de javascript, html5 e css3 num aplicativo desktop, por exemplo (claro que tudo isso dentro dos moldes definidos pela microsoft).

Também existem sistemas operacionais mobile com sua interface desenvolvida com html5, como o Tizen.

[quote=Júlio Murta]Obrigado pelo esclarecimento javaflex!

Aproveitando o tema do tópico, é interessante notar como o javascript, uma tecnologia tipicamente web, está também tomando espaço em outras plataformas. Por exemplo, quem conhece .Net talvez conheça os projetos javascript para criação de apps para windows 8. Você pode aplicar seus conhecimentos de javascript, html5 e css3 num aplicativo desktop, por exemplo (claro que tudo isso dentro dos moldes definidos pela microsoft). [/quote]
Tem muito tempo que não trabalho com desktop, mas isso é verdade mesmo pelo que acompanho, apesar de XAML ainda parece estar mais valorizado.

Pois é, FireFox OS e Chrome OS são outros a considerar. Se vai pegar ou não, é bom ficar ligado acompanhando, não sou cientista mesmo, então espero o momento certo mas sem ficar boiando.

NodeJs no momento fica para acompanhamento também, assim como Rails ficou mas que nunca usei e acabou trazendo frutos para a própria tecnologia que eu já usava, copiando as ideias. Programação assíncrona no C# 5 já é super fácil, e o mesmo time que faço parte faz o server side C# e client side JavaScript sem problemas, só o CSS e diagramação do HTML que é time separado.

Já havia falado sobre Node.js há uns dois anos!!! Alguém sabe como fica a segurança e a confiabilidade da camada serve-side?

Confiabilidade não sei, mas prefiro que as coisas amadureçam no mercado e uma real necessidade de uso, caso o que uso hoje não atender, o que não vejo ainda.

Aqui tem um exemplo sobre autenticação básica usando framework Express http://blog.modulus.io/nodejs-and-express-basic-authentication

Se você tiver praticando dá um retorno ai pra galera, só acompanho Nodejs em leituras.

[quote=Slow17]Estava pensando,então vale a pena estudar node.js outro framework para rodar js em servidores? e java? perderia espaço em projetos grandes para essas tecnologias(porque em projetos pequenos já perdeu para php imo)? Eu acho que,se eles quisesem facilitar o desenvolvimento,poderiam usar uma linguagem mais simples de desenvolver tipo php,apesar de que,eles teriam que migrar o sistema de java para php…
Então,se você precissa de um sistema bem simples,seria mais lucro usar node.js ou php?
Desculpe se fui simples em minhas observações![/quote]
Depende da equipe e projeto, a equipe do PayPal avaliou e decidiu usar Nodejs. Minha equipe usa .NET, outra equipe usa Java. O importante é a tecnologia atender bem o objetivo e a equipe + cliente que solicita sejam felizes, coisa que pelo jeito não acontecia no PayPal, onde ter uma equipe de desenvolvimento separado da outra e uma dependendo da outra deve ter sido o maior problema. Na minha equipe todo mundo programa em JavaScript e C#. Sobre estudar, vai de cada um, eu prefiro só acompanhar lendo até vir uma necessidade real para investir.

[quote]acredito que é impossível uma linguagem ser realmente boa tanto no front-end quanto no back-end.

[/quote]

Aí você usa linguagem json pro backend, linguagem html pra frontend, linguagem css pro estilo, etc. :wink:

Pera,então é possivel eu buscar uma lista no banco,salvar em um array dinamico,passar esse array dinamico para a view ,e lá exibir ele atravez de um for em javascript por exemplo?[/quote]

Você pode ter template engines no client side também. Dê uma estudada no AngularJS e veja como ele usa o próprio html como um template.

Aproveite o embalo e estude sobre REST e JSON, você não vai se arrepender!

Lá vai eu fazer curso de Node.JS no Alura.

A vantagem é que eles fazem buscas mais rápidas e usam menos recursos de servidor, quando se trabalha com Big Data esses bancos são uma boa opção.

[quote=emanoelcominesi]
A vantagem é que eles fazem buscas mais rápidas e usam menos recursos de servidor, quando se trabalha com Big Data esses bancos são uma boa opção.[/quote]
Mais rápidas? Nem sempre. Buscas com join no MongoDB são bem mais lentas do que em qualquer banco relacional.

A grande vantagem do movimento NoSQL é o que ele não te obriga a usar somente o paradigma relacional em seus projetos. Caso você precise fazer uma grande quantidade de consultas em objetos simples, pode usar um banco orientado a documentos, como o MongoDB. Caso seja interessante atribuir relacionamentos com diferentes pesos e caminhos para suas entidades, você pode usar um banco orientado a grafos, como o Neo4J. Se você tem uma grande quantidade de informações não categorizadas, e pretende organizá-las de forma a tomar decisões em cima desses dados, você pode usar um sistema que lance mão de algoritmos do tipo map-reduce, como o Hadoop.

O que o NoSQL te dá é liberdade. Por isso esse termo tem sido tão difundido nos últimos anos.

MongoDB não tem joins.

Verdade, falha minha. O que eu quis dizer é que o custo para se fazer uma consulta join-like no mongodb é maior do que em um banco relacional.

Basicamente a grande vantagem do Node em termos de performance é que javascript é naturalmente assincrono e que nasceu focado para web.

A grande desvantagem: não há muitos frameworks para coisas especificas, portanto bastante coisa que já existe em java por exemplo tem que ser feito na mão ou via integração.

NOSQL da para ter uma discução separada já que há varios aspectos sobre o que é big-data, webscale, perfomace etc etc, o que é propaganda e o que é verdade

Verdade, falha minha. O que eu quis dizer é que o custo para se fazer uma consulta join-like no mongodb é maior do que em um banco relacional.[/quote]

?

NoSQL fornece os dados que você vai usar pra criar e executar a sua consulta localmente, enquanto um banco de dados sql você envia a consulta pro servidor executar e retornar os dados como resultado. Esse servidor quase sempre é remoto, por isso mais caro?

[quote=mcarabolante]Basicamente a grande vantagem do Node em termos de performance é que javascript é naturalmente assincrono e que nasceu focado para web.

A grande desvantagem: não há muitos frameworks para coisas especificas, portanto bastante coisa que já existe em java por exemplo tem que ser feito na mão ou via integração.

NOSQL da para ter uma discução separada já que há varios aspectos sobre o que é big-data, webscale, perfomace etc etc, o que é propaganda e o que é verdade[/quote]

JavaScript não tem Threads, não pode ser “naturalmente assincrono”. Acho que você esta se referindo ao mecanismo de callbacks que existe na linguagem. Neste caso, não são a mesma coisa.

[quote=JDesenvolvedor]
?

NoSQL fornece os dados que você vai usar pra criar e executar a sua consulta localmente, enquanto um banco de dados sql você envia a consulta pro servidor executar e retornar os dados como resultado. Esse servidor quase sempre é remoto, por isso mais caro?[/quote]
Quando digo custo, me refiro ao custo computacional. Pela própria natureza das foreign keys no modelo relacional, é menos custoso fazer uma consulta join-like no relacional do que simular uma no MongoDB.

A vantagem é que eles fazem buscas mais rápidas e usam menos recursos de servidor, quando se trabalha com Big Data esses bancos são uma boa opção.[/quote]

Ele te fornece mais liberdade para trabalhar como novos paradigmas sempre precisar fazer gambiarras e entupir seus SGDB com extensões. Agora a performance e outro ponto que precisa sempre ser analisado, existem tantos paradigmas de bancos nosql que em cada circunstância alcançar um objetivo vai ser diferente, podendo ser mais rápido com um paradigma ou mais lento com outro paradigma.

[]'s