A linguagem que vem sendo considerada a "substituta" do Java, chama a atenção em muitos sentidos, inclusive por ser a linguagem utilizada no core de duas das mais famosas aplicações da atualidade, o FourSquare e o Twitter. O nome dessa linguagem? Scala.
Bem... sob uma análise mais emocional eu posso dizer que a linguagem é "massa", "sensacional"... Mas por uma análise mais, fria, racional, posso afirmar que o seu aprendizado é mais demorado que a do Java. Por que? Bem... para entender apenas da linguagem Java, você basta compreender alguns conceitos basicos, tais como: Classes, Interfaces, Métodos, Variáveis, Enumerações, Loops (for, foreach e while), If...Else, Switch, etc. Pois bem... para aprender Scala você precisa ter estes conhecimentos e muito mais, tais como: Case Class, Trait, Object, For-Comprehensive, Product, Actor, Function, etc...
Outra diferença, e daí mais necessidade de conhecimento, relacionado ao Java, é que a linguagem Scala segue o paradigma Funcional e Orientado à Objeto. Isto quer dizer que além de entender POO (Programação Orientada à Objeto), você precisa compreender ainda de Funcional Paradigm.
Apesar de seguir o paradigma funcional, segundo Sebesta, uma linguagem não deveria ter atribuíções e nem variáveis, diferente do que pode-se observar na languagem Scala. Por um outro lado esta linguagem deve prover uma diversidade de funções básicas que poderão ajudar o desenvolvedor a criar funções complexas. Neste ponto, Scala segue a linha!
Talvez você se pergunte: então qual é realmente a grande vantagem da languagem Scala? Esta resposta eu darei quando eu finalizar uma aplicação que estou desenvolvendo, para não repetir apenas as vantagens que tem nos livros, blogs, etc - algumas destas você pode ver aqui. O que posso adiantar por enquanto é que a quantidade de conceitos novos é muito grande, no entanto quando você consegue entender isto a programação se torna mais rápida e mais intuítiva, dado que você pode agrupar e controlar o acesso aos dados em um único arquivo, a programação de Collections requer escrita de código, a comunicação com Bancos de Dados (apesar de se utilizar JDBC) é muito mais rápida que utilizar ORM ou SQL diretamente (pelo menos na minha opnião). Quer um exemplo disso?
//cria a representação de uma tabela de usuários
val Users = new Table[(String, String)]("TBUSER"){
def nick = column[String]("nick")
def password = column[String]("password")
def * = nick ~ password
}
//realizar a consulta
val list: List[(String,String)] = Database.forURL(
uri = "jdbc:postgresql://localhost:5432/db_scala",
user = "postgres",
password = "123456",
driver = "org.postgresql.Driver"
).withSession(
Query(user).where(f => f.name === "1").list()
)
//imprimir todos os dados da tabela
list.foreach(println)
Simples não?? O melhor de tudo é como nós podemos organizar nossos códigos! Bem... o resto explico num outro momento.
Bons estudos e até lá!
Nenhum comentário:
Postar um comentário