Linguagens dinâmicas

junho 19, 2009 às 10:52 pm | Publicado em Desenvolvimento, Outros, ruby | 3 Comentários

Linguagem dinâmica, também conhecida como linguagem de scripting, ainda é algo obscuro para a grande maioria dos desenvolvedores. Entender e aplicar seus conceitos é algo que pode causar espanto e muitas dúvidas. Porém, é importante conhecer as vantagens e destantagens deste tipo de linguagem, saber quando é válido ou não a sua utilização no desenvolvimento de sistemas.

Estas linguagens são linguagens de alto nível, a grande maioria com tipagem dinâmica e com um Protocolo de Meta-Objeto (Meta-Object Protocol), ou MOP. Estas duas características proporcionam muitas facilidades e um enorme poder no desenvolvimento. Porém, quando não usadas com cuidado, podem causar grandes problemas.

Tipagem dinâmica é muito criticada pela comunidade de desenvolvedores, principalmente porque “escondem” alguns erros em tempo de desenvolvimento (compilação). Linguagens dinâmicas não são compiladas, portanto tipagem dinâmica faz todo sentido. Porém, existe algumas linguagens dinâmicas que utilizam de tipagem estática, como Groovy, para utilizar de técnicas como overloading de métodos e de construtor.

Meta-Object Protocol sem dúvida é a grande vantagem das linguagens dinâmicas. Em linguagens de programação como java, os objetos armazenam seus métodos e seus atributos. Com MOP, cada objeto tem um meta objeto associado e é no meta objeto que ficam os métodos. O objeto é responsável por armazenar seu estado. A grande vantagem é a possibilidade de alterar o meta objeto em tempo de execução e adicionar novas funcionalidades nos objetos.

Com o surgimento do Ruby e do framework Ruby on Rails, as linguagens dinâmicas vem ganhando força. Muitas empresas que utilizam metodologias agéis, estão aderindo a este tipo de linguagem, principalmente ao Ruby on Rails. Portanto, é visível que as linguagens dinâmicas e principalmente a linguagem Ruby poderá ser o próximo “boom” no desenvolvimento de software.

Falando em Java 2009

maio 26, 2009 às 1:15 pm | Publicado em Outros | 2 Comentários

No último final de semana participei do evento falando em java 2009. Como sempre, o pessoal da Caelum arrebentou. As duas paletras do Jim Webber foram sensacionais.

As dicas que o Sérgio Lopes deu sobre o hibernate também foram excelentes. Concordo com ele que o grande problema do hibernate são os desenvolvedores que não se preocupam em utilizá-lo adequadamente.

Outra grande novidade foi o anúncio do vRaptor 3. Particularmente, eu sou fã deste framework.

Estou ansioso para o lançamento do livro que o pessoal da Caelum está escrevendo.

Infelizmente,  ainda não foi este ano que ganhei o Wii….

14º EDTED – Encontro de Design e Tecnologia Digital !

abril 26, 2009 às 9:36 pm | Publicado em Outros | 1 Comentário

Edted

Tive o prazer de participar de mais um grande evento. Fico feliz por ver eventos bem organizados e com palestrantes de alto nível no Brasil.

Cada vez mais posso comprovar que a dupla SCRUM e RoR está muito forte e tem tudo para revolucionar o mercado de TI.

Destaco as palestras do Fabiano Milani e do Guilherme Chapiewski. Gostei muito das dicas do Guilherme sobre como se tornar um bom profissional de TI.

Resumindo, foi um bom esquenta para o Falando em Java 2009.

Twitter

março 26, 2009 às 11:13 pm | Publicado em Outros | Deixe um comentário

Post bem rápido.
Apenas para contar que agora estou no twitter.

Quem quiser me seguir:
http://twitter.com/celodemelo

Ruby Module

março 9, 2009 às 7:09 pm | Publicado em ruby | Deixe um comentário

Um recurso muito interessante e extremamente útil na linguagem Ruby é o Módulo (module). O módulo possui duas funcionalidades: namespace e mixin.

Namespace

O Módulo pode ser utilizado para prover um namespace para os componentes, mantendo-os mais organizados evitando possíveis problemas de sobrescrita. Veja o exemplo abaixo:

ruby_module_1

Devido às características dinâmicas da linguagem, o método verify da classe AccessControl foi sobrescrito e o resultado do código será ‘verify 2’. Esta sobrescrita pode ser intencional ou não.

Para deixar o código mais organizado e prevenir que o componente seja sobrescrito por engano, pode-se utilizar o módulo como namespace:

ruby_module_2

Para referenciar elementos que estão dentro de um módulo, usa-se Modulo::Elemento

ruby_module_3

Desta forma, a sobrescrita por engano já está evitada. O código abaixo irá imprimir:

verify
verify 2

ruby_module_4

Mixin

Mixin é um recurso interessante. Um módulo pode ser incluído em uma classe. Quando isso ocorre, a classe passa a ter os métodos declarados no módulo. Veja o exemplo abaixo:

ruby_module_5

A classe AccessControl não possui o método “testing”. Quando o interpretador do ruby não encontra um método um um objeto, o método method_missing é invocado.

No exemplo, o módulo MethodMissing foi incluído dentro da classe AccessControl. Desta forma, a classe AccessControl passou a ter os métodos definidos no módulo.

O código imprime:
verify 2
The method ‘testing’ doesn’t exist!!!!

—-

O conceito de módulo é sem dúvida um recurso muito interessante e bastante utilizado pelo framework Ruby on Rails.

« Página anteriorPróxima Página »

Crie um website ou blog gratuito no WordPress.com.
Entries e comentários feeds.