Diego Pacheco 
Software Architect | Agile Coach 
diego-pacheco.blogspot.com 
@diego_pacheco 
diegopacheco 
diego.pacheco 
...
http://about.me/diegopacheco
Ilegra.com
Implicits ???
•Bom pra DSL, mas o pessoal abusa! 
•Lento 
•Faz o código ficar mais complexo 
•No final acaba dando oportunidades para o ...
Compilation Time / Build Time 
??? http://www.scala-sbt.org/ 
http://maven.apache.org/ 
C 
http://www.scala- lang.org/old/...
Compilation Time / Build Time 
(Very Bad) 
•Melhorou, mas ainda muito lento. 
•Se não usar módulos muito bem, SBT vira um ...
Operator Overloading / 
Dynamic @Interface (???)
Operator Overloading / 
Dynamic @Interface (???)
Operator Overloading / 
Dynamic @Interface (BAD) 
•São ideias “legais” 
•Todo mundo está usando agora, virou uma bagunça....
Parser / Combinators / 
Macros (???)
Parser Combinators / 
Macros (Very Bad) 
•Complexo 
•Difícil de entender / documentação terrível. 
•O Código é muito feio…...
FP (???)
FP (Good) 
•Funções (Map, Reduce, Filter, FlatMap, etc..) 
•Parallel Collections 
•Case Classes 
•Tuples 
•Pattern Matcher...
Performance(???)
Performance(Good) 
•Mais rápido que java 
•Otimizado para a JVM 
•Runtime muito sólido, graças a JVM 
•Todo eco-Sistema de...
Scalability (???)
Scalability (Awesome) 
•STM 
•Actors Model 
•Akka 
•Future/Promises –Async Callbacks 
•Reactiviness ( rx, FRP, Netty, etc....
Resumindo… 
•Você deve evitar algumas features. 
•Scala é fantástico para Arquitetura. 
•Muito produtivo para desenvolvime...
Diego Pacheco 
Software Architect | Agile Coach 
diego-pacheco.blogspot.com 
@diego_pacheco 
diegopacheco 
diego.pacheco 
...
Próximos SlideShares
Carregando em…5
×

TDC 14 POA: Scala goods bads

526 visualizações

Publicada em

TDC 14 POA: Scala goods bads

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
526
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDC 14 POA: Scala goods bads

  1. 1. Diego Pacheco Software Architect | Agile Coach diego-pacheco.blogspot.com @diego_pacheco diegopacheco diego.pacheco diegopachecors diegopacheco
  2. 2. http://about.me/diegopacheco
  3. 3. Ilegra.com
  4. 4. Implicits ???
  5. 5. •Bom pra DSL, mas o pessoal abusa! •Lento •Faz o código ficar mais complexo •No final acaba dando oportunidades para o desenvolvedor acoplar coisas que não deveria. •Vocênão precisa disso pra fazer programação funcional. Implicits (BAD)
  6. 6. Compilation Time / Build Time ??? http://www.scala-sbt.org/ http://maven.apache.org/ C http://www.scala- lang.org/old/sites/default/files/linuxsoft_archives/docu/files/tools/scalac.html
  7. 7. Compilation Time / Build Time (Very Bad) •Melhorou, mas ainda muito lento. •Se não usar módulos muito bem, SBT vira um inferno. •SBT ainda não tem uma boa integração com IDEs. •Se quiser performance terá que evitar features pelo número de classes que elas geram e como a maneira com são feitas (Deve ser resolvido com java 8 –scala 2.12 talvez).
  8. 8. Operator Overloading / Dynamic @Interface (???)
  9. 9. Operator Overloading / Dynamic @Interface (???)
  10. 10. Operator Overloading / Dynamic @Interface (BAD) •São ideias “legais” •Todo mundo está usando agora, virou uma bagunça. •Você acaba que nem omundo mágico do Ruby/Rails. •Scala não é ruby, é compilada, logo essa feature é do mal. •Scala tem raízes vindas do Haskell ou seja, compilador e type system então isso não faz sentido.
  11. 11. Parser / Combinators / Macros (???)
  12. 12. Parser Combinators / Macros (Very Bad) •Complexo •Difícil de entender / documentação terrível. •O Código é muito feio…  •Você não precisa disso, outros jeitos… •Não tem pq fazer parser na mão, prefira usar Jackson/XStrean. Combinators? ANTLR! •Macros? Não precisa de jeito nenhum, abuso do compilador, complexo.
  13. 13. FP (???)
  14. 14. FP (Good) •Funções (Map, Reduce, Filter, FlatMap, etc..) •Parallel Collections •Case Classes •Tuples •Pattern Matcher •Options(Monads)
  15. 15. Performance(???)
  16. 16. Performance(Good) •Mais rápido que java •Otimizado para a JVM •Runtime muito sólido, graças a JVM •Todo eco-Sistema de frameworks e bibliotecas do java a sua disposição. •Melhor linguagem na JVM nos dias de hoje.
  17. 17. Scalability (???)
  18. 18. Scalability (Awesome) •STM •Actors Model •Akka •Future/Promises –Async Callbacks •Reactiviness ( rx, FRP, Netty, etc...) •Usa tudo de bom do java: NoSQL DBs, Search Engines, Rules Engines, Middleware Servers, MOM, etc..
  19. 19. Resumindo… •Você deve evitar algumas features. •Scala é fantástico para Arquitetura. •Muito produtivo para desenvolvimento mas tem que ter práticas eficientes de engenharia(code review/design sessions). •Assim que se resolver a lentidãode build e algumas coisas de backward compatibility vai ser perfeito!!! 
  20. 20. Diego Pacheco Software Architect | Agile Coach diego-pacheco.blogspot.com @diego_pacheco diegopacheco diego.pacheco diegopachecors diegopacheco

×