Puramente funcional

71 views
Skip to first unread message

Diego Armando Gusava

unread,
Nov 6, 2012, 4:28:43 AM11/6/12
to scal...@googlegroups.com
Olá pessoal,

sou novo em Scala, apesar de já ter estudado ano passado, foi só esse ano graças ao curso Coursera "Functional Programming in Scala" que eu realmente evolui na linguagem e também com programação funcional! Aliás, completei ele esta semana, e realmente é muito bom para quem está começando.

Só que como tudo é novo, ficou algumas dúvidas, como tenho background em Java e C#, e estou querendo utilizar Scala em meus projetos pessoais para me aprofundar mais, pretendo estudar o play framework, como vocês utilizam essa linguagem em seus projetos web, digo utilizam essa linguagem puramente funcional ou utilizam objetos mutáveis / stateful ? Quais as vantagens e desvantagens? Se conhecem algum livro / artigo que poderiam me indicar, seria muito bom!


Obrigado



Alberto SOUZA

unread,
Nov 6, 2012, 4:44:39 AM11/6/12
to scal...@googlegroups.com
Oi Diego,

Um livro que eu gostei como segundo passo na linguagem foi o Scala in Depth, quem escreveu foi um dos caras que trabalham na TypeSafe, Josh Suereth.  Ele dá várias dicas interessantes, mesmo que algumas passem do limite :). Legal que você tenha interesse no Play, ele é realmente um framework interessante, completamente focado no usuário final. A ideia dele, e que atingem com algum sucesso, é a de deixar o desenvolvimento web com uma linguagem compilada, tipo java e scala, mais perto do que a gente tem com um ruby da vida. Dá uma olhada no site que a documentação é muito boa!. 

Em relação ao lance dos objetos, trabalho com eles mantendo estado e geralmente sendo mutáveis.  Numa app web tradicional, não vejo motivo para ficar tendo trabalho em manter todos os seus objetos imutáveis. A gente usa o objeto e descarta quase que no mesmo instante. Não joga para um processamento paralelo nem nada... Só penso em coisas imutáveis quando realmente mudar estado pode me atrapalhar, se não me atrapalha não implemento.

Abraço,

Alberto

2012/11/6 Diego Armando Gusava <diego...@gmail.com>

Gilberto Garcia

unread,
Nov 6, 2012, 5:55:49 AM11/6/12
to scal...@googlegroups.com
Oi Diego,

Não preciso comentar que adoro o Lift né? 

Do modo como vejo as coisas, ele permite o desenvolvimento de aplicações web num estilo mais funcional. 
Quase não uso objetos mutaveis com ele.

O ponto que alguns acham negativo é que por ser voltado a um estilo mais funcional de se programar e por permitir fazer a mesma coisa de várias maneiras diferentes, ele pode parecer um pouco mais dificil ou confuso. Mas se a pessoa não se assustar com essa primeira impressão, ficará impressionada com o framework.

Se quiser ler mais sobre o framework


Sobre a sua pergunta de como utilizamos a linguagem em projetos, bem, eu sempre procurei utilizar as vantagens que o estilo funcional trazem para a programação, pois como eu costumo dizer, se vc quer continuar programando OO, continue com o java/C#, etc. Não faz muito sentido apenas tentar aplicar as técnicas de Java/C# em Scala pois você só estará fazendo uma tradução de uma linguagem para outra, sem realmente aproveitar o que Scala tem de melhor para oferecer.

Quando for escrever sua aplicação, tente pensar em soluções funcionais, em como tentar resolver o problema sem usar objetos mutaveis.

Acho que é isso.

Abraços




2012/11/6 Diego Armando Gusava <diego...@gmail.com>
Olá pessoal,

Marcelo Magno

unread,
Nov 8, 2012, 6:56:12 AM11/8/12
to scal...@googlegroups.com
Bom dia,

Primeiramente peço desculpas por sequestrar a thread, mas gostaria de aproveitar o comentario do amigo Gilberto para lhe fazer uma pergunta.

Gilberto, venho estudando o Lift, mas tenho tido uma dificuldade enorme com o ambiente. Você poderia dar uma dica de qual ambiente você usa?

Eu como usuario de eclipse, comecei com a Scala IDE usando o plugin do Jrebel. Achei que a vida fosse ser facil com o Jrebel recarregando as classes, mas nem sempre é isso que acontece e tenho de ficar toda hora derrubando o jetty ou até mesmo o eclipse em algumas situações.

Se puder comentar um pouco sobre qual ambiente que você usa, e como seta-lo, ficaria grato.

Obrigado,


Atenciosamente,
Marcelo Magno

Gilberto Garcia

unread,
Nov 8, 2012, 7:05:43 AM11/8/12
to scal...@googlegroups.com
Eu utilizo:

SBT (0.11.2)
JRebel setado no SBT, ou seja, quando eu starto o SBT o JRebel sobe junto.

De tempos em tempos tenho que matar o SBT por problemas de PermGem, etc. por isso subo ele por fora da IDE. assim qdo tenho que matar ele é apenas ele que morre e não a IDE toda.

Tutorial bacana sobre como configurar o ambiente para trabalhar com o lift, jrebel e sbt: http://scalado.com.br/articles/2012-04-24/criando-um-ambiente-de-desenvolvimento-com-sbt--jrebel-e-intellij-idea


Espero ter ajudado.


2012/11/8 Marcelo Magno <marcel...@gmail.com>

Marcelo Magno

unread,
Nov 8, 2012, 9:03:44 AM11/8/12
to scal...@googlegroups.com
Gilberto,

Vou testar desse jeito, já imaginava que usar o Jrebel por dentro do SBT poderia ser mais leve, mas não tinha ideia de como configura-lo.

Em tempo: Vc conhece alguma lista em portugues para Lift?
Estou brincando com aquele FOBO e estou me amarrando na brincadeira, e queria tirar umas duvidas, mas algumas respostas lah na lista principal dadas pelo proprio David me deixaram meio cabreiro...

Te agradeço muito mesmo pela ajuda.



Atenciosamente,
Marcelo Magno
marcel...@arquitetodigital.com.br
http://www.arquitetodigital.com.br
55 21 4063-5585
55 21 8870-0022

Gilberto Garcia

unread,
Nov 8, 2012, 9:09:25 AM11/8/12
to scal...@googlegroups.com
Tem essa: https://groups.google.com/forum/#!forum/liftweb-brasil
Mas ta bem parada, poucas pessoas (acho que eu e mais 3 pessoas) e acabamos todos conversando pela lista principal mesmo.

Seria legal se mais pessoas se interessasem e ajudassem a tornar a lista mais ativa :)


Mas não se assute com a lista em inglês, o pessoal é sempre bem solicito e ajudam bastante. E ter o David respondendo as questões é um plus :D


2012/11/8 Marcelo Magno <marcel...@gmail.com>

Marcelo Magno

unread,
Nov 8, 2012, 9:14:19 AM11/8/12
to scal...@googlegroups.com
Me inscrevi na lift brasil.

Ok quanto a lista principal, vou tentar...
vamos ver no que dá... :)

Obrigado por todas as dicas e pelo tempo dispensado.

Atenciosamente,
Marcelo Magno
Reply all
Reply to author
Forward
0 new messages