Node.JS ou Scala para aplicativos móveis e da web [closed]

5

Estou vindo de um background php com alguns python também. Quero começar a trabalhar em um idioma diferente para o desenvolvimento para web e dispositivos móveis. Eu também estou interessado em aplicativos em tempo real que lidam com jogos.

Estou vendo o node.js porque posso usar ferramentas como titanium e / ou phone gap para fazer com que meus aplicativos sejam portados e compilados para código java nativo, ou de uma maneira que o torne executável em dispositivos móveis (visualizações da web). Eu gosto desse caminho porque posso usar o conhecimento JS existente para criar aplicativos.

Eu também estou olhando para scala. Eu fiz um pouco de C #, bem como consertou com Java cerca de 5 anos atrás. E eu gosto disso, eu posso usar scala para fazer aplicativos android nativos. Mas, ao contrário do node / js, que pode ser feito para funcionar em outro sistema operacional móvel, isso só funciona no android. De certa forma, isso realmente não me incomoda. Mas scala parece que teria um desempenho muito melhor para jogos que JS compilou para android. Mas eu não sei como bem.

No final, quero me concentrar em aplicativos da Web baseados em soquete e REST para APIs aos quais os usuários podem ter acesso, além de algum desenvolvimento para dispositivos móveis. Eu quero ir para jogos e aplicativos interativos.

A pergunta é: que recursos do Scala me beneficiariam do lado do nó / js para criar aplicativos em tempo real na web ou em dispositivos móveis? Eu estava olhando para usar estruturas como levantar ou jogar na web.

O nó também torna o tempo real fácil com o socket.io e o nó manipula muito disso em segundo plano. É por isso que acho que o node pode ser uma ótima escolha. Então, eu estava esperando que alguém pudesse dar algumas dicas sobre os recursos do Node, o que teria algum benefício sobre o scala. Eu realmente não quero ouvir 'isso é melhor porque sua webscale ou coisas relacionadas. Eu estava esperando por mais fatos sobre recursos que beneficiariam o que eu quero fazer. Eu já entendo porque o nó é bom. Eu só não sei muito sobre scala. Ou como eles podem comparar para o que eu quero realizar.

    
por skift 08.04.2013 / 18:39
fonte

2 respostas

4

I am looking at node.js because I can use tools like titanium and/or phone gap to have my apps ported and compiled to native java code, or in a way that makes it runnable on mobile (web views). I like this path because I can use existing JS knowledge to build apps.

O nó é uma tecnologia do lado do servidor. Você não deve permitir que o idioma do aplicativo decida o idioma do servidor. Sim, existem algumas "sinergias" para ter seu front-end e back-end no mesmo idioma. Mas não é uma bala de prata e pode causar mais dores de cabeça do que resolve. Na verdade, a maioria dos escritores de aplicativos optam explicitamente por não fazer isso.

So I was hoping someone could give some insight on features in Node, that would have some benefit over scala.

Um dos motivos para NÃO usar o Node é que o JavaScript tem muitas verrugas. (Procure por "JavaScript WTF"). Se você quiser JS no servidor, preparado para se tornar um especialista em JavaScript (especialmente as verrugas). Considere também o CoffeeScript, que ajuda a eliminar algumas das verrugas, mas é facilmente transformado em JS. JavaScript também é uma linguagem de script, então tende a ser menos eficiente do que o Scala.

O Scala usa a JVM e a história da JVM do lado do servidor é muito mais madura que o Node. Mas Scala é provavelmente mais difícil de começar. Eu não sei nada sobre como escrever aplicativos no Scala, mas imagino que isso é muito imaturo.

Não pense na pergunta como ou-ou. Você será um desenvolvedor melhor se tentar implementar nos dois idiomas. Quanto mais idiomas você souber, melhor programará em seu idioma favorito.

    
por 22.09.2013 / 02:35
fonte
2

Concordo com tudo o que a @BraveNewCurrency disse. Eu gostaria de adicionar alguns comentários.

Pessoalmente, eu usaria o Scala no servidor e o CoffeeScript no cliente, o AFAIK Play permite integrá-los no desenvolvimento (colocação das pastas, etc.), o CoffeeScript tem a mesma interoperabilidade de Javascript e uma sintaxe mais agradável e o Scala tem a mesma maturidade e disponibilidade da biblioteca do Java, com uma sintaxe mais agradável (e semântica ?).

Por outro lado, se você não precisa da maturidade e disponibilidade de bibliotecas de Java, o Node.js fornece uma linguagem uniforme para o desenvolvimento, e você pode estar mais confiante com Javascript do que com o Scala. (e seu ecossistema, como SBT ou Maven, etc. quando comparado com npm, etc). Não é uma bala de prata para o sistema, mas pode ser confortável para o desenvolvedor. Isso realmente depende da pessoa. Pessoalmente eu prefiro ter tipos no servidor, eles ajudam a usar código escrito por outras pessoas que podem não ser os mais disciplinados ou melhores programadores do mundo, o que estatisticamente deve acontecer com bastante frequência.

Para finalizar, para o cliente é Javascript ou Coffeescript. Scala não faria muito sentido lá, é um acéfalo.

No servidor há gurus do Node.js fazendo coisas impressionantes, e pode ser mais adequado para algo rápido (e "sujo") se o seu kung fu for strong o suficiente. Por outro lado, o Scala permitirá uma melhor integração em algo grande (e "enterprisey") especialmente se você quiser colaborar com mais pessoas em algum momento. Então, isso é mais uma questão de adequação para um propósito e um gosto pessoal (ainda não especificado).

    
por 23.09.2013 / 11:32
fonte