java2scala: Pontapé inicial

9 views
Skip to first unread message

Alexei Barbosa de Aguiar

unread,
Aug 27, 2008, 12:39:20 AM8/27/08
to scal...@googlegroups.com
Édson e Marcelo, já tenho trabalho para distribuir, já que estou
vendo outras partes do projeto.
O parser de Java já vem com testes unitários que fazem o seguinte.
Ele usar o parser para fazer o parsing de um código de teste que
exercita muitas das construções do Java. Depois, usa o visitor que
repete o código para devolver à forma original. Aí ele compara os dois
códigos fonte.
No nosso caso, teremos o código fonte Java de teste e um código
fonte Scala traduzido manualmente para testar o visitor que vamos fazer.
A tarefa é traduzir o código Java de teste para Scala (anexo).
Seria interessante que mais de uma pessoa traduzisse para
comparação. Essas diretrizes desta página
(http://lamp.epfl.ch/~emir/bqbase/2005/01/21/java2scala.html) podem ser
úteis.

O Édson já recebeu a chave do SourceForge. Amanhã (se funcionar),
copiarei o projeto para o repositório de lá. Assim, posso dar mais
explicações sobre os códigos já que vocês vão ter acesso. Inclusive,
vamos passar a usar a lista de lá para não poluir esta.

--
Verde Tecnologia

Alexei Barbosa de Aguiar
+55(85)8879.9005
+55(85)3274.6644
Skype: alexeiaguiar

TestAstToString.txt

Édson Rocha

unread,
Aug 27, 2008, 1:06:30 AM8/27/08
to scal...@googlegroups.com, java2sca...@lists.sourceforge.net
A lista desenvolvedores do java2scala é java2sca...@lists.sourceforge.net
Acredito que o primeiro passo seria o cadastro no sf.net, para que possamos providenciar permissões.

2008/8/27 Alexei Barbosa de Aguiar <ale...@verde.com.br>
package japa.parser.javacc;

import japa.parser.JavaParser;
import japa.parser.ParseException;
import japa.parser.ast.CompilationUnit;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;

@Deprecated
public class Teste<T extends List<int[]>, X> extends Object implements Serializable {

   Class clz1 = String.class;

   Class clz2 = (String.class);

   Class clz3 = int.class;

   Class clz4 = (int.class);

   int[] arr = new int[10];

   ;

   class Ugly {

       int x = 0;

       public static void main(String[] args) {
       }
   }

   ;

   @Deprecated
   int[][][][] arr2 = new int[10][2][1][0];

   float fff = 0x1.fffeP+127f;

   char cc = 'a';

   int[][] arr3 = { { 1, 2 }, { 3, 4 } };

   static int[] arr4[] = {};

   static {
       arr4 = new int[][] { { 2 }, { 1 } };
   }

   public final enum Teste {

       asc, def
   }

   public static enum Sexo {

       m, @deprecated
       f;

       public static enum Sexo_ implements Serializable {

       }

       private Sexo() {
       }
   }

   public static enum Enum {

       m(1) {

           void mm() {
           }
       }
       , f(2) {

           void mm() {
           }
       }
       ;

       int x;

       private Enum(int x) {
           this.x = x;
       }

       abstract void mm();
   }

   public <T> Teste(int x) {
       this.arr[0] = x;
       super.<T, E>check2(val1, val2);
       boolean b = true, y = false;
       abstract class X {

           public X() {
           }

           public void m() {
           }
       }
       @Deprecated
       final class Y extends X {

           public Y() {
               super();
               Y.super.m();
           }

           public Y(int y) {
               t.<Object>super();
           }

           public Y(int x) {
               this();
           }
       }
   }

   private class QWE extends Teste<List<int[]>, String> {

       @Deprecated
       final int z = 0;

       int i = (int) -1;

       public QWE(String... x) {
           <String>super(x[0]);
       }

       public QWE(int... x) {
           super(x[0]);
           i = x[0];
           assert true;
           assert 1 == 1 : 2;
           {
               int iii = 3;
               iii += 3;
           }
           label: {
               int iii = 1;
           }
           ;
           ;
           switch(i) {
           }
           ll: switch(i) {
               case 1:
                   System.out.println(1);
                   break ll;
               default:
                   {
                       System.out.println("default");
                       break;
                   }
               case 2:
                   System.out.println(1);
                   i++;
                   ++i;
           }
       }

       private synchronized int doSomething()[] {
           List<? extends Number> x = new ArrayList<Integer>();
           return new int[] { 1 };
       }
   }

   public static void main(String[] args) throws ParseException, IOException {
       int x = 2;
       CompilationUnit cu = parse(new File("src/japa/parser/javacc/Parser.java"));
       System.out.println(cu);
       Teste teste = new Teste(2);
       Teste.QWE qwe = teste.new QWE(1);
       if (1 + 1 == 2) {
           teste = null;
           teste = new Teste(1);
       } else {
           x = 3;
           teste = new Teste(1);
           x = 2;
       }
       if (true) x = 1; else x = 3;
       while (true) {
           while (x == 3) continue;
           break;
       }
       do {
           x++;
       } while (x < 100);
       do x++; while (x < 100);
       for (@Deprecated int i : arr4[0]) {
           x--;
       }
       for (@Deprecated final int i = 0, j = 1; i < 10; x++) {
           break;
       }
       int i, j;
       for (i = 0, j = 1; i < 10 && j < 2; i++, j--) {
           break;
       }
   }

   @AnnotationTest(value = "x")
   public static CompilationUnit parse(@Deprecated File file) throws ParseException, IOException {
       String a = ((String) "qwe");
       String x = ((String) clz1);
       int y = ((int) x);
       synchronized (file) {
           file = null;
           file = new File("");
       }
       try {
           if (file == null) {
               throw new NullPointerException("blah");
           }
       } catch (final NullPointerException e) {
           System.out.println("catch");
       } catch (RuntimeException e) {
           System.out.println("catch");
       } finally {
           System.out.println("finally");
       }
       try {
           if (file == null) {
               throw new NullPointerException("blah");
           }
       } finally {
           System.out.println("finally");
       }
       try {
           if (file == null) {
               throw new NullPointerException("blah");
           }
       } catch (RuntimeException e) {
           System.out.println("catch");
       }
       return JavaParser.parse(file);
   }

   private <Y> void x(Map<? extends X, ? super T> x) {
       @Deprecated Comparator c = new Comparator() {

           public int compare(Object o1, Object o2) {
               A<Integer> a = new <String>A<Integer>(new Integer(11), "foo") {
               };
               return 0;
           }

           @Override
           public boolean equals(Object obj) {
               return super.equals(obj);
           }
       };
   }

   public @interface AnnotationTest {

       String value() default "asd";

       @Deprecated
       int[] valueI() default { 1, 2 };

       AnnotationTest valueA1() default @AnnotationTest;

       AnnotationTest valueA2() default @AnnotationTest("qwe");

       AnnotationTest valueA3() default @AnnotationTest(value = "qwe", valueI = { 1 });
   }

   ;
}





--
Édson Rocha Patrício
www.verde.com.br

le-silva

unread,
Aug 27, 2008, 9:26:21 AM8/27/08
to scala-br
Sinceramente, não acho legal esse tipo de projeto, porque me remete ao
pensamento de "uma linguagem apenas".

Tudo bem que Scala seja, obviamente, superior a Java. Isso é
indiscutível. Mas, não acho que esse seja o sentimento para um projeto
como esse. Afinal de contas, é por isso que Scala é totalmente
compatível com Java, para que possa interoperar numa boa,
transparentemente.

Acho que a idéia é "extensibilidade". Sim, poder extender meus
programa com construções mais sofisticadas e flexiveis usando Scala; e
escrever coisas novas em Scala usando meu legado Java. Não converter
tudo que tenho em Java para Scala.

Senão, caimos no mesmo erro megalomaníaco da comunidade Java que pensa
que Java resolve todos os problemas computacinais do universo.
Infelizmente, um pensamento ultra-limitado.

Java, JRuby, Scala, etc, etc, etc... há tantas linguagens fantasticas!
Por que ter usar apenas uma?

Compartilho um pouco do que penso a respeito nesse post:

http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-de-programacao

Sou mais adepto de projetos poliglotas do que de projetos de
conversão.

MAS ESSA É SÓ A MINHA OPINIÃO!!!

Não se ofendam...

Abraço!


On 27 ago, 02:06, "Édson Rocha" <edsonpatri...@gmail.com> wrote:
> A lista desenvolvedores do java2scala é *
> java2scala-de...@lists.sourceforge.net*
> Acredito que o primeiro passo seria o cadastro no sf.net, para que possamos
> providenciar permissões.
>
> 2008/8/27 Alexei Barbosa de Aguiar <ale...@verde.com.br>
>
>
>
> >   Édson e Marcelo, já tenho trabalho para distribuir, já que estou vendo
> > outras partes do projeto.
> >   O parser de Java já vem com testes unitários que fazem o seguinte. Ele
> > usar o parser para fazer o parsing de um código de teste que exercita muitas
> > das construções do Java. Depois, usa o visitor que repete o código para
> > devolver à forma original. Aí ele compara os dois códigos fonte.
> >   No nosso caso, teremos o código fonte Java de teste e um código fonte
> > Scala traduzido manualmente para testar o visitor que vamos fazer. A tarefa
> > é traduzir o código Java de teste para Scala (anexo).
> >   Seria interessante que mais de uma pessoa traduzisse para comparação.
> > Essas diretrizes desta página (
> >http://lamp.epfl.ch/~emir/bqbase/2005/01/21/java2scala.html<http://lamp.epfl.ch/%7Eemir/bqbase/2005/01/21/java2scala.html>)

le-silva

unread,
Aug 27, 2008, 9:44:18 AM8/27/08
to scala-br
Só pra continuar um pouquinho mais com minha linha de raciocinio...

Acho que o que dá visibilidade a uma linguagem são projetos que
mostrem coisas legais que as pessoas podem fazer com a tal linguagem.

Aplicações!

Algo que alguém veja e diga: "Que aplicação show de bola que fizeram
com Scala! Caramba! Olha como ficou incrivel essa parte da aplicação.
Ah! Eles usaram aquele recurso fantástico de (sei lá!) atores! Puxa...
Fantástico!"

E, claro, um projeto open source, pra que vejam "como construimos"
usando os tais fantásticos recursos de Scala. Ai o camarada que olhar
o código pode dizer: "Caraca! Fizerem essa funcionalidade
impressionante só que esse pouquinho de linhas de código? Com muito
menos código do que teria que escrever em Java? Fabuloso!"

Isso faz com que as pessoas comecem a considerar o uso de Scala em seu
projetos comerciais/profissionais.

Porque, simplismente, ter um conversor que vai converter algo que já
está pronto, sinceramente, não trás muito ganho a uma corporação. Não
mesmo. Senão, já tinham inventado um conversor de Cobol pra Java e
pronto! Agora todos os banco vão usar Java! (Nem sei se tem, mas acho
que não... rsrsrs)

Fazer um projeto open source que faz uma poderosa integração entre
legado Java e novo código em Scala, mostrando a escalabilidade de
Scala sob todos os aspectos, creio eu, que daria muito mais
visibilidade a Scala.

MAIS UMA VEZ, MINHA OPINIÃO.

Abraço!


On 27 ago, 10:26, le-silva <leandrod...@gmail.com> wrote:
> Sinceramente, não acho legal esse tipo de projeto, porque me remete ao
> pensamento de "uma linguagem apenas".
>
> Tudo bem que Scala seja, obviamente, superior a Java. Isso é
> indiscutível. Mas, não acho que esse seja o sentimento para um projeto
> como esse. Afinal de contas, é por isso que Scala é totalmente
> compatível com Java, para que possa interoperar numa boa,
> transparentemente.
>
> Acho que a idéia é "extensibilidade". Sim, poder extender meus
> programa com construções mais sofisticadas e flexiveis usando Scala; e
> escrever coisas novas em Scala usando meu legado Java. Não converter
> tudo que tenho em Java para Scala.
>
> Senão, caimos no mesmo erro megalomaníaco da comunidade Java que pensa
> que Java resolve todos os problemas computacinais do universo.
> Infelizmente, um pensamento ultra-limitado.
>
> Java, JRuby, Scala, etc, etc, etc... há tantas linguagens fantasticas!
> Por que ter usar apenas uma?
>
> Compartilho um pouco do que penso a respeito nesse post:
>
> http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-d...
> ...
>
> mais »

Alexei Barbosa de Aguiar

unread,
Aug 27, 2008, 9:49:25 AM8/27/08
to scal...@googlegroups.com
le-silva escreveu:
Sinceramente, não acho legal esse tipo de projeto, porque me remete ao
pensamento de "uma linguagem apenas".
  
Uma linguagem apenas não resolve todas as necessidades, mas muitas geram custos desnecessários. O ideal é usarmos as linguagens de maior abrangência e expressividade para reduzir o número de linguagens e podermos focar mais nestas. Scala é muito forte neste sentido.

Tudo bem que Scala seja, obviamente, superior a Java. Isso é
indiscutível. Mas, não acho que esse seja o sentimento para um projeto
como esse. Afinal de contas, é por isso que Scala é totalmente
compatível com Java, para que possa interoperar numa boa,
transparentemente.
  
    Infelizmente ainda não é totalmente. Existem incompatibilidades. Mesmo que seja, será apenas unidirecional. De Scala, podemos usar tudo de Java, mas o contrário nunca vai acontecer, porque Scala é mais expressiva que Java.
    Também tem outra questão importante: Não é só questão sintática. A crise do hardware está impulsionando o uso do paradigma funcional. Como vamos transformar código Java legado em funcional para usarmos múltiplos cores ? E o custo de manutenção ?

Acho que a idéia é "extensibilidade". Sim, poder extender meus
programa com construções mais sofisticadas e flexiveis usando Scala; e
escrever coisas novas em Scala usando meu legado Java. Não converter
tudo que tenho em Java para Scala.
  
Você vai ver que progressivamente os frameworks, toolkits, etc. do Java vão ser adaptados para ter melhor uso em Scala. Um exemplo disso é o scala.swing que usa funções anônimas ao invés da mecânica de listeners do Java, que é mais burocrática. Outros simplesmente vão ser largados em nome de uma filosofia melhor, tipo o Lift que segue a filosofia do Ruby on Rais (se não me engano) e não a linhagem Java web.
Senão, caimos no mesmo erro megalomaníaco da comunidade Java que pensa
que Java resolve todos os problemas computacinais do universo.
Infelizmente, um pensamento ultra-limitado.
  
É uma pena. Isso dificulta a nossa missão de apresentar o Scala à comunidade.

Java, JRuby, Scala, etc, etc, etc... há tantas linguagens fantasticas!
Por que ter usar apenas uma?
  
Em compensação, porque não focar em poucas ? Diversidade é bom, mas misturar em um mesmo projeto tem custos. "O homem que toca sete instrumentos não toca bem nenhum deles". Anônimo.

Compartilho um pouco do que penso a respeito nesse post:

http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-de-programacao

Sou mais adepto de projetos poliglotas do que de projetos de
conversão.

MAS ESSA É SÓ A MINHA OPINIÃO!!!

Não se ofendam...
  
Tudo bem.

Alexei Barbosa de Aguiar

unread,
Aug 27, 2008, 10:00:05 AM8/27/08
to scal...@googlegroups.com
le-silva escreveu:
Só pra continuar um pouquinho mais com minha linha de raciocinio...

Acho que o que dá visibilidade a uma linguagem são projetos que
mostrem coisas legais que as pessoas podem fazer com a tal linguagem.

Aplicações!

Algo que alguém veja e diga: "Que aplicação show de bola que fizeram
com Scala! Caramba! Olha como ficou incrivel essa parte da aplicação.
Ah! Eles usaram aquele recurso fantástico de (sei lá!) atores! Puxa...
Fantástico!"

E, claro, um projeto open source, pra que vejam "como construimos"
usando os tais fantásticos recursos de Scala. Ai o camarada que olhar
o código pode dizer: "Caraca! Fizerem essa funcionalidade
impressionante só que esse pouquinho de linhas de código? Com muito
menos código do que teria que escrever em Java? Fabuloso!"

Isso faz com que as pessoas comecem a considerar o uso de Scala em seu
projetos comerciais/profissionais.
  
Estamos fazendo também. Segue um trecho de um email passado: "Estamos montando uma arquitetura para Domain Driven Development que vai dar muitos artigos. Tem JPA, Criteria, JEE, Junit para testar em JSE (fora do container), controle de trasação separado (à la AOP), injeção de dependências sem container, etc..."

Porque, simplismente, ter um conversor que vai converter algo que já
está pronto, sinceramente, não trás muito ganho a uma corporação. Não
mesmo. 
Redução de custo de manutenção, adequação às plataformas multi-core pela programação funcional, etc.

Senão, já tinham inventado um conversor de Cobol pra Java e
pronto! Agora todos os banco vão usar Java! (Nem sei se tem, mas acho
que não... rsrsrs)
  
Existe, e existem empresas especializadas nisso. Cursos, ferramentas, consultoria, etc. Um programador Cobol custa um absurdo, quando encontram ! A manuteção desses sistemas também é cara também por causa do paradigma ultrapassado.

Fazer um projeto open source que faz uma poderosa integração entre
legado Java e novo código em Scala, mostrando a escalabilidade de
Scala sob todos os aspectos, creio eu, que daria muito mais
visibilidade a Scala.
  
A integração é parte da linguagem e não de um projeto extra. Adaptações já estão sendo feitas para frameworks Java.

le-silva

unread,
Aug 27, 2008, 10:16:51 AM8/27/08
to scala-br
Você não precisa usar 3 mil e 500 linguagens em um projeto. Mas não há
mal nenhum em usar o melhor de 2 ou 3. Aliás, qualquer projetinho web
usa mais que isso, não usa? Java + SQL + HTML + JavaScript. Só ai já
foram 4.

Não acho então que misturar aumente o custo. Sabe por que? Porque você
pode ter times com conhecimento abrangente, com pessoas que sabem
extrair o melhor de cada tecnologia e aplica-la de forma objetiva e
otimizada. É melhor do que ficar reinventando a roda cada vez que um
novo problema ainda não resolvido na linguagem X surge, porque não se
pode usar a solução ultra master da linguagem Y. Isso sim reduz custo!

Mas isso não quer dizer que não acho que devamos usar linguagens com
maior abrangência e expressividade. Pelo contrario, com certeza
devemos. Mas também não acho que se fechar em uma única linguagem seja
a solução, porque de tempos em tempo haverá sempre o mesmo problema: A
linguagem atual está ficando obsoleta e está surgindo uma nova muito
melhor. Sempre é bom ter mais opções.

A crise dos multiplos cores ainda não está totalmente solucionada em
Scala, certo? Porque Java continua sendo o host de Scala. A pesar da
linguagem ser funcional e excelente para multi-processamento, o
problema ainda não foi esgotado, porque o modelo de threads do Java
não é como de Erlang. Mas, tudo bem, este é um outro assunto.

De qualquer forma, estão ai as opiniões... hehehe...

Ah! Não concordo com sua última colocação: "O homem que toca sete
instrumentos não toca bem nenhum deles"... hehehe... Afinal, o mundo
já percebeu que generalistas são mais úteis que especialistas.

Seja um especialista generalista: Conheça muito de muitas coisas!



On 27 ago, 10:49, Alexei Barbosa de Aguiar <ale...@verde.com.br>
wrote:
> >http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-d...
> ...
>
> mais »

le-silva

unread,
Aug 27, 2008, 10:20:22 AM8/27/08
to scala-br
Sim, claro, é coisa da linguagem fazer a integração do tipo "permitir
que se use uma classe Java em um código Scala". Mas não é disso que
estou falando. Estou falando de ter um projeto Java EE de exemplo
rodando e um projeto Scala integrado a este para fazer tarefas X, Y,
Z, mostrando como aproveitar o legado e ainda alavancar o
desenvolvimento com Scala.

É sobre isso que eu falava.


On 27 ago, 11:00, Alexei Barbosa de Aguiar <ale...@verde.com.br>
wrote:
> ...
>
> mais »

le-silva

unread,
Aug 27, 2008, 10:34:18 AM8/27/08
to scala-br
Iniciei uma thread no GUJ sobre isso, pra ouvir a opinião da galera de
lá também.

Acho que ampliar a discução sempre é bom...

Link: http://www.guj.com.br/posts/list/101268.java

Abraço!
> ...
>
> mais »

Alexei Barbosa de Aguiar

unread,
Aug 27, 2008, 10:44:27 AM8/27/08
to scal...@googlegroups.com
le-silva escreveu:
Você não precisa usar 3 mil e 500 linguagens em um projeto. Mas não há
mal nenhum em usar o melhor de 2 ou 3. Aliás, qualquer projetinho web
usa mais que isso, não usa? Java + SQL + HTML + JavaScript. Só ai já
foram 4.
  
Seu uso do termo linguagem é mai abrangente que o meu. Realmente são linguagens, mas me referia somente às de uso geral: Scala, Java, C++, C#, etc...

Não acho então que misturar aumente o custo. Sabe por que? Porque você
pode ter times com conhecimento abrangente, com pessoas que sabem
extrair o melhor de cada tecnologia e aplica-la de forma objetiva e
otimizada. É melhor do que ficar reinventando a roda cada vez que um
novo problema ainda não resolvido na linguagem X surge, porque não se
pode usar a solução ultra master da linguagem Y. Isso sim reduz custo!

Mas isso não quer dizer que não acho que devamos usar linguagens com
maior abrangência e expressividade. Pelo contrario, com certeza
devemos. Mas também não acho que se fechar em uma única linguagem seja
a solução, porque de tempos em tempo haverá sempre o mesmo problema: A
linguagem atual está ficando obsoleta e está surgindo uma nova muito
melhor. Sempre é bom ter mais opções.
  
Se a atual faz tudo que a antiga faz e melhor, por que não substituir ao invés de ficar usando as duas (depois de uma fase de transição)?
A crise dos multiplos cores ainda não está totalmente solucionada em
Scala, certo? 
Até onde enxergo, sim.

Porque Java continua sendo o host de Scala. 
A plataforma Java (como a .NET) serve de host para a linguagem Scala. Isso tem pouco impacto na programação funcional.

A pesar da
linguagem ser funcional e excelente para multi-processamento, o
problema ainda não foi esgotado, porque o modelo de threads do Java
não é como de Erlang. 
Mas o modelo de actors com recv em Scala, é como Erlang, até porque actors veio dela.

Mas, tudo bem, este é um outro assunto.

De qualquer forma, estão ai as opiniões... hehehe...

Ah! Não concordo com sua última colocação: "O homem que toca sete
instrumentos não toca bem nenhum deles"... hehehe... Afinal, o mundo
já percebeu que generalistas são mais úteis que especialistas.

Seja um especialista generalista: Conheça muito de muitas coisas!
  
Quanto mais conhecimento, melhor, claro, mas sua frase está parecendo o seguinte: "Oficina O Marcão, especializada em veículos nacionais, importados e outros". A energia (e o conhecimento) por cada linguagem reduz quando aumenta-se o número de linguagens. Veja bem, estou falando de linguagens de uso geral. Não se programa em HTML.

Alexei Barbosa de Aguiar

unread,
Aug 27, 2008, 10:46:35 AM8/27/08
to scal...@googlegroups.com
le-silva escreveu:
Sim, claro, é coisa da linguagem fazer a integração do tipo "permitir
que se use uma classe Java em um código Scala". Mas não é disso que
estou falando. Estou falando de ter um projeto Java EE de exemplo
rodando e um projeto Scala integrado a este para fazer tarefas X, Y,
Z, mostrando como aproveitar o legado e ainda alavancar o
desenvolvimento com Scala.

É sobre isso que eu falava.
  
Neste caso, qual é a dificuldade ? Já rodei feito em Scala servlet, EJB, usei Hibernate, etc... Apenas alguns macetezinhos.

mar...@hypequino.com

unread,
Aug 27, 2008, 11:01:14 AM8/27/08
to scal...@googlegroups.com
Opa, essa lista é show de bola...

Flame war hahahaha


Minha opinião:

O projeto é válido num outro contexto "como ficaria esse meu código
Java em Scala ?"... e aí o cara converte e vê que com 2 linhas ele
faz o que fazia em 20 hehehehe

Pense nisso, simples assim...

E eu tb sou a favor do "poliglotismo"...


Em 27/08/2008, le-silva <leand...@gmail.com> escreveu:
>
> Sinceramente, não acho legal esse tipo de projeto, porque me remete ao
> pensamento de "uma linguagem apenas".
>
> Tudo bem que Scala seja, obviamente, superior a Java. Isso é
> indiscutível. Mas, não acho que esse seja o sentimento para um projeto
> como esse. Afinal de contas, é por isso que Scala é totalmente
> compatível com Java, para que possa interoperar numa boa,
> transparentemente.
>
> Acho que a idéia é "extensibilidade". Sim, poder extender meus
> programa com construções mais sofisticadas e flexiveis usando Scala; e
> escrever coisas novas em Scala usando meu legado Java. Não converter
> tudo que tenho em Java para Scala.
>
> Senão, caimos no mesmo erro megalomaníaco da comunidade Java que pensa
> que Java resolve todos os problemas computacinais do universo.
> Infelizmente, um pensamento ultra-limitado.
>
> Java, JRuby, Scala, etc, etc, etc... há tantas linguagens fantasticas!
> Por que ter usar apenas uma?
>
> Compartilho um pouco do que penso a respeito nesse post:
>

> http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-de-programacao

> > > if (file == null) {
> > > throw new NullPointerException("blah");
> > > }
> > > } catch (final NullPointerException e) {
> > > System.out.println("catch");
> > > } catch (RuntimeException e) {
> > > System.out.println("catch");
> > > } finally {
> > > System.out.println("finally");
> > > }
> > > try {
> > > if (file == null) {
> > > throw new NullPointerException("blah");
> > > }
> > > } finally {
> > > System.out.println("finally");
> > > }
> > > try {
> > > if (file == null) {
> > > throw new NullPointerException("blah");
> > > }
> > > } catch (RuntimeException e) {
> > > System.out.println("catch");
> > > }

le-silva

unread,
Aug 27, 2008, 11:03:17 AM8/27/08
to scala-br
Não acho que deva permanecer perpetuamente programando em Java, acho
que deva haver uma transição sim. Mas guardada as devidas proporções,
não é bem assim. Hoje: "vamos migrar tudo pra Scala. Amanhã: "vamos
migrar tudo pra linguagem XPTO". Não é bem assim que funciona. Tanto
não é que web services estão ai à porta. Aliás, à porta nada, já
entraram faz tempo!

Acredito que dentro de uma plataforma (Java ou .NET) pode-se usar mais
de uma linguagem para alavancar o poder de desenvolvimento, já que
cada linguagem é melhor em uma área. Sim, estou falando de linguagem
de propósito geral.

A plataforma host - seja Java ou .NET - não impacta no "estilo" de
programação funcional. Não é sobre isso que eu estava falando. O que
eu estava falando era sobre multi-processamento. Eu disse que, apesar
de Scala ter o modelo de atores de Erlang (sim, a criadora dos
atores!), ela não tem o mesmo "resultado" de Erlang nesse campo, por
limitação da plataforma Java.

"Oficina O Marcão, especializada em veículos nacionais, importados e
outros".

Sei...

Só uma perguntinha: Você trabalha com desenvolvimento ágil ou
waterfall? Você também acredita em analista de sistemas?



On 27 ago, 11:44, Alexei Barbosa de Aguiar <ale...@verde.com.br>
wrote:
> le-silva escreveu:> Você não precisa usar 3 mil e 500 linguagens em um projeto. Mas não há
> ...
>
> mais »

le-silva

unread,
Aug 27, 2008, 11:05:57 AM8/27/08
to scala-br
A dificuldade não é minha! Eu também programo em Scala.

Agora, qual o objetivo dessa lista? Não é apresentar Scala para o
Brasil? Não é mostrar pra profissionais/empresas que eles podem
investir algumas boas fichas em Scala?

Pois então.................


On 27 ago, 11:46, Alexei Barbosa de Aguiar <ale...@verde.com.br>
wrote:
> le-silva escreveu:> Sim, claro, é coisa da linguagem fazer a integração do tipo "permitir
> ...
>
> mais »

Alexei Barbosa de Aguiar

unread,
Aug 27, 2008, 11:08:29 AM8/27/08
to scal...@googlegroups.com
le-silva escreveu:
Não acho que deva permanecer perpetuamente programando em Java, acho
que deva haver uma transição sim. Mas guardada as devidas proporções,
não é bem assim. Hoje: "vamos migrar tudo pra Scala. Amanhã: "vamos
migrar tudo pra linguagem XPTO". Não é bem assim que funciona. Tanto
não é que web services estão ai à porta. Aliás, à porta nada, já
entraram faz tempo!

Acredito que dentro de uma plataforma (Java ou .NET) pode-se usar mais
de uma linguagem para alavancar o poder de desenvolvimento, já que
cada linguagem é melhor em uma área. Sim, estou falando de linguagem
de propósito geral.

A plataforma host - seja Java ou .NET - não impacta no "estilo" de
programação funcional. Não é sobre isso que eu estava falando. O que
eu estava falando era sobre multi-processamento. Eu disse que, apesar
de Scala ter o modelo de atores de Erlang (sim, a criadora dos
atores!), ela não tem o mesmo "resultado" de Erlang nesse campo, por
limitação da plataforma Java.

"Oficina O Marcão, especializada em veículos nacionais, importados e
outros".

Sei...

Só uma perguntinha: Você trabalha com desenvolvimento ágil ou
waterfall? Você também acredita em analista de sistemas?
  
XP e este prega desenvolvedores ao invés da separação de funções. Só não entendi o que tem a ver com a discussão.

le-silva

unread,
Aug 27, 2008, 12:09:22 PM8/27/08
to scala-br
XP é bom. Também usamos práticas de XP. Na verdade temos um mix de "XP
+ Scrum".

Não, nada de mais, só pra saber qual é a sua cultura de
desenvolvimento. Se tradicional, com especialista disso e daqui, ou se
ágil, com pessoas mais dinâmicas.


On 27 ago, 12:08, Alexei Barbosa de Aguiar <ale...@verde.com.br>
> ...
>
> mais »

mar...@hypequino.com

unread,
Aug 27, 2008, 12:33:45 PM8/27/08
to scal...@googlegroups.com
Leandro

Sim, essa é a proposta, apresentar a linguagem e criar uma comunidade
em torno da mesma, como existe para Java, Python, Ruby e por aí
vai...

Temos pessoas aqui altamente gabaritadas pra isso. E quando digo
altamente não é puxa saquismo. Só tem fera aqui, até onde ví e
pelos mails recebidos.

Compartilho de sua opinião e da do Alexei, e no fundo acho que estão
falando quase o mesmo mas com palavras diferentes... a realidade
caminha pra "várias linguagens" num projeto, temos que dizer onde
Scala é bom...

Traduzir a documentação, elaborar um site ou blog, fazer um
tradutor, tudo isso ajuda muito.

Vamos em frente.

Marcelo

Em 27/08/2008, le-silva <leand...@gmail.com> escreveu:
>

> A dificuldade não é minha! Eu também programo em Scala.
>
> Agora, qual o objetivo dessa lista? Não é apresentar Scala para o
> Brasil? Não é mostrar pra profissionais/empresas que eles podem
> investir algumas boas fichas em Scala?
>
> Pois então.................
>
>

> On 27 ago, 11:46, Alexei Barbosa de Aguiar <ale...@verde.com.br>


> wrote:
> > le-silva escreveu:> Sim, claro, é coisa da linguagem fazer a integração do tipo "permitir
> > > que se use uma classe Java em um código Scala". Mas não é disso que
> > > estou falando. Estou falando de ter um projeto Java EE de exemplo
> > > rodando e um projeto Scala integrado a este para fazer tarefas X, Y,
> > > Z, mostrando como aproveitar o legado e ainda alavancar o
> > > desenvolvimento com Scala.
> >
> > > É sobre isso que eu falava.
> >
> > Neste caso, qual é a dificuldade ? Já rodei feito em Scala servlet, EJB,
> > usei Hibernate, etc... Apenas alguns macetezinhos.
> >
> >
> >

> > > On 27 ago, 11:00, Alexei Barbosa de Aguiar <ale...@verde.com.br>
> > > wrote:
> >
> > >> le-silva escreveu:
> >

> > >>>> Sinceramente, não acho legal esse tipo de projeto, porque me remete ao
> > >>>> pensamento de "uma linguagem apenas".
> >

> > >>>> Tudo bem que Scala seja, obviamente, superior a Java. Isso é
> > >>>> indiscutível. Mas, não acho que esse seja o sentimento para um projeto
> > >>>> como esse. Afinal de contas, é por isso que Scala é totalmente
> > >>>> compatível com Java, para que possa interoperar numa boa,
> > >>>> transparentemente.
> >

> > >>>> Acho que a idéia é "extensibilidade". Sim, poder extender meus
> > >>>> programa com construções mais sofisticadas e flexiveis usando Scala; e
> > >>>> escrever coisas novas em Scala usando meu legado Java. Não converter
> > >>>> tudo que tenho em Java para Scala.
> >

> > >>>> Senão, caimos no mesmo erro megalomaníaco da comunidade Java que pensa
> > >>>> que Java resolve todos os problemas computacinais do universo.
> > >>>> Infelizmente, um pensamento ultra-limitado.
> >

> > >>>> Java, JRuby, Scala, etc, etc, etc... há tantas linguagens fantasticas!
> > >>>> Por que ter usar apenas uma?
> >

> > >>>> Compartilho um pouco do que penso a respeito nesse post:
> >
> > >>>>http://codezone.wordpress.com/2008/02/04/nao-ha-uma-unica-linguagem-d...
> >
> > >>>> Sou mais adepto de projetos poliglotas do que de projetos de
> > >>>> conversão.
> >
> > >>>> MAS ESSA É SÓ A MINHA OPINIÃO!!!
> >
> > >>>> Não se ofendam...
> >

le-silva

unread,
Aug 27, 2008, 12:49:10 PM8/27/08
to scala-br
*** a realidade caminha pra "várias linguagens" num projeto, temos que
dizer onde Scala é bom ***

Isso!

=)


On 27 ago, 13:33, marc...@hypequino.com wrote:
> Leandro
>
> Sim, essa é a proposta, apresentar a linguagem e criar uma comunidade
> em torno da mesma, como existe para Java, Python, Ruby e por aí
> vai...
>
> Temos pessoas aqui altamente gabaritadas pra isso. E quando digo
> altamente não é puxa saquismo. Só tem fera aqui, até onde ví e
> pelos mails recebidos.
>
> Compartilho de sua opinião e da do Alexei, e no fundo acho que estão
> falando quase o mesmo mas com palavras diferentes... a realidade
> caminha pra "várias linguagens" num projeto, temos que dizer onde
> Scala é bom...
>
> Traduzir a documentação, elaborar um site ou blog, fazer um
> tradutor, tudo isso ajuda muito.
>
> Vamos em frente.
>
> Marcelo
>
> ...
>
> mais »

Édson Rocha

unread,
Aug 27, 2008, 1:26:04 PM8/27/08
to scal...@googlegroups.com, java2scala-devel-request
Quem quiser participar da lista java2sca...@lists.sourceforge.net mesmo que não queria participar do projeto, deve mandar uma mensagem para Java2scala-d...@lists.sourceforge.net com a palavra subscribe no assunto ou no corpo da mesma.

Para esse procedimento não é necessário ter login no sf.net.

2008/8/27 Édson Rocha <edsonp...@gmail.com>

Marcelo Castellani

unread,
Aug 27, 2008, 10:06:48 PM8/27/08
to scal...@googlegroups.com
Pra conhecimento moçada, questionei ao Philippe o que ele achava da
história, veja o que ele acha:

> The Scala-BR, a brazilian community, is studing to develop a tool called
> java2scala, a "translator" of Java Source Code to Scala Source Code,
> what you think about it?

I think such a tool could be useful. However, the resulting code would
(most likely) not use typical Scala idioms such as (higher-order)
functions, or pattern matching. So, to make the code "real" Scala (nice,
concise), one has to refactor the code by hand. But, of course, it is
still less work than translating everything by hand.

Have you looked at jatran (http://code.google.com/p/jatran/)? As far as
I know it is not fully automatic which means that the resulting Scala
code often still doesn't compile without errors. But, maybe it has
improved in the meantime.

le-silva

unread,
Aug 28, 2008, 9:14:00 AM8/28/08
to scala-br
É, esse é um outro ponto ainda...

Geração de código a partir de um modelo (seja ele em UML, ou uma
linguagem de programação qualquer) nunca deu muito certo...

O ideal em uma migração é como ele disse mesmo: Um humano escrever o
código. Porque há decisões de design que um programador terá muito
mais subsidios pra tomar do que um programa de computador. Assim o
design não fica quadradão, e emprega-se muito mais do poder da "nova"
linguagem.



On 27 ago, 23:06, "Marcelo Castellani" <marc...@hypequino.com> wrote:
> Pra conhecimento moçada, questionei ao Philippe o que ele achava da
> história, veja o que ele acha:
>
> > The Scala-BR, a brazilian community, is studing to develop a tool called
> > java2scala, a "translator" of Java Source Code to Scala Source Code,
> > what you think about it?
>
> I think such a tool could be useful. However, the resulting code would
> (most likely) not use typical Scala idioms such as (higher-order)
> functions, or pattern matching. So, to make the code "real" Scala (nice,
> concise), one has to refactor the code by hand. But, of course, it is
> still less work than translating everything by hand.
>
> Have you looked at jatran (http://code.google.com/p/jatran/)?As far as

Alexei Barbosa de Aguiar

unread,
Aug 28, 2008, 9:20:31 PM8/28/08
to scal...@googlegroups.com
    É claro que um desenvolvedor vai poder fazer uma tradução bem melhor que um software. Não é por isso que o projeto seja desnecessário. O que não posso conceber é o desenvolvedor desperdiçar o precioso tempo fazendo uma tarefa braçal, repetitiva e tediosa. Já fiz isso manualmente e é definitivamente tarefa para software. Depois de traduzido literalmente pelo java2scala, fazemos a tarefa intelectual de adaptar à nova cultura que, inclusive, é sujeita a diferentes pontos de vista, com várias possibilidades.
    No mais, para encerrar a questão, se está na lista dos desejos (wish list) do plugin do Eclipse (http://lampsvn.epfl.ch/trac/scala/wiki/EclipsePluginWishlist) é porque tem um volume considerável de gente que quer usar. Se tem gente querendo usar, justifica o desenvolvimento. Quem achar que é melhor manter o codigo legado Java misturado com Scala, ao invés de ter um projeto puro em Scala para tirar máximo proveito da nova linguagem, é muito simples: Basta não usar !  ;-) E viva a democracia e a diversidade de opinião.

le-silva escreveu:

Marcelo Castellani

unread,
Aug 28, 2008, 11:03:04 PM8/28/08
to scal...@googlegroups.com
Calma gente...
 
Muita calma...
 
O projeto é legal, primeiro por que será de uma visibilidade enorme e segundo por que é difícil de fazer, segundo acho que vai ajudar bastante o pessoal a migrar pra Scala...
 
Mas tanto o Phillip como o Leandro estão certos... nada substitui o desenvolvedor... porém se tiver um ponto de partida ótimo, ajuda bastante...

Alexei Barbosa de Aguiar

unread,
Aug 28, 2008, 11:30:07 PM8/28/08
to scal...@googlegroups.com
Marcelo Castellani escreveu:
Calma gente...
 
Muita calma...
Bom, pelo menos eu estou calmíssimo. :-)
 
O projeto é legal, primeiro por que será de uma visibilidade enorme e segundo por que é difícil de fazer, segundo acho que vai ajudar bastante o pessoal a migrar pra Scala...
 
Mas tanto o Phillip como o Leandro estão certos... nada substitui o desenvolvedor... porém se tiver um ponto de partida ótimo, ajuda bastante...
Eu também disse a mesma coisa

Marcelo Castellani

unread,
Aug 29, 2008, 7:28:38 PM8/29/08
to scal...@googlegroups.com
Alexei e Edson
 
Perdi meus mails num problema no meu pen drive... como faço pra entrar no projeto no sorceforge?
 
Marcelo
Reply all
Reply to author
Forward
0 new messages