Você está na página 1de 15

1.

SUMRIO
1. Sumrio...............................................................................................................................1 2. Introduo...........................................................................................................................2 3. Ruby (LINGUAGEM de PROGRAMAO)...................................................................3 3.1 Histria do Ruby.........................................................................................................3 3.2 Caracterstica e conseqncia....................................................................................4 3.3 Tipagem dinmica.......................................................................................................4 3.4 Execuo.......................................................................................................................5 3.5 Flexibilidade.................................................................................................................5 3.6 Operadores...................................................................................................................5 3.7 Convenes...................................................................................................................5 3.8 Expresses regulares...................................................................................................5 3.9 Blocos............................................................................................................................5 3.10 Tratamento de excees............................................................................................6 3.11 A filosofia por trs do Ruby.....................................................................................6 3.12 Implementaes Alternativas...................................................................................6 3.13 Desvantagens.............................................................................................................6 3.14 Ranking das linguagens mais utilizadas..................................................................7 3.15 O futuro......................................................................................................................9 3.16 Ruby no Brasil e no mundo......................................................................................9 3.17 Ruby 1.8.6 (Download)...........................................................................................10 4.1 Histria.......................................................................................................................11 4.2 Componentes.............................................................................................................11 4.2.2 Action Pack..........................................................................................................11 4.2.3 Action Mailer.......................................................................................................12 4.2.4 Active Support.....................................................................................................12 4.2.5 Action WebServices.............................................................................................12 4.3 Tempo de desenvolvimento......................................................................................12 4.4 DRY............................................................................................................................12 4.5 Convention over configuration................................................................................12 4.6 Escalabilidade............................................................................................................13 5. Concluso..........................................................................................................................14 6. BIBLIOGRAFIA...............................................................................................................15

2. INTRODUO
Linguagem de Programao criada por Yukihiro Matsumoto. A primeira verso foi lanada ao pblico em dezembro de 1994, na forma de uma verso alpha. Ruby considerado uma linguagem totalmente orientada a objetos que incluindo dados que normalmente so tipos primitivos em outras linguagens, como nmeros inteiros e nmeros de ponto flutuante.

3. RUBY (LINGUAGEM DE PROGRAMAO)

Paradigma: Orientao a objeto Surgido em: 1995 ltima verso: 1.8.6 Criado por: Yukihiro Matsumoto Estilo de tipagem: dinmica, forte Influenciada por: Perl, SmallTalk, Python

3.1 Histria do Ruby


A linguagem de programao Ruby foi criada por Yukihiro Matsumoto, que ser tratado neste trabalho por Matz. Matz se interessou por programao pouco depois de ser apresentado aos computadores, e como conseqncia natural, se formou em Cincia da Computao. Em 1993, Matz conversava com um colega sobre linguagens de script, estava ele neste momento bastante impressionado devido as possibilidades. Ao pesquisar na Internet sobre o assunto, encontrou Perl e Python (linguagens de programao), mas de alguma forma no era exatamente isso o que ele queria. Como ele mesmo disse em uma entrevista realizada em 2001, ele queria uma linguagem de script que fosse mais eficiente que Perl e mais orientada a objetos que Pythton. E foi por isso que Matz decidiu criar sua prpria linguagem. Sendo assim, em 24 de fevereiro de 1993, Matz comeou a desenvolver o Ruby usando a linguagem C. Quando iniciou o projeto, Matz brincava com um amigo dizendo que a linguagem deveria ter o nome de uma pedra preciosa, em referncia ao Perl, e ento este amigo o sugeriu Ruby. Matz gostou do nome, e acabou o adotando como nome oficial da linguagem. A primeira verso foi lanada para o pblico em dezembro de 1994, na forma de uma verso alpha. Depois disso continuou desenvolvendo a linguagem sozinho at meados de

1996, quando uma comunidade Ruby comeou a se formar, e desde ento ele passou a ter cada vez mais ajuda desta crescente comunidade. Embora a popularidade do Ruby crescesse consideravelmente no Japo, podia-se dizer que inicialmente tratava-se de um fenmeno apenas naquele pas. Mas ento surgiu o famoso PickAxe, que nada mais que o apelido do livro Programming Ruby: A Pragmatic Programmers Guide, escrito por Dave Thomas e Andy Hunt. A importncia deste livro para o Ruby fora do territrio japons foi to grande, que o prprio Matz credita 1 edio do livro parte da popularidade mundial do Ruby. Desde ento, o Ruby tem se tornado cada vez mais popular, em especial aps o lanamento trs anos atrs do Ruby on Rails, um framework web escrito em Ruby que revolocionou o desenvolvimento web, sendo definitivamente o maior responsvel pela atual popularidade da linguagem.

3.2 Caracterstica e conseqncia


Considerando os aspectos tcnicos do Ruby, chegamos seguinte lista de caractersticas: Orientao a objetos: o Ruby considerado uma linguagem totalmente orientada a objetos, o que significa que tudo que voc manipula em Ruby um objeto, incluindo dados que normalmente so tipos primitivos em outras linguagens, como nmeros inteiros e nmeros de ponto flutuante. Como conseqncia disso, as variveis no Ruby sempre armazenam referncias a objetos.

3.3 Tipagem dinmica


Na maioria das linguagens, ns temos que declarar uma varivel e associ-la a um tipo, o que chamado de tipagem esttica. J no Ruby, uma varivel ao longo da sua vida pode armazenar referncias a objetos de vrias classes. Isto chamado de tipagem dinmica, que quando o tipo de uma varivel pode mudar ao longo do tempo. importante ressaltar que tipagem dinmica no significa tipagem fraca, o Ruby, por exemplo, uma linguagem com tipagem dinmica e forte, ou seja, no se tratam de conceitos excludentes.

3.4 Execuo
Cdigo fonte Ruby possui a extenso rb e executado diretamente por uma VM (Virtual Machine), sem qualquer processo de compilao. Por esta razo, o Ruby uma linguagem interpretada.

3.5 Flexibilidade
O Ruby extremamente flexvel, permitindo aos programadores at mesmo mudar a sua estrutura interna, se assim o desejarem. Ento, caso voc no se interesse, por exemplo, em usar o sinal aritmtico + para efetuar uma soma, basta modificar a sua classe Numeric.

3.6 Operadores
Os operadores no Ruby so syntatic sugar (Sintaxe fcil) para mtodos, e voc pode redefini-los vontade.

3.7 Convenes
Existem algumas convenes ao nomear variveis que faz com que rapidamente identifiquemos a sua natureza, como por exemplo, uma varivel chamada @idade. Neste caso, devido conveno do Ruby, podemos afirmar que se trata de uma varivel de instncia.

3.8 Expresses regulares


O Ruby oferece suporte nativo a expresses regulares, alm disso, o seu uso extremamente simples.

3.9 Blocos
Esta uma das caractersticas mais interessantes da linguagem. Blocos podem ser descritos como uma forma alternativa de passar argumentos para mtodos, no entanto, mais preciso dizer que se trata de uma transferncia de fluxo entre um mtodo e um trecho de cdigo externo. Atravs dos blocos podemos, entre outras coisas, implementar iterators. Alm

disso, os blocos tambm possibilitam a existncia de uma outra capacidade do Ruby bastante festejada: closures.

3.10 Tratamento de excees


Assim como muitas linguagens modernas, o Ruby oferece tratamento de excees nativamente, e como no poderia deixar de ser, o seu uso bastante simples.

3.11 A filosofia por trs do Ruby


Ao projetar o Ruby, Matz foi guiado pelo Princpio da Menor Surpresa, o que significa que o cdigo escrito em Ruby deve se comportar de maneira a minimizar a surpresa daqueles que o lerem. Dessa forma, Matz esperava possibilitar que os programadores se expressassem naturalmente usando o Ruby. Como resultado dessa reduo da surpresa, o Ruby tornou-se uma linguagem orientada aos humanos, de forma que o cdigo escrito na linguagem seja facilmente compreendido, transferindo o trabalho difcil de para os computadores. Outro princpio por trs da criao do Ruby tornar o processo de desenvolvimento divertido, o que acaba resultando em uma maior produtividade, afinal, somos mais produtivos quando estamos envolvidos em atividades divertidas.

3.12 Implementaes Alternativas


Existem implementaes alternativas do Ruby, como o JRuby, que uma verso do interpretador do Ruby para a JVM (Java Virtual Machine). Existe tambm uma implementao do Ruby para o .NET Framework chamada IronRuby, no entanto, esta implementao ainda est na verso pr-alpha. Alm dessas, h ainda outras menos conhecidas, como Rubinius e YARV.

3.13 Desvantagens
A linguagem Ruby tambm tem seus pontos fracos, uma vez que toda e qualquer linguagem tem os seus.

Um dos maiores problemas atuais do Ruby a performance da sua VM, que deixa a desejar mesmo se no a compararmos com mquinas virtuais mais avanadas, como a JVM. Outra caracterstica negativa da linguagem a sua relativa dependncia em relao ao desenvolvimento em C, j que a biblioteca principal do Ruby possui muitas partes escritas nesta linguagem, no sendo, portanto, totalmente escrita em Ruby.

3.14 Ranking das linguagens mais utilizadas


TIOBE Programming Community Index for October 2007
Position Position Ratings Delta Delta in Position Programming Language Status Oct 2007 Oct 2006 Oct 2007 Oct 2006 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 5 3 4 6 8 7 9 13 12 15 10 11 14 18 48 16 Java C (Visual) Basic C++ PHP Perl C# Python JavaScript Ruby PL/SQL D Delphi SAS ABAP COBOL Lua Lisp/Scheme 21.616% 14.591% 11.166% 9.584% 9.498% 5.351% 3.740% 3.433% 2.685% 2.386% 1.966% 1.594% 1.539% 1.383% 0.849% 0.683% 0.596% 0.572% +0.44% -3.07% +1.44% -1.48% -0.36% -0.12% +0.68% -0.03% +0.48% +1.30% +0.87% +0.96% -0.61% -0.67% +0.20% +0.14% +0.53% -0.05% A A A A A A A A A A A A A A AB B B

Representao grfica:

TIOBE Programming Community Index de Novembro 2007

TIOBE Programming Community Index de Novembro 2007 Avaliao mais Alta (desde 2002): 2.798% (10 posio, 2007 de abril) Mais Baixa Avaliao (desde 2002): 0.124% (27 posio, 2004 de agosto)

3.15 O futuro
O Ruby atualmente est na verso 1.8.6, sendo que a verso 1.9 est em desenvolvimento.

3.16 Ruby no Brasil e no mundo


Atualmente, o Ruby a 10 linguagem de programao mais utilizada no mundo, de acordo com o Tiobe (ranking de linguagem de programao). J no Brasil, o Ruby utilizado por mais de 15% dos programadores, sendo que em 2008 h a previso desta quantidade aumentar para 33%, segundo os resultados da pesquisa internacional feita pelo instituto Evans Data.

3.17 Ruby 1.8.6 (Download)


Informaes Adicionais:

Atravs da linguagem de programao pode-se instalar o Rails e bibliotecas para conexo de banco de dados, possibilitando a criao de aplicaes em Ruby on Rails. Roda em Windows 95, 98, NT, 2000, Millenium, XP, 2003, Vista.

10

4. Ruby on Rails

Desenvolvedor: Rails Core Team ltima verso: 1.2.5 (13-Out-2007) Sistema Op.: Multi-plataforma Gnero: Framework Web Licena: MIT License Website: rubyonrails.org

Ruby on Rails um framework gratuito que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados (database-driven web sites), uma vez que possvel criar aplicaes com base em estruturas pr-definidas. Frequentemente referenciado como Rails ou RoR, o Ruby on Rails um projeto de cdigo aberto escrito na linguagem de programao Ruby. As aplicaes criadas utilizando o framework Rails so desenvolvidas com base no padro de projeto MVC (Model-ViewController). 4.1 Histria

Ruby on Rails foi uma extrao de David Heinemeier Hansson de um projeto seu, o gerenciador de projetos Basecamp. Foi lanado a pblico pela primeira vez em Julho de 2004. Em Agosto de 2006, a Apple anunciou que estaria incluindo o Ruby on Rails no Mac OS X v10.5 Leopard [1] com lanamento programado para Outubro de 2007. 4.2 Componentes O Rails um "meta-framework", uma vez que uma juno de cinco frameworks: 4.2.1 Active Record O Active Record uma camada de mapeamento objeto-relacional (object-relational mapping layer), responsvel pela interoperabilidade entre a aplicao e o banco de dados e pela abstrao dos dados. 4.2.2 Action Pack Compreende o Action View (gerao de visualizao de usurio, como HTML, XML, JavaScript, entre outros) e o Action Controller (controle de fluxo de negcio). 11

4.2.3 Action Mailer O Action Mailer um framework responsvel pelo servio de entrega e at mesmo de recebimento de e-mails. relativamente pequeno e simples, porm poderoso e capaz de realizar diversas operaes apenas com chamadas de entrega de correspondncia. 4.2.4 Active Support Active Support uma coleo de vrias classes teis e extenses de bibliotecas padres, que foram considerados teis para aplicaes Rails. 4.2.5 Action WebServices Prov uma maneira de publicar APIs interoperaveis com o Rails, sem a necessidade de perder tempo dentro de especificaes de protocolo. Implementa WSDL e SOAP. O Action Web Service no estar mais presente na verso 2.0 no Rails, visto que o mesmo est voltando-se para a utilizao do modelo REST. Mesmo assim, aos ainda interessados em utilizar-lo, ser possvel fazer-lo atravs da instalao de um plugin. 4.3 Tempo de desenvolvimento Ruby on Rails segue dois conceitos que visam aumentar a produtividade do desenvolvedor: DRY e Convention over Configuration. Estes mtodos esto implementados por todo o Rails, mas podem ser mais notados nos "pacotes" do Active Record (ORM, Object Relational Mapper) e Action Pack (MVC) 4.4 DRY DRY (Don't Repeat Yourself, No se repita) o conceito por trs da tcnica de definir nomes, propriedades e cdigos em somente um lugar e reaproveitar essas informaes em outros. Por exemplo, ao invs de ter uma tabela Pessoas e uma classe Pessoa, com uma propriedade, um mtodo "acessador" (getter) e um "mutador" (setter) para cada campo na tabela, tem-se apenas no banco de dados. As propriedades e mtodos necessrios so "injetados" na classe atravs de funcionalidades da linguagem Ruby. Com isso, economiza-se tempo, j que no necessrio alterar a tabela, o "bean", o "form bean", o "local home", o "home", o "session", Alterando apenas no banco de dados, tudo o que se baseia nessas informaes atualizado automaticamente. 4.5 Convention over configuration Na maioria dos casos, usamos convenes no dia-a-dia da programao, em geral para facilitar o entendimento e manuteno por parte de outros desenvolvedores. Sabendo

12

disso, e sabendo que o tempo gasto para configurar XML em alguns frameworks de outras linguagens extremamente alto, decidiu-se adotar esse conceito. Ele diz basicamente que se deve assumir valores padro onde existe uma conveno. Caso o desenvolvedor deseje, pode-se sobrescrever essa conveno com o valor necessrio. Por exemplo, uma classe User pode ter seus dados armazenados na tabela Customer. Seguindo a conveno, seria na tabela Users. Com isso, o tempo de desenvolvimento cai ainda mais. 4.6 Escalabilidade Uma questo freqente sobre a escalabilidade de aplicaes escritas em Rails. Ao contrrio de outras tecnologias, voc no precisa fazer um cdigo especfico para que o sistema esteja preparado para "escalar". Quando necessrio, pode-se adotar uma das tticas disponveis para escalabilidade em Rails. Vale notar que o nico problema da escalabilidade a manuteno de sesses entre servidores. Portanto, a sada mais bvia guardar estas sesses em volumes NFS, acessveis por todos os servidores de aplicao. Outra ttica usar o armazenamento de sesses diretamente no banco de dados. Uma terceira, seria salvar a sesso em um cookie na mquina do usurio. Como pode-se ver, uma aplicao Rails j nasce com todo o suporte necessrio para crescer sem traumas. Porm, a maioria dos sites no necessita de esquemas sofisticados de escalabilidade. Em sites menores ou normais, uma configurao padro do servidor web consegue suportar uma boa quantidade de carga, principalmente se forem usados o LightTPD e FastCGI. Existem casos de sites feitos em Rails que suportaram 5 milhes de visitas em um ms, ou seja, aproximadamente 115 por minuto, uma performance considerada bastante suficiente para 90% das aplicaes atuais.

13

5. CONCLUSO
A linguagem Ruby uma linguagem que possui aspectos interessantes que vale a pena conhecer. Aprender uma nova linguagem de programao sempre o tornar melhor nas outras linguagens que voc utiliza. Cabe a cada um decidir se ir ou no estudar Ruby.

14

6. BIBLIOGRAFIA
Origem: Wikipdia, a enciclopdia livre. http://pt.wikipedia.org/wiki/Ruby_(linguagem_de_programa%C3%A7%C3%A3o) http://superdownloads.uol.com.br/download/193/ruby-(rails)/ http://www.tiobe.com/tpci.htm http://pt.wikipedia.org/wiki/Ruby_on_Rails

15

Você também pode gostar