Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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
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.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.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.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.
Representao grfica:
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.
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