Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais] ·  Efetividade ·  Linux in Brazil ·  Floripa  

Lançada a versão 1.8.3 do Ruby

“Gostaria de anunciar que foi lançada a versão 1.8.3 da linguagem de programação Ruby. No meu blog (link abaixo) eu aponto algumas coisas novas dessa versão.” A nota foi enviada por Eustáquio "TaQ" Rangel (eustaquiorangelΘyahoo·com), que acrescentou este link da fonte para maiores detalhes.

Comentários dos leitores

Os comentários abaixo são responsabilidade de seus autores e não são revisados ou aprovados pelo BR-Linux. Consulte os Termos de uso para informações adicionais. Esta notícia foi arquivada, não será possível incluir novos comentários.
Comentário de dog caxorrao
linguagem inútil: ...
Comentário de Arrouter
É nada: É nada. Depois que python saiu da moda, ruby ocupou esse lugar. Agora os nerdinhos de plantão podem chegar e falar "ah, vc sabe python? python já era, agora o lance é ruby!"
Comentário de Ricardo Carvalho
Para quem quer uma introduç: Para quem quer uma introdução a esta Linguegem há um tutorial em português na página do TaQ, apenas acrescento que é bom já ter tido um contato com programação pra ler o tutorial, e desejávle conhecer um pouco de orientação a objeto. Link do tutorial
Comentário de Ricardo Carvalho
linguagem e não Linguegem, m: linguagem e não Linguegem, me desculpem.
Comentário de nemesis
ruby e python: Duas excelentes linguagens.

Não acho que python tenha "saído de moda". As ferramentas são suficientemente diferentes para satisfazerem gostos diferentes.

Ruby tá mais pra um smalltalk + perl. Pragmática como perl, completamente OO como smalltalk.

Python é uma linguagem no estilo do ObjectPascal da Borland, com fácil acesso tanto ao paradigma procedural quanto para OO. Python sempre me pareceu mais um runtime programável do que exatamente uma linguagem perfeitamente coesa, com suas várias funções hook e customizáveis para acesso reflexivo à várias propriedades do próprio ambiente em si.

Não me peça para favorecer uma em favor da outra. Mas se quiserem, posso desfavorecer ambas em favor de Scheme. :)

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de Patola
Faltam recursos: <flamebait>
Li o changelog e não achei o que eu queria. Quando diabos é que vão implementar compatibilidade com a sintaxe da linguagem Java, afinal?
</flamebait>

OBS.: até agora, as melhores explicações de qualquer linguagem eu vi nas flamewars comparando a linguagem com o Java... vamos ver se sai algo daqui!
--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de nemesis
hmm: "Quando diabos é que vão implementar compatibilidade com a sintaxe da linguagem Java, afinal?"

Quando java tiver uma sintaxe mais concisa e flexível.

Agora, seriamente: uma linguagem não pode ficar um pouquinhos mais popular que já começa a pressão por remover as características "estranhas e nerds" que são justamente o que a tornam especial e singular; e acrescentar outras para fazê-la se parecer com a linguagem dominante da hora...

Já ouvi dizer que os muito úteis sigils para diferenciar váriaveis com escopo diferentes -- como $ para globais, @ para de instância e @@ para de classe -- é uma das coisas que enfrentam resistência por parte de programadores acomodados com verbosidade redundante...

Também não tenho certeza de que programadores java estejam à vontade com blocos de código anônimos ( closures, lambdas ) -- apesar de ter à disposição algo similar na forma de inner classes -- e a flexibilidade e conveniência que proporcionam.

Programadores java gostam mesmo é de declarar explicitamente tudo, da forma mais verbosa possível. Em notação húngara, só pra dar um toque de estilo... :)

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de Peter Parker
Generalizar: 1o. ponto: é até bom que uma linguagem script seja menos verbosa do que uma "compilada" como Java (pelo fato de ser interpretada).

2o. ponto: no tutorial da linguagem, o japa avisa que a idéia de ruby não é ser uma linguagem de uso geral como java ou C++.

3o. ponto: é óbvio que por ser uma linguagem dinamicamente tipada vai permitir rebolados a mais. Java foi escrito tendo como base C++.

4o. ponto: eu programo em java, e também brinco com ruby e python. Não me sinto desconfortável assim usando as features destas outras linguagens.

5o. ponto: se formos começarmos de novo flame-war de linguagens, podemos inchar este post até se tornar o maior do br-linux.
Comentário de Peter Parker
Sintaxe: "Quando diabos é que vão implementar compatibilidade com a sintaxe da linguagem Java, afinal?"

Você quer dizer sintaxe C-like, não é?
Comentário de nemesis
generics: "é até bom que uma linguagem script seja menos verbosa do que uma 'compilada' como Java (pelo fato de ser interpretada)."

É bom qualquer linguagem ser menos verbosa do que java. Toda aquela penca de declarações para satisfazer o compilador só polui visualmente e serve para vender IDEs pesadas para lidar com essa complexidade redundante.

No caso específico de ruby, se vc está insinuando que linguagens dinamicamente tipadas modernas como ruby ou python seriam mais lentas se usássemos variáveis com nomes muito longos ou keywords extensas, vc está equivocado.

Os interpretadores modernos dessas linguagens estão muito à frente dos antigos e lentos interpretadores basic, que tinham que ler e interpretar cada linha de código repetidamente. Os interpretadores modernos interpretam o texto fonte uma vez apenas, e aí trabalham em cima de bytecodes gerados ou de uma AST ( Abstract Syntax Tree ) interna.

Nomes longos não fariam muita diferença, portanto, pois eles seriam convertidos para localizações em tabelas de símbolos ou nodos AST, ao invés de comparar via strings diretamente...

"no tutorial da linguagem, o japa avisa que a idéia de ruby não é ser uma linguagem de uso geral como java ou C++."

Bem, cada um tem que vender seu peixe da melhor forma possível.

Python e Ruby estão tentando encontrar seu lugar no mercado e para isso, ou concorrem diretamente com as linguagens estabelecidas, ou primeiro tentar se firmarem em nichos de mercados como alternativas "leves" para tarefas específicas e especializadas.

Ruby definitivamente é uma linguagem de propósito geral, tanto quanto Java. Mas não tanto quanto C++, por exemplo. Vc pode implementar drivers de dispositivos ou kernels para sistemas operacionais com C++, mas não com Java ou Ruby...

"é óbvio que por ser uma linguagem dinamicamente tipada vai permitir rebolados a mais. Java foi escrito tendo como base C++."

Java é mais dinâmica do que C++, à propósito.

"Não me sinto desconfortável assim usando as features destas outras linguagens."

Se vc conhece ruby e python, vc não é um programador Java qualquer, entendeu? ;)

"se formos começarmos de novo flame-war de linguagens, podemos inchar este post até se tornar o maior do br-linux"

Bom, pra ser honesto, duvido um sobre ruby fique tão grande quanto aquele indignado com a Linux Magazine permitindo anúncios "Get the Facts" ou este aqui: http://br-linux.org/linux/?q=node/665

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de Patola
Nonsense: Você quer dizer sintaxe C-like, não é?

Você realmente acha que a pergunta que eu fiz significa alguma coisa?

Tolinho.
--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de m_
C-LIKE: Não que aprender uma sintaxe nova, ou até mesmo uma linguagem nova seja um grande desafio, é um desafio mediano, mas sintaxe C like é dominante.
Se 90% conhece porque não utilizar uma variante mais simplista nos moldes da necessidade atual, facilitando o "abocanhar" de novos usuários? Pessoalmente gosto de python, out para verbosidade.

Sim script like language ROX para 90% dos casos. out para os EE do java.

Entre PHP e ruby: RUBY ! Mesmo nicho, mesmo problema, uma ferramenta melhor.
Comentário de eu_de_novo
Cadê o botão responder do tópico?: Meu post (ACIMA) *não* é uma resposta ao usuário Patola. Apenas não encontrei o butão de post para o topico, acabei utilizando o de resposta mesmo.
Comentário de Pikachu
"é óbvio que por ser uma li: "é óbvio que por ser uma linguagem dinamicamente tipada vai permitir rebolados a mais. Java foi escrito tendo como base C++."

Java é mais dinâmica do que C++, à propósito.

Bom, o cara disse isso: foi escrita tendo como base C++, óbvio que melhorada.

Acho errado vc berrar a todos os ventos que tipagem dinâmica é tão melhor que estática: ambas tem suas vantagens.

E ficar falando em verboso, isso é tudo que sabem falar. Só pq ao invés de usar chaves pra denotar começo e fim de bloco e usar a palavra "elif" ao invés de "else if"...
Comentário de Guaracy Monteiro
Lugar errado?: "OBS.: até agora, as melhores explicações de qualquer linguagem eu vi nas flamewars comparando a linguagem com o Java... vamos ver se sai algo daqui!"

Até agora, as melhores explicações sobre qualquer linguagem eu vi aprendendo (tentando aprender) Lisp. O resto é tudo do tipo: "o teu é maior que o meu mas eu tenho dois", "a minha namorada é mais bonita que a tua", etc.

Leitura divertida para o final de semana:
http://www.lisperati.com/casting.html

Leitura séria para o final de semana:
http://www.htdp.org/

entre dezenas de outros ótimos.

Mas se o teu negócio for ficar peneirando informações, tenta:
http://www.theserverside.com/news/thread.tss?thread_id=33120
(não li mas deve ter bastante coisa :-)
Comentário de Patola
Novela educativa: Não, sério, eu entendo o que você quer dizer, mas há algo numa flamewar que torna a explicação mais vívida e fácil de entender e memorizar, uma espécie de súplica desesperada para a apreciação das qualidades e diferenças que não existe em um resumo ou tutorial. Não sei se você sabe, mas o que mais ajuda o armazenamento e resgate de memórias é o grau emocional associado a algo, e nos flamewars o grau emocional é, nem preciso dizer, bem alto.

Outras características são mais legais ainda em um flamewar. Você tem humor, sarcasmo, cinismo, gente acuada, tem gente brava, tem as comparações que você citou (que intercaladas com parcimônia, fazem ficar ainda mais divertido)... é como assistir uma novela e ainda assim aprender. Útil e agradável

E, claro, isso tem mais sentido quando o flamewar é intenso mas curto, como os que aparecem aqui. O flamewar do theserverside pode ser bem interessante, mas é longo demais.
--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de Guaracy Monteiro
Então não é um desafio.: A sintaxe é apenas um dos aspectos no aprendizado de uma linguagem nova. Resumundo, aprender uma linguagem nova também não é um grande desefio. Ok, podes começar com 'J'. É muito legal.

Existem outras que também são simples é muito legais para aprender no final de semana (Erlang, Haskell, OCaml, Prolog, etc).
Comentário de Ark
Não acho que num flame-war s: Não acho que num flame-war se aprenda uma linguagem. Vai fazer uma aplicação de verdade em alguma delas, de preferência profissionalmente, que vc vai ter emoção de sobra, e de quebra, aprender (até pq vai ser na marra).
Comentário de nemesis
não, não é por isso...: "E ficar falando em verboso, isso é tudo que sabem falar. Só pq ao invés de usar chaves pra denotar começo e fim de bloco e usar a palavra 'elif' ao invés de 'else if'..."

deixa de ser infeliz! não é isso que torna essas linguagens tão enxutas com relação a java! que tal o fato de não ter que ficar cansativa e explicitamente declarando tipos ou visibilidade de atributos e métodos? que tal o fato de que vc não precisa declarar uma classe inteira só para poder usar um método? que tal o fato de que ter funções ( ou métodos, subrotinas, procedures ) serem cidadãos de primeira grandeza em seu runtime e poderem ser livremente passados como parâmetros ou retornados de outras funções, como outro valor qualquer?

tudo isso junto é que faz dessas linguagens tão enxutas.

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de nemesis
mas não se pode negar...: ...um flamewar é realmente divertido e sempre apaixonante. :)

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de nemesis
huhauhuahua: "http://www.lisperati.com/casting.html"

cool!

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

Comentário de m_
Sim um flamewar tem um escopo: Sim um flamewar tem um escopo muito pequeno. Nunca vi discutirem por exemplo que para acessar um método utilizamos o simbolo '.' em um flamewar.

O ponto levantado foi interessante, agregar emoção de fato facilita a memorização, mas não o aprendizado. Vide: mesmo após passear por Java X Mono (dotNET) fui fuçar no mono.

E comentando o assunto: Acho de importancia máxima a criação/adoção de coisas novas (e boas). Já pensou estar usando ainda basic,java,php e asp pra tudo quanto é lado? =/ que m****!

Uma coisa muiiiito legal é o active record do ruby, mão na roda.
Comentário de m_
Exemplo: Eu acho isso aqui motivo suficiente:

public final MyNewBlim method(int a, MyObject b, DoDo c) throws BleException, LaLaLaException{
System.out.print("Verbose. Morra de verborragia!");
//otras cositas mas
}

Aviso: tá meio exagerado mas é beeeem comum ver isso.

Isso sem contar a forma antiquada das variaveis, os padrões...
Sei lá, Java pra mim só merece atenção mesmo pelo material publicado sobre OO e coisas afins. Se não fosse isso iria dar tanta atenção quando dou para dotNET, nenhuma.

Vou dar uma de ignorante: para com esse papo de python != verbose pq tem elif. Na boa isso ai é um argumento de ignorante (não que eu não seja um tbm) que não fez o dever de casa. Dito. =/
Comentário de m_
Gostei foi da primeira figura: Gostei foi da primeira figura. Lisp é alien 100% =P.
Comentário de m_
Essa ai é fácil. O que torn: Essa ai é fácil. O que tornou o desafio mediano, na média ponderada, foram linguagens do tipo BrainFuck. (veja no wikipedia)

Brincadeiras a parte, sinceramente, Java é desestimulante para um iniciante. O mesmo eu não digo de ruby e python.


Para pra ver em quanto tempo você se familiariza com Java.
Compare com Python e afins.
Dá pra pegar a manha em umas 3 coisas diferentes e o sujeito do java ainda tá lá vendo porque diabos existe tanta sigla e especificação diferente.

Comentário de Hugo
Acabei de ver: "Nunca vi discutirem por exemplo que para acessar um método utilizamos o simbolo '.' em um flamewar"

Acabei de ver. =]

--
"Precisamos de mais gênios humildes no mundo, hoje somos poucos!"
JID: hugo@jabber.org
Comentário de Pqp
Nossa, realmente. C# é bem m: Nossa, realmente. C# é bem menos verboso.
Comentário de m_
Não diria isso. Considere o: Não diria isso. Considere o mesmo exemplo acima, remova o lançamento de exceptions e substitua o "System" do Java por "Console".
Yeap. Sintaxe idêntica.
Se considerar os geradores de código (VS.NET) a coisa piora.
Comentário de xxx
:
O projeto do java foi mais ou menos assim: "vamos resolver todos os erros do C++! Mas, pensando melhor, vamos evitar mudar muita coisa, mesmo que estejam erradas... "

Mais tosco é comparar com o C# e ver que "copy & paste" virou estratégia de projeto...

O Python é menos verboso pq voce só escreve o que o programa vai fazer...

Comentário de Manoel Pinho
Verborrágico: Pessoal,

"Verboso" não existe. O correto seria "verborrágico".

Prof. Pasquale :-)
Comentário de brain
Existe sim: Existe sim, Manoel. E vem do latim, sem intermediários.
Comentário de Patola
Viu como funciona?: Existem coisas que só um flamewar faz por você! C.q.d.
--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de Patola
Não foi isso: Não acho que num flame-war se aprenda uma linguagem.

Não foi exatamente isso que eu disse. Resumindo, o que eu disse foi que é didaticamente interessante. Mas não disse que servia pra ser única fonte de aprendizado nem que dava pra aprender a prática da linguagem nela.

Vai fazer uma aplicação de verdade em alguma delas, de preferência profissionalmente, que vc vai ter emoção de sobra, e de quebra, aprender (até pq vai ser na marra).

Been there, done that. Também é um jeito ótimo, se não traumático, de aprender.

--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de Patola
A beleza de um flamewar: A sintaxe é apenas um dos aspectos no aprendizado de uma linguagem nova. Resumindo, ...

Mais uma das coisas que tipicamente só acontecem em um flamewar: alguém (eu) fala algo sem sentido e alguém, respondendo, dá um sentido particular para este algo (ou através de várias respostas modificando ligeiramente o significado, como num telefone sem fio) e então a coisa toma uma perspectiva totalmente nova e vira praticamente uma tese acadêmica...
--
LinuxFUD, o TIRA-TEIMA dos ataques ao software livre: http://linuxfud.org
Comentário de xxx
Não é o mesmo nicho. PHP é: Não é o mesmo nicho. PHP é do nicho Web e Ruby não tem nicho - serve para muitas coisa (até Web)

Eu torço para o Ruby cresça na Web, pq o Rails é excelente.
Comentário de m_
O nicho: Errado, ruby possui o mesmo nicho de php. PHP tbm é uma lingugem de propositos gerais (não dá pra fazer drivers e SOs =\ ), porém seu uso é limitado a web (claro, tem o php-gtk). Ruby não foge a regra.

E no mais, programação hoje é web mesmo...

#existe wiki ruby em portuga?#
Comentário de nemesis
O lixo: php é como java, um subremendo de perl mantendo a mesma sintaxe terrível, mas sem metade da flexibilidade e puro poder de fogo. C++ no caso de java... :)

;; ((lambda (x) x) "Isto é um comentário e não será executado nunca")

BR-Linux.org
Linux® levado a sério desde 1996. Notícias, dicas e tutoriais em bom português sobre Linux e Código Aberto. "A página sobre software livre mais procurada no Brasil", segundo a Revista Isto É.
Expediente
Sobre o BR-Linux
Enviar notícia ou release
Contato, Termos de uso
FAQ, Newsletter, RSS
Banners e selos
Anunciar no BR-Linux
BR-Linux apóia
LinuxSecurity, Tempo Real
Suporte Livre, Drupal
Verdade Absoluta
Pandemonium
Efetividade, Floripa.net
sites da comunidade
Ajuda
Moderação
Flames: não responda!
Publicar seu texto
Computador para Todos
Notícias pré-2004
Tutoriais, HCL pré-2004