Em um projeto atual, configuramos a compilação para podermos misturar Java e Scala. Gostaria de usar mais Scala em nossa base de código para tornar o código mais legível e conciso. No processo, também aprenda o idioma entregando recursos reais.
Então, planejo usar o Scala em algumas aulas para mostrar seus benefícios e convencer outros desenvolvedores a usar o Scala também.
Para um servidor Web baseado em repouso ou um programa em geral, que tipo de estrutura de código se presta ao estilo de programação funcional do Scala.
Respostas:
Um exemplo típico, se você quiser ilustrar a concisão do código funcional, pode usar coleções e suas operações. Por exemplo, considere uma classe
Customer
e um método criando uma lista classificada de nomes de clientes a partir de uma lista de clientes.Aqui está a implementação do Java:
Versão Scala:
NOTA
A concisão em termos de pressionamentos de teclas nem sempre é uma boa medida da qualidade e manutenção do código.
Além disso, em geral, eu não recomendaria mudar do Java para o Scala apenas porque o Scala é mais recente. Se a maioria dos membros da equipe estiver mais familiarizada com Java, a equipe será muito mais produtiva com Java do que com Scala (ou qualquer outra linguagem de programação que eles não conheçam bem).
Aprendo o Scala no meu tempo livre há cerca de dois anos e apenas recentemente (depois de participar de um curso on-line) tive a sensação de que posso ser mais produtivo no Scala do que em Java. Antes de chegar a esse ponto, eu não consideraria usar o Scala para produção.
fonte
Conciseness in terms of keystrokes is not always a good measure of code quality and maintainability
Especialmente ao codificar em Perl.Stream
o de: você pode executar primeiras pesquisas complexas em um espaço de solução até encontrar uma solução (como encontrar um caminho de um determinado objeto para outro, com certas restrições). Não sei se isso é relevante para você.Para todos, em todos os lugares onde é possível ou para nada, basta usar Java. Dessa forma, isso funcionará corretamente. Eu estava fazendo esses experimentos há muito tempo, mas mais tarde você reescreve tudo em um ou dois idiomas (para você manter algumas coisas, se isso não puder ser feito em outro idioma), apenas para maior clareza.
Se você pode declarar a classe menor em 2 linhas de código, isso não é uma vantagem, você não deve usar o idioma para esse "recurso". Por exemplo, também é possível escrever um código funcional bonito em linhas xxx e passar o tempo aaaa e, talvez, ao mesmo tempo, você pode escrevê-lo no estilo OOP em xxx + 150 linhas no período aaa-2 horas com benefício de desempenho (quem sabe). O que quero dizer é que não é possível dizer "esta parte será melhor no Scala" e "esta parte no Java". No desenvolvimento, você não deve descobrir recursos, na minha opinião, você deve apenas desenvolver sem misturar e pensar na lógica geral em vez da implementação na linguagem X ou Y; por isso, na minha opinião, para maior clareza e produtividade, você deve escolher a linguagem para o projeto em vez de para recurso .
fonte
Suspeito que seja uma questão de quão bons são os programadores da equipe e o quanto estão dispostos a aprender coisas novas.
Scala é muito mais conciso e expressivo, mas igualmente mais complexo. Qualquer programador que possa fazer bom uso das abstrações de alto nível que ele oferece gostará e será mais produtivo e nunca mais voltará ao nível simplificado do Java. Mas um programador que não é bom em abstrações de alto nível ou simplesmente não quer aprender nunca o entenderá.
Também não acho que você deva usar casos adaptados especificamente para o Scala. Comece a escrever o protótipo nele e você verá se é mais produtivo ou não. Deve ser mais produtivo que tudo valha a pena mudar.
E eu definitivamente não misturaria os idiomas, exceto pelo uso de bibliotecas escritas no outro. Inicie a criação de protótipos no Scala, veja como funciona e escolha um ou outro.
fonte
Na minha experiência (reconhecidamente limitada), o caso de uso que eu mais vi é usá-lo para obter uma sensação de superioridade e presunção sobre seus colegas que realmente enviam coisas e / ou ocultar suas limitações culpando os "antiquados e deselegantes" idioma que você é "forçado" a usar em vez da nova gostosura;)
fonte