From: Robert Klemme Date: 2008-02-25T06:49:55+09:00 Subject: Re: Ruby annoyances for a newb On 24.02.2008 17:25, Miguel Fonseca wrote: > I'm a fresh ruby programmer from Portugal and until now I've been coding > mostly java programs. I'm posting here to find out what you think about > two things that annoy me in ruby: > > - The fact that variables dont have type! Sure this is andy in several > situations but it can also be a source of problems with wrong input > being passed to the methods! Because of this I'me forced to check > manually for the type in the begining of methods (ex: if > price.instance_of? Fixnum ) No, you're not. Please read about "duck typing". If you do not want a dynamically typed language then clearly Ruby is not for you and you are better served with Java. If you want to program in Ruby, you need to adjust your mindset. You cannot expect that Ruby is just another Java even though some things look familiar. > - Second fact has to do with exceptions, in contrast to what happens in > java the catching of exceptions is not forced, so most times I end up > not coding the catch statement wich leads to a lot of run-time errors, > also for system functions I dont't know wich exceptions they throw! This is only partly true: even in Java there is a ton of exceptions that nobody forces you to catch. There has been a lot of debate about checked vs. unchecked exceptions in general. I guess by now everything is said about it elsewhere. :-) There are pros and cons to both approaches. IMHO unchecked exceptions fit Ruby very well while Java's model fits Java very well. > I would like to know your opinion about these two matters. Probably > these are not problems at all, only my java side confusing me! =D Probably. I suggest you get accustomed to the Ruby way, revisit your criticism after a while and see whether you still think it's valid. > Hope I was able to express myself correctly Absolutely. If you are interested, these topics have been discussed excessively here so you will find plenty material in the archives. Kind regards robert