Scala - a linguagem que James Gosling usaria se não fosse o Java

11 respostas
T

java.net@JavaONE: Which Programming Language J. Gosling would use now, except Java?

"Durante um encontro no Community Corner (no estande “java.net” do JavaONE) com James Gosling, um participante fez uma pergunta interessante: “Que linguagem de programação você usaria agora sobre a JVM, exceto Java”? A resposta foi surpreendentemente rápida e muito clara: Scala.

11 Respostas

rodrigo_gomes

E para quem quiser ter uma visão geral sobre essa danada, esse semana saiu na Artima:

http://www.artima.com/scalazine/articles/scalable-language.html

peerless

rodrigo_gomes:
E para quem quiser ter uma visão geral sobre essa danada, esse semana saiu na Artima:

http://www.artima.com/scalazine/articles/scalable-language.html


n this article, which is based on Chapter 1 of the book, Programming in Scala, you’ll get an overview of the Scala language and insights into its design.

Muito bom artigo!

pintofree

Também saiu um artigo na Java magazine do mes passado, com o titulo Programação Funcional (ou quase) em Java,
neste artigo a linguagem Scala e abordada, Muito interessante o artigo recomendo/

T

Esta é aquela classe "Rational", para trabalhar com frações, que sempre cai como lição de casa. Em Scala ela é bastante simples e fácil de entender e melhor, de usar.

package example;

class Rational (n: Int, d: Int){
  // Maior divisor comum
  private def gcd (x : Int, y: Int) : Int = {
    if (x == 0) y
    else if (x < 0) gcd (-x, y)
    else if (y < 0) gcd (x, -y)
    else gcd (y % x, x)
  }
  // Isto faz a normalização
  private val g = gcd (n, d)
  val numer : Int = n / g
  val denom : Int = d / g
  // Note que definir "+" automaticamente redefine "+=". 
  def + (that : Rational) = 
    new Rational (numer * that.denom + that.numer * denom, denom * that.denom)
  def - (that : Rational) = 
    new Rational (numer * that.denom - that.numer * denom, denom * that.denom)
  def * (that : Rational) =
    new Rational (numer * that.numer, denom * that.denom)
  def / (that : Rational) =
    new Rational (numer * that.denom, denom * that.numer)
  def square = new Rational (numer * numer, denom * denom)
  override def toString() = {
    "" + numer + "/" + denom 
  }
}
mister_m

Faz um tempo que eu venho falando de Scala tanto em particular como aqui no GUJ, mas não gosto muito da abordagem de quem aprecia a linguagem na hora de fazer o marketing a seu respeito.

Embora com certeza as vantagens mais impressionantes no uso da linguagem venham da mudança de paradigma e a possibilidade de combinar programação funcional e OO, o fato é que a parte OO da linguagem deixa o Java no chinelo. O sistema de tipos do Scala deve fazer o tio James se perguntar por que ele não pensou nisso antes… :slight_smile:

Eu recomendo que qualquer um que tenha ficado interessado pelo James estar falando da linguagem procure aprender mais sobre a linguagem do ponto de vista do sistema de tipos e de funcionalidades como implicit conversions/views pra entender que só por ter coisas assim já valeria a pena a Sun injetar dinheiro na evolução e suporte à Scala como a próxima grande linguagem tipada.

Paulo_Silveira

mister__m:
Faz um tempo que eu venho falando de Scala tanto em particular como aqui no GUJ, mas não gosto muito da abordagem de quem aprecia a linguagem na hora de fazer o marketing a seu respeito.

Esse do marketing no caso seria o Gosling? HEheheheh. Acho que Scala seria a resposta esperada dele.

Scala vem sendo falada a bastante tempo pelos mais doidos do GUJ, como o Rafael:

http://guj.com.br/posts/list/30/39551.java#211374

O search traz bastantes resultados no GUJ. Vamos ver se o numero de mensagens no forum aumenta, ainda mais como esses frameworks a la RoR aparecendo com Scala

saoj

Acho que o único problema do Scala é o Ruby e o JRuby, não?

mister_m

Não, são coisas completamente distintas. Quando fazemos a escolha entre (J)Ruby e Java, um dos critérios é o uso de uma linguagem dinâmica x uma linguagem fortemente tipada. Scala já é fortemente tipada e não existe argumento a favor de usar Java, a linguagem, exceto pela evolução das ferramentas de apoio e disponibilidade de mão de obra. Basicamente. em condições iguais, Java nunca seria + apropriada que Scala para algum problema.

Paulo_Silveira

ruby tambem é fortemente tipada. muitas linguagens dinamicas sao fortemente tipadas.

acho que voce quis dizer estaticamente tipada.

mister_m

Paulo Silveira:
ruby tambem é fortemente tipada. muitas linguagens dinamicas sao fortemente tipadas.

acho que voce quis dizer estaticamente tipada.

Sim, quis dizer estaticamente tipada. Dá um desconto, uma semana de JavaOne sem dormir (e to indo pra uma conferência de Scala agora, aguardem mais info…)

peerless

pintofree:
Também saiu um artigo na Java magazine do mes passado, com o titulo Programação Funcional (ou quase) em Java,
neste artigo a linguagem Scala e abordada, Muito interessante o artigo recomendo/

Eu tbm gostei do artigo apesar de achar um pouco exagerado os artigos do Osvaldo, ele sai fora do foco algumas vezes e acaba fazendo uma mistureba (em quase todos seus artigos, hiuhiuhiuh), mas o importante é que tem muita qualidade.

Criado 9 de maio de 2008
Ultima resposta 10 de mai. de 2008
Respostas 11
Participantes 7