[quote=Luca]Olá
10 Things I Hate About Ruby
Antes de chamá-lo de idiota, lembrem-se que o autor Elliotte Rusty Harold é professor do Computer Science Department da Polytechnic University em Brooklyn. É autor de 18 livros de Java e de XML (tem gente que acha escrever livros fácil e sem valor), palestrante em muitos eventos e também dono do Cafe au Lait que é um dos sites mais antigos sobre a tecnologia Java.[/quote]
Bom, respeito a opinião do cara, mas discordo em muitos pontos.
Não faria sentido em ruby o método se chamar new. Quando o initialize foi chamado, o new já executou. A lógica é que o new, chama o initialize. E em ruby, o new na verdade executa todo o blobo da classe, então se eu tiver uma classe assim:
class Teste
puts "Ola Mundo"
end
Quando eu chama Teste.new vai aparecer “Ola Mundo” na tela. Então, a lógica é o new executa o bloco de código da classe e depois chama o initialize, que pasmem inicializa um objeto JA criado, e não cria um objeto. Então, na minha opinião, a semantica está correta.
“Weak typing” é o que dá um poder tremendo ao Ruby, e sim, têm as suas desvantagens e as suas vantagens também.
Me sorry, mas se ele quer um linguagem fortemente tipada essa não é o Ruby. Simplemente não é. Procure outra ou utilize java. E viva as diferenças.
No inicio eu achava estranho também, mas confesso que hoje eu gosto. Mas não ficaria triste se fosse diferente.
Por ser de fraca tipagem, vc nunca define qual, e se o metodo têm retorno, por isso você é obrigado a sempre retornar alguma coisa, mesmo que seja nil.
Variaveis globais em ruby são pertecentes a modulos que você importa. Seria mais ou menos como static imports do Java 5.
:? Na boa? Nada a ver. Se for para começar a discutir nome de métodos… Só uso o Calendar para isso.
Novamente questão de gosto. Sugar sugar sugar.
É isso é estranho mesmo.
Lembre-se sempre que Ruby é um linguagem de script, muuuito utilizado em shell. E quando se trata de fazer scripts shell essas variaveis globais são uma mão na roda. Se voce for usar rails, apenas ignoreas.
Qual o problema disso? Em ruby, que é um linguagem de script. Em 99% do tempo você tá fazendo metodos publicos. Por não ser default se vai facilitar? E é tão simples sair do normal. Segue abaixo um exemplo de classe só com publicos e outro com publicos e privados
[code]class SoPublico
def methodo1
end
def methodo2
end
def methodo3
end
end[/code]
[code]class PublicoEPrivado
public
def methodo1
end
def methodo2
end
private
def methodo3
end
def methodo4
end
end[/code]
Complicado?
Como assim? Em ruby metodos podem ser private, public e protected…