PayPal muda de Java para JavaScript

PayPal muda de Java para JavaScript

[quote]O PayPal decidiu usar JavaScript de ponta-a-ponta, do browser até o servidor de backend para aplicações web, descontinuando o código legado escrito em JSP/Java.

Jeff Harrell, diretor de engenharia do PayPal, explicou em alguns posts no seu blog (Set My UI Free Part 1: Dust JavaScript Templating, Open Source and More, Node.js at PayPal), o motivo por trás dessa decisão e algumas das conclusões que resultaram da mudança de seu desenvolvimento web de JSP/Java para uma solução totalmente JavaScript/Node.js.[/quote]

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

O que acham da notícia colegas?

[]'s

ue? javascript não é totalmente client side? é possivel fazer transições de banco de dados com o js?

Sim com os conceito trazido do node.js, que funciona “basicamente” como um interpretador de js rsrs

[]'s

Sim com os conceito trazido do node.js, que funciona “basicamente” como um interpretador de js rsrs

[]'s[/quote]

então no caso o node.js roda no servidor? não conhecia D:

Não apenas o node.js, existe um framework novo chamado meteor que serve tanto pra client quanto pra server side. É o futuro sendo unificado em uma única linguagem, o sonho de todos os devs.

Mas indo à notícia do tópico: Acho excelente novas tecnologias surgirem e substituirem o java, já passou da hora de usarmos algo mais prático no desenvolvimento e isso prova que mesmo tarefas críticas, podem sim ser substituídas por algo mais moderno.

Bem… não é só simplesmente mudou. Creio que o buraco é mais embaixo.

[quote=vinsor]É o futuro sendo unificado em uma única linguagem, o sonho de todos os devs.[/quote]Ops, cuidado aí com a generalização.

Apenas me intrometendo. Em pesquisas rápidas na internet encontrei muitos tutoriais de Node.js com bancos de dados não-relacionais. Pergunto para alguém que tenha experiência com NoSQL, qual a verdeira vantagem que esses bancos possuem quando comparados com bancos relacionais? E porque o Node.js está tão envolvido com bancos de dados não-relacionais? Isso pode significar uma mudança profunda em muitas ferramentas de desenvolvimento para os próximos anos?

Ora, que mudou, mudou. Os motivos são N. O que a decisão mostra é que java não precisa ser a linguagem universal, como tem ocorrido há mais de uma década. Muitas empresas tem medo de trocar seus sistemas feitos em linguagens mais conservadoras por algo mais moderno. Uma decisão dessas, vinda do PayPal é algo pra se comemorar e muito.

Creio que um futuro onde tanto client quanto server side possam ser desenvolvidos em uma única linguagem é sim o sonho de todos os devs. Se não for todos, então creio que exista apenas uma minoria (que pode ser desprezivel em termos estatísticos) que é contra. Acho que o maior motivo de divergencia é sobre qual linguagem será usada para unificar ambos os lados e nesse caso, tudo converge para que seja o javascript, o que naturalmente não é algo que todos os devs gostam. Obviamente, a opinião deles não importa, é um movimento que a indústria já tomou e lentamente vamos convergindo pra isso.

P.S.: Li o link. Apesar dele dar motivos pelo qual a comparação é de “alhos com bugalhos” (sim, eu sei que ele não usou essas palavras), ele simplesmente ignora o mais básico, que é “PayPal resolveu mudar pq achou Javascript melhor do que Java para as tarefas que precisava resolver no seu sistema”. O maior problema de Java é ser estritamente orientada a objetos, ela não permite que vc use outros paradigmas de desenvolvimento. Outro problema é que a linguagem é extremamente verbosa e isso até pode ser uma vantagem para sistemas muito grandes, mas eu creio que seja desnecessário (Não sei se existem estudos acadêmicos a respeito de linguagens extremamente verbosa x linguagens cleans, talvez rendesse um tema interessante de estudo). Outra coisa que o autor do texto ignorou foi que graças ao uso do Javascript, foi possível integrar o time de design com o time de devs server side e isso sim foi algo que aumentou a velocidade de desenvolvimento, não a questão de quantos devs foram usados. Algo impossível enquanto usavam Java. O futuro está aí, Javascript universal :smiley:

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!

Java continua dominante e continuará por bastante tempo ainda, eu creio. Para trabalhar com um sistema simples, vc poderia usar N linguagens, depende apenas do seu framework. Até em Java poderia ser feito, com frameworks “simples” como o vert.x. A vantagem de usar node.js (ou meteor) é que vc vai trabalhar com uma única linguagem, tanto no lado servidor, quanto no lado cliente e terá mt mais prazer tbm :p. Além disso, Javascript tem sido a queridinha da indústria. Hoje em dia ninguém mais fala de thin client, mas sim de fat client, ou seja, a única coisa que trafega pela rede são os dados e quem renderiza a página é o próprio javascript. Esqueça JSP e afins. Entretanto, isso pode ser quase uma realidade fora do Brasil, mas por aqui o pessoal é bem atrasado com relação a isso. Se você não sabe Java, vale a pena estudar algo (mas não se preocupe com a infinidade de frameworks, saiba apenas a linguagem). Se quiser desenvolver um sistema por conta própria, então escolha uma linguagem e pegue o framework e estude-o conforme vc desenvolve seu sistema. Como disse em outros tópicos, o paradigma não vai mudar, o que um framework A faz, o B tbm faz (assumindo que ambos atuam no mesmo grupo de aplicações). A diferença será quantas linhas de código vc vai precisar e quantos arquivos de configuração são necessários.

[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]

Sinceramente, na visão de um empregado, eu prefiro tomar um pouco de cuidado com essas tecnologias novas demais. Entre Node.js e PHP, prefiro estudar PHP pois é muito mais requisitado no mercado que o Node. E o mesmo vale para outras tecnologias que estão aí já por um tempo e que não “pegaram” (pelo menos no Brasil) como Ruby ou Python.

De certa forma, parece que estamos um pouco atrasados. Muitas empresas não trocam seus sistemas desenvolvidos em Clipper ou Delphi por algo mais moderno como Java ou .Net. Por isso eu não vejo o mercado brasileiro mudando em tão pouco tempo de Java para Node.js. Provavelmente, por mais alguns anos, a demanda por programadores Java ainda será muito maior.

Agora, se você é um desenvolvedor independente e não está disposto a dividir o trabalho de codificação com mais ninguém, está livre para usar o que bem entender.

Procurei saber sobre o node.js,pelo visto ele não é a melhor escolha quando é necessario desenvolver paginas web dinamicas,então,listagens de registros em paginas web,por exemplo,não é possivel desenvolver utilizando ele…

[quote]Procurei saber sobre o node.js,pelo visto ele não é a melhor escolha quando é necessario desenvolver paginas web dinamicas,então,listagens de registros em paginas web,por exemplo,não é possivel desenvolver utilizando ele…
[/quote]

Como nao ? É só trafegar os dados do servidor pro client e aih quando os dados chegam no client, vc monta a pagina como deseja e a pagina é montada direto no cliente. Quer algo mais dinamico do que isso ?

[quote=vinsor][quote]Procurei saber sobre o node.js,pelo visto ele não é a melhor escolha quando é necessario desenvolver paginas web dinamicas,então,listagens de registros em paginas web,por exemplo,não é possivel desenvolver utilizando ele…
[/quote]

Como nao ? É só trafegar os dados do servidor pro client e aih quando os dados chegam no client, vc monta a pagina como deseja e a pagina é montada direto no cliente. Quer algo mais dinamico do que isso ?[/quote]

[quote]Páginas criadas dinamicamente

Atualmente, o Node não fornece uma forma padrão para criar páginas dinâmicas. Por exemplo, ao usar a tecnologia JavaServer Pages (JSP), é possível criar uma página index.jsp que contenha loops em snippers JSP, como <% for (int i=0; i<20; i++) { } %>. O Node não permite esses tipos de páginas dinâmicas direcionadas a HTML. Novamente, o Node não é idealmente adequado para ser um servidor de páginas da web, como o Apache e o Tomcat o são. Portanto, se quisesse fornecer uma solução no lado do servidor para isto no Node, teria que codificar a solução inteira você mesmo. Um programador PHP não gostaria de programar um conversor PHP para o Apache toda vez que implementasse um aplicativo da web, mas, neste momento, é o que o Node exigiria que você fizesse.[/quote]

Você leu o que eu disse sobre thin client e fat client ? Se não leu, por favor, leia. Se leu e não entendeu, então pergunte ou procure no google. Como eu disse anteriormente, esqueça JSP e afins e mais, essas páginas não é para serem montadas no servidor, é para serem montadas no cliente, de acordo com o paradigma fat client. E isso é MUITO mais dinâmico do que montar página no lado servidor.

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?

Não existe view. O que existem são dados. O seu array vc vai transformar em um json e enviar pro client. Aí quando o client receber a resposta, vc vai pegar os dados que foram enviados via json e trata-lo da maneira que achar melhor, através do javascript.

Correção: A view existe, mas ela não é montada no servidor.

[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]

Calma, aqui no Brasil a realidade é meio diferente! Linguagens que estão na moda lá fora não emplacam aqui tão fácil.

[]'s

[quote=Hebert Coelho]Bem… não é só simplesmente mudou. Creio que o buraco é mais embaixo.

Concordo toda generalização é burra (será? hehehe) acredito que é impossível uma linguagem ser realmente boa tanto no front-end quanto no back-end.

E de fato o buraco é mais embaixo mesmo! Pois a questão não entra somente na mudança da linguagem X para a Y mas também envolver uma forma de trabalhar diferentes, pois uma mudança de linguagem gerá um grande impacto na arquitetura da aplicação, não tenho muitos detalhes de como e a arquitetura do paypal, mas acredito que uma migração total e uma completa tolice, o que acredito que vai ser migrado vai ser apenas a camada de GUI do seu sistema (é estranho falar sobre GUI para uma aplicação web), da mesma forma que o twitter migrou sua camada de GUI do ruby para o Java.

Lembrando que o caso do twitter e diferente do paypal pois ambos utilizam arquiteturas diferentes para suprir necessidades diferentes.

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]

A grosso modo isso funciona assim, a página web vai ter uma série de javascripts que vão recuperar os dados com uma requisição ajax do servidor de aplicação em um objeto json e vai pegar esses dados e colocar no lugar adequado na tela e o css + jquery (ou outro framework) vai deixar a página bonitinha e cheia de efeitos. No caso o node.js é para executar a nivel de servidor as regras de negócio e processar os dados recuperado do banco. Essa é uma descrição muito superficial deste tipo de arquitetura, mas muito superficial mesmo, o processo não é tão simples assim igual eu descrevi assim, tem uma complexidade muito grande!

[]'s

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