Navindra Umanee wrote: > Zach Dennis <zdennis / mktec.com> wrote: > >> - you can use string interpolation, ex: "x: #{@myvar}" instead of >>having to say "x:" + myvar' > > > Ruby seems to lose here. The syntax #{@myvar} is a rare case of > ugliness. I don't know what the official ruling is, but when using variables you can drop the {}. @a = "here i go again" puts "#@a" @@a = ["here", " i", " go", " again" ] puts "#@@a" Also you have to way in heredoc support, which java dont got: a = "interpolation" b = "easier" c = "You know what I'm saying" str =<<END i love string #{a}. it makes my life #{b}. #{c} END puts str The larger area of text you have to write the nicer it gets in ruby and the more it sucks in java to have to write " + ". Especially when you have really long strings and are dealing with newlines, spaces and tabs. I like to neatly format my source and have it be a max of 72 to 80 characters per line. I hate writing long text in java because I end up having ugly source on 10-15 lines with a gazillion " + " and \n's that is hard to visually parse out or I have 50 lines of + " ..." on it's own line. No matter what you say, I prefer doing interpolation over " + " anyday. I've writtent 15 times the amount of java code in thepast few months for work-related reasons then i have in ruby, you would think I'd prefer the " + " way... >> - ruby doesn't force you to have 1 file per public class, you can have >>all the public classes you want in a file (not that you have to do this, >>but it's a nice option to have) > > > On the other hand, if you *want* to put each class in a file, you end > up having to painfully "require" each file every time you want to > access a class. Java can automatically find classes in the current > package and load them. Or is just me? Is there a Ruby Way? This totally depends on how you use your code. Most likely you won't need to access every file from it's src file. And if you do it is best to design a loader class: In main.rb you have: require "gui/gui" require "data/data" - gui/gui.rb which loads all required files for module GUI - data/data.rb which loads all required files for module DATA in gui.rb you have: require "layout" require "fonts" require "2dapi" require "3dapi" and similar in data/data.rb. You don't have to require each individual file you just have to design your program. I am not saying what you say wouldn't be nice, and someone may already have a modification to *require* for this to work, but you are not hindered right now in doing this, it just requires more discipline on the design and access of your code. And back to a java principle...alot java code are for one or two lines of code that use ((MyClass)getGenericObject()).setThis( true ); In Ruby you don't have to say "require myclass" just to do that. You just say: get_obj.this = true Zach