Scala: Bringing Future Languages to the JVM

Ahh…tudo conversa fiada. Falaram que java ia substituir c++ e c e nunca aconteceu. Agora que java amadureceu, dizem que será substituída.
Papo de quem gosta de marketing e time de futebol.[/quote]

Java substituiu C++ em muitos lugares. Isto sem falar de Delphi e COBOL. Agora nunca vi ninguém a sério afirmando que Java iria substituir C, até porque C não bateu de frente com o Java já que lidam com aplicações bastante distintas.[/quote]

Me cita um lugar que c++ perdeu pro java? Até hoje vejo as mesmas empresas usando c++. Inclusive a própria SUN, em seus produtos.

[quote=juliocbq]
Me cita um lugar que c++ perdeu pro java? Até hoje vejo as mesmas empresas usando c++. Inclusive a própria SUN, em seus produtos.[/quote]

Parece que closures não vingou no Java 7 e muito menos vai ser implementado nas outras versões, mas você pode usar em Scala.

que nada, estudem isso, Scala nao chega aos pés :-o

:arrow: Jonas Bonér - Real-World Scala: Fault-tolerant Concurrent Asynchronous Components

Ai ai… de novo a velha discussão “minha linguagem é melhor que a sua”, que nada mais é do que a repercussão do jardim de infância “meu pai é mais legal que o seu”…

Sabem o que realmente acho? Numa boa: 99% dos argumentos que escuto a respeito da “morte do Java” como linguagem se fundamentam na ausência de uma ou outra feature presente em outra linguagem (normalmente alguma linguagem mais nova).

E dai eu tiro as seguintes conclusões:

  • O mesmo argumento pode ser aplicado a todas as demais linguagens, pois nenhuma possui todos os recursos possíveis. Logo, estão todas morrendo (inclusive Scala)

  • Se a sua linguagem implementasse todos os recursos (o que nem sei ser possível), será que ela, em si, seria usável? Sinceramente, acredito que seria um monstrinho bem desagradável.

E escuto muito o argumento “Java não tem closures”. Será que o mundo vai acabar porque em Java não tem este recurso? Afinal de contas, sem este recurso conseguimos andar bem, não? Será que Java vai deixar de ser tão popular só por não ter closures? Digo isto porque até hoje nunca vi alguém dizer que não optou por Java pela ausência deste recurso.

Outra coisa que invalida BEM pra mim todo este papo furado: não gosta de Java? Use outra linguagem em conjunto. Eu por exemplo detesto lidar com XML em Java. Em Groovy é muito mais fácil. Vou abandonar 100% o Java por causa disto? Não: mesclo os dois (lembram-se de que no fundo é tudo bytecode?) e obtenho o melhor dos dois mundos.

Desculpem o desabafo, mas é que estou realmente cansado deste papinho furado da “morte da linguagem X”.

PS:
só pra lembrar: Cobol que todo mundo diz estar morto há décadas ainda é bem presente viu? Imagine Java, C/C++ então… Aff…

[quote=kicolobo]Ai ai… de novo a velha discussão “minha linguagem é melhor que a sua”, que nada mais é do que a repercussão do jardim de infância “meu pai é mais legal que o seu”…

Sabem o que realmente acho? Numa boa: 99% dos argumentos que escuto a respeito da “morte do Java” como linguagem se fundamentam na ausência de uma ou outra feature presente em outra linguagem (normalmente alguma linguagem mais nova).

E dai eu tiro as seguintes conclusões:

  • O mesmo argumento pode ser aplicado a todas as demais linguagens, pois nenhuma possui todos os recursos possíveis. Logo, estão todas morrendo (inclusive Scala)

  • Se a sua linguagem implementasse todos os recursos (o que nem sei ser possível), será que ela, em si, seria usável? Sinceramente, acredito que seria um monstrinho bem desagradável.

E escuto muito o argumento “Java não tem closures”. Será que o mundo vai acabar porque em Java não tem este recurso? Afinal de contas, sem este recurso conseguimos andar bem, não? Será que Java vai deixar de ser tão popular só por não ter closures? Digo isto porque até hoje nunca vi alguém dizer que não optou por Java pela ausência deste recurso.

Outra coisa que invalida BEM pra mim todo este papo furado: não gosta de Java? Use outra linguagem em conjunto. Eu por exemplo detesto lidar com XML em Java. Em Groovy é muito mais fácil. Vou abandonar 100% o Java por causa disto? Não: mesclo os dois (lembram-se de que no fundo é tudo bytecode?) e obtenho o melhor dos dois mundos.

Desculpem o desabafo, mas é que estou realmente cansado deste papinho furado da “morte da linguagem X”.

PS:
só pra lembrar: Cobol que todo mundo diz estar morto há décadas ainda é bem presente viu? Imagine Java, C/C++ então… Aff…[/quote]

Falou bonito! (clap clap clap)

[quote=kicolobo]Ai ai… de novo a velha discussão “minha linguagem é melhor que a sua”, que nada mais é do que a repercussão do jardim de infância “meu pai é mais legal que o seu”…

[/quote]
Bom, você pode usar Máquina de Escrever e outra pessoa pode usar Computador , mas o entendimento não é se Java é melhor a verdade é que Scala é extramente mais eficiênte, você escreve menos código, assim tem menos erro, menos bugs, mais agilidade e mais dinheiro.O que é complexo é a abstração que Scala se envolve e isso esta ligado a conceitos também na transferência de conhecimento.Quando se trata de tecnologia a minima vantagem pode fazer diferença e na certa é gritante mesmo, você diz sobre closures, não é que java não tem é porque não é possivel pelo design a implementar.Em Scala o diamente da morte não acontece a linguagem sabe usar isso com muito mais proeficiência do em que C++, e em Java isso já não é possivel. A forma de Equacionar soluções e aliar OO+FP é um avanço pra uma linguagem que leva consigo uma arquitetura que escala pra qual ambiente e tecnologia.

pois é. já mataram um monte de linguagens ae, mas o que realmente vejo é o contrário. Quanto mais madura, mais a linguagem é utilizada. Ao contrário dos times de futebol, que certas empresas criam para vender camisetas e tendências.

[quote=juliocbq]pois é. já mataram um monte de linguagens ae, mas o que realmente vejo é o contrário. Quanto mais madura, mais a linguagem é utilizada. Ao contrário dos times de futebol, que certas empresas criam para vender camisetas e tendências.
[/quote]

Me responde essa, o conceito de full-stack esta na linguagem ou na arquitetura ?

Marcio, quanta contradição em um único parágrafo. Me explica melhor isto aqui:
primeiro você diz:

Primeiro diz que o assunto não é se Java é melhor ou pior, mas em seguida diz que Scala é mais eficiente que Java?

Continuando:
em seguida diz que Scala é mais poderosa e diz:

Se é mais complexa, é mais difícil, se é mais difícil, qual a vantagem?

Ahhn??? Explica melhor isto aqui. Realmente tá MUITO avançado pra qualquer um compreender.

Outro ponto esquisito. Cara: em Java também se faz isto. Me lembro de um artigo fascinante que li na Java Magazine uma vez sobre “Java Funcional”, em que básicamente era exposto como aplicar conceitos da programação funcional na orientação a objetos (e por consequência, Java). (acho que era do Diego Doelderling (desculpem-me pela grafia) o texto)
Ter lá seus construtores nativos que facilitem a adoção da programação funcional é bacana, uma funcionalidade a mais, mas mesmo assim, não significa a morte das demais.

Continuando…

Outro papinho furado: “se você escreve menos código, sua linguagem é melhor”.
Não. Não necessáriamente. Quer ver porque é furado?

O argumento “minha linguagem é poderosa porque escrevo menos código” possui as seguintes falácias:

  • Sim, você escreve menos código, mas para entender o que é aquilo que escreveu, é necessário um ferramental teórico BEM maior. Como consequência, seu domínio daquele código diminui.
  • Se é mais complexo de aprender, leva mais horas para começar a se produzir alguma coisa decente. Consequentemente, o seu argumento de que

vai pro saco também.

Continuando de novo…
eu sei que não foi você que divirtuou o tópico, que começou até bem, apresentando Scala. É que realmente tenho muita preguiça desta postura “menino empolgado com brinquedo novo” que esnoba todo o resto sem a MENOR fundamentação que vá além do “viva! brinquedo novo!”

:thumbup: Esse brainfuck é o tipo ótimo de linguagem para que você garanta eternamente seu emprego. Por mais que você documente o método nunca ninguém irá entender mesmo, hahahaha.

Eu tenho uma sugestão. Pq o Marcio não cria o tópico “Scala é melhor que LISP?”, e ele e o thiagosc ficam eternamente presos discutindo por lá?

++++++++++++++++++++++

Que alegria!! Bom que fiquem num deadlock para nunca mais importunarem ninguém.

[quote=kicolobo]Ai ai… de novo a velha discussão “minha linguagem é melhor que a sua”, que nada mais é do que a repercussão do jardim de infância “meu pai é mais legal que o seu”…

Sabem o que realmente acho? Numa boa: 99% dos argumentos que escuto a respeito da “morte do Java” como linguagem se fundamentam na ausência de uma ou outra feature presente em outra linguagem (normalmente alguma linguagem mais nova).

E dai eu tiro as seguintes conclusões:

  • O mesmo argumento pode ser aplicado a todas as demais linguagens, pois nenhuma possui todos os recursos possíveis. Logo, estão todas morrendo (inclusive Scala)

  • Se a sua linguagem implementasse todos os recursos (o que nem sei ser possível), será que ela, em si, seria usável? Sinceramente, acredito que seria um monstrinho bem desagradável.

E escuto muito o argumento “Java não tem closures”. Será que o mundo vai acabar porque em Java não tem este recurso? Afinal de contas, sem este recurso conseguimos andar bem, não? Será que Java vai deixar de ser tão popular só por não ter closures? Digo isto porque até hoje nunca vi alguém dizer que não optou por Java pela ausência deste recurso.

Outra coisa que invalida BEM pra mim todo este papo furado: não gosta de Java? Use outra linguagem em conjunto. Eu por exemplo detesto lidar com XML em Java. Em Groovy é muito mais fácil. Vou abandonar 100% o Java por causa disto? Não: mesclo os dois (lembram-se de que no fundo é tudo bytecode?) e obtenho o melhor dos dois mundos.

Desculpem o desabafo, mas é que estou realmente cansado deste papinho furado da “morte da linguagem X”.

PS:
só pra lembrar: Cobol que todo mundo diz estar morto há décadas ainda é bem presente viu? Imagine Java, C/C++ então… Aff…[/quote]

Ta vendo, teve que aprender Grovvy pra ser mais produtivo em Java. Bom, primeiro vc não precisa desaprender Java, a não ser que sofra de algum tipo de efeito colateral indesejado por causa disso. Mas seria interessante saber sua perspectiva se fosse alguem comecando na area, seria uma boa aprender COBOL? e Java? Acho que a questão é mais ampla.

Não conheco 99% das pessoas que conversou, mas acho que existe muita confusão a esse respeito porque Java significa diferentes coisas com diferentes niveis de sucesso. Quando falamos da linguagem não existe duvidas que ela deve se concentrar num nicho de aplicacoes para JVM e não mais no mainstream das aplicações como foi até então, não porque lhe falta alguma feature, mas porque lhe falta o ideal de querer fornecer aos usuários, que irão criar as aplicações da nova decada, a ferramenta ideal. Qualquer Marcio Duran com tempo livre pra ficar navegando na internet ja percebeu. O próximo são as fabricas de software e o mercado corporativo.

Ahhn??? Explica melhor isto aqui. Realmente tá MUITO avançado pra qualquer um compreender.

Kico, o próprio Alan Cox não seria capaz de responder isso.

[quote=mochuara]
Ta vendo, teve que aprender Grovvy pra ser mais produtivo em Java. Bom, primeiro vc não precisa desaprender Java, a não ser que sofra de algum tipo de efeito colateral indesejado por causa disso. Mas seria interessante saber sua perspectiva se fosse alguem comecando na area, seria uma boa aprender COBOL? e Java? Acho que a questão é mais ampla.

Não conheco 99% das pessoas que conversou, mas acho que existe muita confusão a esse respeito porque Java significa diferentes coisas com diferentes niveis de sucesso. Quando falamos da linguagem não existe duvidas que ela deve se concentrar num nicho de aplicacoes para JVM e não mais no mainstream das aplicações como foi até então, não porque lhe falta alguma feature, mas porque lhe falta o ideal de querer fornecer aos usuários, que irão criar as aplicações da nova decada, a ferramenta ideal. Qualquer Marcio Duran com tempo livre pra ficar navegando na internet ja percebeu. O próximo são as fabricas de software e o mercado corporativo.[/quote]

Oi mochuara,

na realidade, há um mal entendido aqui. Eu nao tive de “aprender Groovy pra ser mais produtivo em Java”.
Na realidade, eu sabia que esta funcionalidade apenas existia em outra linguagem e poderia facilitar a minha vida. Tudo o que fiz foi unir as duas linguagens para resolver um mesmo problema. Java lidando com 99,99% e Groovy com o parseamento do meu XML.

De modo algum invalida Java. Só mostra aquilo que qualquer profissional bem informado deveria saber: “a ferramenta certa pra ferramenta certa”. Simples assim.

[quote=kicolobo]na realidade, há um mal entendido aqui. Eu nao tive de “aprender Groovy pra ser mais produtivo em Java”.
Na realidade, eu sabia que esta funcionalidade apenas existia em outra linguagem e poderia facilitar a minha vida. Tudo o que fiz foi unir as duas linguagens para resolver um mesmo problema. Java lidando com 99,99% e Groovy com o parseamento do meu XML.

De modo algum invalida Java. Só mostra aquilo que qualquer profissional bem informado deveria saber: “a ferramenta certa pra ferramenta certa”. Simples assim.[/quote]

Eu também usei a mesma estratégia. Java fazendo 99% do trabalho, groovy acessando objetos COM.

[quote]
Primeiro diz que o assunto não é se Java é melhor ou pior, mas em seguida diz que Scala é mais eficiente que Java?
Continuando:
em seguida diz que Scala é mais poderosa e diz:[/quote]
Expliquei sobre closures e você não disse nem o que é e pra qual proposito, simplesmente disse isso não faz falta. Que ciêntista é você ?

[quote]
Se é mais complexa, é mais difícil, se é mais difícil, qual a vantagem?[/quote]
Na terra de cegos quem tem um olho só é Rei.

[quote]Em Scala o diamente da morte não acontece a linguagem sabe usar isso com muito mais proeficiência do em que C++, e em Java isso já não é possivel.
Ahhn??? Explica melhor isto aqui. Realmente tá MUITO avançado pra qualquer um compreender.[/quote]
Pode acreditar você sabe o que é garbage collection em java , você não fica regrado em sua heap ou stack , trabalha livremente.

[quote]
Outro ponto esquisito. Cara: em Java também se faz isto. Me lembro de um artigo fascinante que li na Java Magazine uma vez sobre “Java Funcional”, em que básicamente era exposto como aplicar conceitos da programação funcional na orientação a objetos (e por consequência, Java). (acho que era do Diego Doelderling (desculpem-me pela grafia) o texto)
Ter lá seus construtores nativos que facilitem a adoção da programação funcional é bacana, uma funcionalidade a mais, mas mesmo assim, não significa a morte das demais.[/quote]
Aqui falta melhor referencia.

[quote]
Continuando…
Outro papinho furado: “se você escreve menos código, sua linguagem é melhor”.
Não. Não necessáriamente. Quer ver porque é furado? [/quote]
Qual é o seu argumento técnico ?

Sim, é necessário correr atrás.Até parece que a documentação é de boca em boca.

Uma ocasião questionei sobre RestFulie, depois surgir o site com maior documentação da Caelum sobre Restfulie, hoje apesar de seu conceito ser produção do Guilherme Silveira, eu percebi muito pouco interesse ao assunto pelas pessoas, sendo que é de notável observação nas questões de hipermidia.Acho que é uma questão de interesse em querer aprender, o mesmo vale pra Scala.

Ficar focando esforços em linguagem de programação é uma coisa inútil porque ela é uma simples ferramenta. Discutir ferramentas é uma coisa inútil porque é questão de gosto.

Alguns deveriam discutir conceitos relevantes e ampliar o nível de conhecimento.