Scala 2.8 beta com muitas novidades

A linguagem Scala, que faz muito barulho e é comentada diversas vezes por James Gosling, lançou sua versão 2.8 na semana passada:
http://www.scala-lang.org/node/4587

Além de diversas novidades na linguagem, sem dúvida um dos maiores atrativos é o plugin para o Eclipse, que agora utiliza internamente o JDT, criando uma integração muito mais harmoniosa que as versões antigas. Essa é uma grande oportunidade para você conhecer essa linguagem, sem sair do seu ambiente de desenvolvimento. Para isso, basta adicionar a URL de updatesite dessa versão beta:
http://www.scala-lang.org/scala-eclipse-plugin-beta-preview

Para saber mais:


Conceitualmente acho Scala uma linguagem incrível. Agora sintaticamente…não consigo gostar da sintaxe da linguagem. De qualquer forma, o plugin do Eclipse vai ser de grande ajuda!

Adoro Scala. É uma linguagem desenhada sem aquela mentalidade do desenvolvedor burro. Só pra comparar, o Java foi pensado assim: “Vamos impedir a sobrecarga de operadores porque o programador Java é tão burro que pode usá-lo para coisas sem sentido.” ou “Precisamos de exceções checadas porque o programador Java é tão burro que pode esquecer de tratar erros.”, e por aí vai, permeando toda a linguagem e passando aos principais frameworks disponíveis. Scala, ao contrário, tem “features” que chegam até a tornar o código ilegível (como métodos marcado com implicit ou os objetos com métodos apply() e unapply()), porém, ninguém é obrigado a usá-las e, se usado apropriadamente, pode facilitar a vida na criação de APIs mais simples. Ou seja, é bom porque põe a responsabilidade de volta na mão dos desenvolvedores.

Scala não é uma linguagem que se pega numa semana. Até porque, com pouco tempo de uso, parece apenas o Java com sintaxe invertida (e não, não acho isso uma coisa ruim). A virtude dessa linguagem aparece aos poucos, quando você precisa encapsular uma API e percebe que existem maneiras bastante consistentes de realizar isso.

Pena que só é apreciada por rubistas que precisam de um módulo baixo nível para JRuby.

Leonardo3001, não foi justamente para tirar a responsabilidade excessiva das mãos do desenvolvedor que abandonamos as Linguagens C e C++?

Não. O Leonardo3001 se referiu a features da linguagem que estão disponíveis para auxiliar o desenvolvedor, não a responsabilidade excessiva existente em C/C++ que tem a ver com aspectos de baixo nível que o programador precisa lidar e que acabam sendo irrelevantes para o resultado final.

Ao meu ver, além da sintaxe outro problema da Scala é não ser funcional, e sim orientada a objetos.

Se tem uma outra linguagem que pretendo olhar com mais carinho é Scala…
Fui dar uma olhada uma época e até companhei mais de perto o projeto de framework web pra Scala, o Lift, e não gostei nada do framework, ai desanimei de estudar mais a linguagem e aplicar em algo mais “real”, mas pretendo voltar.

[quote=Luiz Aguiar]Se tem uma outra linguagem que pretendo olhar com mais carinho é Scala…
Fui dar uma olhada uma época e até companhei mais de perto o projeto de framework web pra Scala, o Lift, e não gostei nada do framework, ai desanimei de estudar mais a linguagem e aplicar em algo mais “real”, mas pretendo voltar.
[/quote]

Realmente, quem esta acostumado com a simplicidade de frameworks como Rails, Django e Compojure é dificil digerir esse tal de Lift.

Mas o grande benefício de linguagens como Scala, Clojure é no suporte a paralelismo e concorrencia (principalmente Clojure), onde Ruby e Python são fracos.

Pra fazer web site qualquer coisa ta valendo, até o velho Java.

Quem abandonou o C \ C++? Elas são respectivamente a 2 e 4 linguagem do ranking do tiobe.

Vc acha que deixando a linguagem mais proxima de um linguagem funcional, melhoraria a adoção da linguagem?
Eu acho que so pioraria. O que normalmente eu vejo são as pessoas olharem funções em erlang ou haskell que contem por exemplo, tail recursion, acharem a linguagem incompreendivel.

Foram que nessas linguagens “puramente funcionais” normalmente não existe um estrutura de repetição (Erlang, Haskell e Lisp são um exemplo disso, não existe for nessas linguagens) te forçando a escrever tudo de forma recursiva.

Fora que algumas dessas linguagens “puramente funcionais” não premitem que vc valor duas vezes a mesma variavel. Dando aquele erro “variable X is already bond”.

Acho que aproximando scala ainda mais com linguagens funcionais pioraria sua adoção.

Concordo com vc. Mas porque acha que estou preocupado com adoção da linguagem?

Eu quero mais programar numa linguagem funcional porque assim tenho códico mais claro e de facil manutençao. Acho legal ter uma boa comunidade em torno da linguagem, no caso de Lisp acho a comunidade bastante prestativa, o resto que va programar em assembler!

Não acho esse o problema do Scala. Acredito que essa mistura de paradigmas seja bastante pragmática, até porque, nem todo mundo conhece tão bem o paradigma funcional quanto o orientado a objetos (eu incluso).

O interessante pra mim é que eu posso usar OO e usar uma pitada aqui e ali com coisas que só se vê em linguagens funcionais, como a classe Option ao invés de um retorno nulável.

O plugin ainda tem que melhorar muito, mas já é um grande passo ter o cara que desenvolveu a linguagem engajado no desenvolvimento do plugin.

Scala é uma linguagem que tem grande potencial.

abs

Até onde estudei a linguagem Scala, ele é tanto orientada a objeto quanto possui recursos de funcional. Inclusive tem a questão das variaveis poderem ser definidas funcionalmente ou orientada a objeto. Dá uma olhada no site ou no livro da linguagem (val, var)

Tambem fiquei sem entender esta tua afirmação.

Ainda não comecei a estudar scala(pretedendo fazer isto esta semana), mas que tem alguma coisa funcional ae tem.

Não acho esse o problema do Scala. Acredito que essa mistura de paradigmas seja bastante pragmática, até porque, nem todo mundo conhece tão bem o paradigma funcional quanto o orientado a objetos (eu incluso).

O interessante pra mim é que eu posso usar OO e usar uma pitada aqui e ali com coisas que só se vê em linguagens funcionais, como a classe Option ao invés de um retorno nulável.
[/quote]

A grande vantagem do paradigma funcional quando me refiro a código mais claro e de fácil manutenção é baseado justamente na idéia contrária. Programação livre de efeitos colaterais, com uma pitada aqui e ali de estado mutável.

Tambem fiquei sem entender esta tua afirmação.

Ainda não comecei a estudar scala(pretedendo fazer isto esta semana), mas que tem alguma coisa funcional ae tem.

[/quote]

Uma linguagem que possui recursos funcionais como Scala não é propriamente uma linguagem funcional.

MENSAGEM EDITADA PELA MODERAÇÃO.

Tambem fiquei sem entender esta tua afirmação.

Ainda não comecei a estudar scala(pretedendo fazer isto esta semana), mas que tem alguma coisa funcional ae tem.

[/quote]

Uma linguagem que possui recursos funcionais como Scala não é propriamente uma linguagem funcional.[/quote]

Não é puramente funcional, chamemos de hibrida entao :wink:

Plugin Scala para Netbeans:

Mais info:

http://wiki.netbeans.org/Scala68v1

Tambem fiquei sem entender esta tua afirmação.

Ainda não comecei a estudar scala(pretedendo fazer isto esta semana), mas que tem alguma coisa funcional ae tem.

[/quote]

Uma linguagem que possui recursos funcionais como Scala não é propriamente uma linguagem funcional.[/quote]

Não é puramente funcional, chamemos de hibrida entao :wink: [/quote]

Chame como achar melhor, mas o ponto é que Scala não é funcional o suficiente, é apenas uma versão moderna do Java feita de cientistas para cientistas, ou seja, sem muita preocupação com aplicações praticas do dia-a-dia.