Scala, vale a pena?

Um colega do trabalho fala muito bem de Scala. Tentei dar uma procurada sobre mercado para Scala, e não encontrei muita coisa.

Vocês acham que vale a pena investir no estudo desta linguagem?
Indicam algum fórum, blog, referências?

Abraços

O “mercado” em si é bem específico mas há certa procura (acho que mais no estrangeiro que aqui mesmo). Um diretor aqui na empresa (que casualmente também tem um instituto educacional) estava feito doido procurando um instrutor de Scala, e como ele não é de dar ponto sem nó, provavelmente deve entrar em moda daqui a algum tempo.

[quote=entanglement]O “mercado” em si é bem específico mas há certa procura (acho que mais no estrangeiro que aqui mesmo). Um diretor aqui na empresa (que casualmente também tem um instituto educacional) estava feito doido procurando um instrutor de Scala, e como ele não é de dar ponto sem nó, provavelmente deve entrar em moda daqui a algum tempo.
[/quote]

Você já chegou a dar uma estudada?

Conhece algum fórum ou blogs legais para acompanhar?

abraço

“O bom programador deve aprender uma nova linguagem de programação todo ano.”
Esse eu aprendi scala. Particular eu amo essa linguagem. Usando scala vc chega a uma redução de aproximadamento 30% no número de linhas do seu código em relação ao código Java quando vc está usando um framework Java, ou seja, um framework q ñ tira proveito das vantagens da sintaxe e da API da scala. Quando vc tem uma API/framework scala essa redução chega a ~60% no número de linhas. Desde q aprendi scala, quando classe Java q escrevo me deixa mais triste :cry: pois ñ consigo deixar de imaginar como seria mais fácil faze-lo em scala.

O futuro ainda é incerto mas eu apostaria q em scala. Ao menos o pessoal do Twitter apostou :smiley: !

Acho bacana essa ascenção de linguagens alternativas ao Java que rodam na JVM… Cara, se a sintaxe lhe agradar, aprenda com certeza, motive amigos a aprender, faça Projetos, participe da comunidade… O futuro de uma tecnologia depende da adoção dela… Não adianta esperar pra saber se vai dar certo… Faça dar certo…

Tô pra começar a estudar Groovy + GRails… Já dei uma olhada no Scala, pessoalmente gostei mais do Groovy, mas é uma questão de puro gosto pessoal, quem sabe um dia com calma não precise aplicar Scala em algum Projeto…

Nova tecnologia vale a pena… Sempre…

Abs :wink:

Eu tambem estou apostando em Scala, até o momento estou gostando muito, a linguagem realmente é facinante, eu diria um pouco complicadinha no começo, mas depois vai de boa.
Eu vejo a comunidade de Scala crescendo a cada dia, em forum/grupos, ja começa a ser frequente gente oferecendo vaga, mas como o colega falou, no Brasil nem tanto.

Um lugar que ta bem movimentado é o stackoverflow: http://stackoverflow.com/questions/tagged/scala

Temos tambem um google grupo, mas anda meio parado, mas sempre que alguem pergunta sempre tem alguem respondendo: http://groups.google.com/group/scala-br

E por ultimo um blog, que um cara do grupo scala-br criou e esta postando algumas coisas: scala-br.org

Se for pensando em ganhar dinheiro imediato, talvez devesse ficar com java, mas se for para aprender uma nova linguagem para usar em seus projetos pessoais e tambem para fazer uma boa aposta para o um futuro nao muito distante, com certeza eu indico scala.

Muito legal as opiniões.

Também estou na dúvida de estudar Groovy ou Scala.

Dei uma pesquisada sobre Groovy e vi algumas coisas ruins sobre a performance dele. A performance é realmente notável? Vale a pena estudar Groovy?

Em termos de mercado de trabalho eu não sei. Mas se ela é uma ferramenta útil vale a pena.

cara… como eu te falei, eu to na estudando ainda… to na fase da Sintaxe da linguagem pra poder insvestir no GRails… Ouvi falar algo também sobre a performance, porém a idéia da linguagem Groovy é facilitar o Desenvolvimento WEB em Java, Sistemas não críticos…

Tenho um conhecido que está usando Groovy já misturado em seu código Java… Eu já quero, depois partir pro GRails…

Li em algum lugar que o criador do Groovy afirmou que se tivesse conhecido Scala antes, não teria criado o Groovy… Não te dou certeza, mas Scala tá em um caminho muito bom… Porém acho o Groovy mais comercial… Isso é só minha opnião, não posso te passar nada com certeza absoluta…

Abs []

É uma tecnologia que nao vai te agregar profissionalmente em nada, mas termos de puro e simples conhecimento é interessante.

Será? Se fosse assim então todo mundo ainda estaria na era do Cobol (se bem que o Java é o Cobol da década de '00 :slight_smile: )

Não acho que são inúteis profissionalmente.

Acredito que um grande diferencial destas linguagens (groovy, scala ou clojure) é justamente rodar na jvm.

Com isso, em empresas menos burocráticas, imagino que ocorrerá uma tendência para se mesclar fontes java com outras linguagens.

Especialmente quando estas linguagens se tornarem mais conhecidas e suas vantagens mais divulgadas.

Será? Se fosse assim então todo mundo ainda estaria na era do Cobol (se bem que o Java é o Cobol da década de '00 :slight_smile: )
[/quote]

E Scala é a pia da cozinha. Tem tudo dentro e fede.

Não acho que são inúteis profissionalmente.

Acredito que um grande diferencial destas linguagens (groovy, scala ou clojure) é justamente rodar na jvm.

Com isso, em empresas menos burocráticas, imagino que ocorrerá uma tendência para se mesclar fontes java com outras linguagens.

Especialmente quando estas linguagens se tornarem mais conhecidas e suas vantagens mais divulgadas.

[/quote]

Pode ser. Mas isso é uma coisa relativa, entende? Porque para você scala pode ser agradável, já para outro não. É tão relativo que no final o bytecode é o mesmo. Então qual a vantagem de se usar outra linguagem? Simplesmente comodidade, ou seja, depende da pessoa que usa.

do mesmo jeito que c++ é cômodo para mim.

O diferencial deve estar em realizar tarefas com mais produtividade. Digitar menos para realizar determinada coisa.

Um exemplo.
Em Scala é relativamente simples escrever certas coisas que precisariam de muitas linhas em Java, como filtrar coleções.
O problema é que é normalmente necessário escrever uma série de comentários para que um programador que venha a ler seu programa e não esteja muito acostumado com o paradigma funcional possa entender o que está ocorrendo (ou você mesmo, depois de um determinado tempo).
O que o programador Java resolve com um monte de fors e ifs, um programador Scala resolve com 2 ou 3 linhas, mas aí ele precisa escrever um comentário grande indicando o que ele está realmente querendo fazer.

Mas aí é que está, o custo de se misturar java com scala por exemplo, não é tão alto. Você gera o mesmo .class
Então, teoricamente, cada um poderia programar na linguagem que acha mais agradável.

Claro que se for uma coisa solta assim geraria bagunça.
Mas para módulos específicos, onde uma linguagem apresenta vantagens, você poderia usá-la de forma transparente para o resto do projeto.

Acredito que a vantagem seja as features de cada linguagem.

Scala, por exemplo, tem mecanismos para lidar melhor com concorrência, sobrecarga de operadores.
Clojure tem o mecanismo de transação para alteração de estado (similar a um banco de dados).

Você pode fazer as mesmas coisa em Java, mas com mais trabalho, mais código e estando mais propenso a erro.

[quote=juliocbq]Pode ser. Mas isso é uma coisa relativa, entende? Porque para você scala pode ser agradável, já para outro não. É tão relativo que no final o bytecode é o mesmo. Então qual a vantagem de se usar outra linguagem? Simplesmente comodidade, ou seja, depende da pessoa que usa.

do mesmo jeito que c++ é cômodo para mim.

O diferencial deve estar em realizar tarefas com mais produtividade. Digitar menos para realizar determinada coisa.[/quote]

Ah sim, cada um tem uma linguagem em que se é mais fluente.
Mas veja a diferença entre C++ e Scala para JVM. A integração é mais simples. Como você disse, o bytecode do Scala é o mesmo.
Essa facilidade de integração que acredito seja um diferencial que permitirá o uso comercial dessas linguagens.

Boa parte dessas linguagens para VM dizem precisar de menos código para realizar a mesma coisa.

Pra mim produtividade tem mais a ver com seu grau de proficiência na linguagem do que a linguagem em si.
Mas com certeza estas novas linguagens apresentam features que enchem os olhos e seria ótimo poder desfrutar disso.

[quote=dev.rafael]“O bom programador deve aprender uma nova linguagem de programação todo ano.”
Esse eu aprendi scala. Particular eu amo essa linguagem. Usando scala vc chega a uma redução de aproximadamento 30% no número de linhas do seu código em relação ao código Java quando vc está usando um framework Java, ou seja, um framework q ñ tira proveito das vantagens da sintaxe e da API da scala. Quando vc tem uma API/framework scala essa redução chega a ~60% no número de linhas. Desde q aprendi scala, quando classe Java q escrevo me deixa mais triste :cry: pois ñ consigo deixar de imaginar como seria mais fácil faze-lo em scala.

O futuro ainda é incerto mas eu apostaria q em scala. Ao menos o pessoal do Twitter apostou :smiley: ![/quote]

++

Só que no meu caso aprendi Lua. A linguagem tem poucos tipos (8 no total) sendo que 99% vc trabalha só com 4 (Função, Tabela, String e Number). O livro Programming in Lua é uma viagem pelo mundo da programação, muito bem escrito e aborda vários conceitos que eu sempre tive curiosida, como por exemplo, mostrar como se implementa herança de forma simples e concisa. Além de tudo foi criada por brazucas.

Realmente depois de ver uma linguagem mais dinâmica da uma tristeza programar em Java, mas dizer isso no GUJ pode gerar flame :twisted:

Atualmente estou aprendendo Python por causa do Google App Engine. Fiz uma app nele em Java utilizando a tecnologia, mas usando o Python fica bem melhor.

Quanto ao Scala já ouvi um amigo falar muito bem. Ele curte Lisp e disse que é bem parecido.

Também que o mercado busca muita gente que manja de .Net ou Java, e atualmente tenho visto procura por Adobe Flex.

Mas se vc pensar “fora da caixa” e pensa em montar seus próprios softwares, tanto faz a tecnologia que vc escolher.

Minha opinião: Fuja de qualquer tecnologia obscura que exija que você descreva sua intenção sob a forma de comentários, exceto se for a ÚNICA maneira de resolver o problema.

Acho que isso depende mais do programador que da tecnologia…

Alguns pontos:

Não, Scala não serve apenas para conhecimento, como ja dito a comunidade cresce a cada dia, e tem companhias adotando em seus produtos, pra citar algumas:

  • Twitter
  • Novell
  • Xerox
  • The Guardian
  • FourSquare
  • Sony
  • Siemens
  • e mais

Então como visto, tem gente grande usando, sem falar nas startups por ai a fora.

Com relação ao SEMPRE dito TANTO FAZ A LINGUAGEM, eu não acho que TANTO FAZ não, então tanto faz eu escrever 10.000 linha em cobol ou 800 em Scala ou outra coisa?? Tanto faz?? fala serio.

Scala, Ruby e outras tem açucares sintaticos que ajudam e muito na produtividade, Scala por ser tambem funcional resolve tambem um dos grandes problemas de concorrencia que é a alteração de estado, e ainda traz a abordagem de Actors semelhante ao Erlang, alem de outras tantas coisas, como a poderosa api de Collections, closures, etc.

Então eu acho um pouco sem senso dizer que TANTO FAZ a linguagem, as linguagens são melhores umas que as outras em determinados pontos e ainda umas são melhores que outras na media geral das features, entao não acho que tanto faz.