If we take a look at the very first code example from the talk it looks
like this:
account.people.each do |person|
puts person.name
end
You could translate this in two ways when translating into D.
First way:
foreach (person ; account.people)
writeln(person.name);
Am i alone thinking D one better here?
If we have a look at the next code example from the talk there is no
clear and natural way to translate it into D, first the Ruby code:
class PeopleController < ActionController::Base
before_filter :authenticate
def index
@people = Person.where("age > 30").order("name DESC")
respond_to do |format|
format.html
format.xml { render :xml => @people.to_xml }
end
end
end
And then the translated D code:
class PeopleController : ActionController.Base
{
Person[] people;
mixin before_filter!(authenticate);
void index ()
{
people = Person.where("age > 30").order("name DESC");
respond_to((Format format) {
format.html;
format.xml({
render(["xml" : people.to_xml]);
});
});
}
}
class PeopleController : ActionController.Base
{
Person[] people;
mixin before_filter!(authenticate);
void index ()
{
people = Person.where("age > 30").order("name DESC");
respond_to(format) {
format.html;
format.xml {
render(["xml" : people.to_xml]);
}
}
}
}
D here could use some help at respond_to, but overall i still prefer D way.
Maybe it is just me, i like flexibility of C like languages, and D
examples here also adds beauty to it.
--
Using Opera's revolutionary email client: http://www.opera.com/mail/