2008. 03. 12, szerda keltezéssel 13.27-kor Greg Donald ezt írta:
> On 3/12/08, Zoltán Németh <[EMAIL PROTECTED]> wrote:
> > ok, I admit I don't have experience with Ruby but I have experience with
> > php. and I don't have experience with Ruby because I read some manuals
> > and example codes and whatnot and I just could not get to like it at
> > all.
>
> That's a lot different from your previous blanket statement of "Ruby
> as a language just plain sucks". I hate you less now that I know a
> bit more about you, see how that works?
didn't you notice the smiley at the end of that line? that was not a
serious plain statement but some mocking at you because you made a plain
statement about RoR being better.
>
> > it's just so strange and different from anything I know (php, c,
> > java) -
>
> Ruby has a lot of functional language influence. Once you use it you
> really start to like how much shorter your iterative loops are for
> example. The first two developers I worked with using Ruby also knew
> ML and Scheme. One of them suggested I go study Scheme so I would
> appreciate Ruby more. I did so for several weeks and now I do. Ruby
> provides everything from the procedural world we're currently used to
> seeing in PHP, C, and Java, but it also adds functional style that
> makes for some utterly beautiful, compact code.
'utterly beautiful' is again a matter of taste :)
of course, I admit that Ruby would provide me all the features I
currently use, it has to, otherwise noone would start using it instead
of their current language. and yes, I see from the examples that it is
shorter. but is shortness/compactness such a great advantage? I'm not at
all sure about that.
>
> > and I could not find out any good reasons for most of the
> > differences...
>
> And you won't until you use it in practice more than once. But that's
> true of most any language. I worked in Python by day for the better
> part of last year and man was it fun seeing other ideas for how to do
> things.
that might be true, but in the last year I've been working on the same
big project, and it seems I will be working on it for this year too, you
know, next versions and such, so at this moment I don't have serious
amount of time to experiment with anything. in fact, I'm also a bit
workaholic and also I'm attending some evening university so I hardly
have time to read a manual completely...
>
> > e.g. how come function definitions are between 'def' and
> > 'end'?
>
> def is shorter than PHP's "function" qualifier? I give up. 'end' is
> optionally replacable with '}', as is 'do' and '{' but you probably
> didn't ever get to that page in the Ruby book you read.
as I said above, I had/have not much time, so my reading might have been
sloppy... and is shortness that important?
>
> > I just don't like it and it's a matter of taste,
>
> In my experience "matter of taste" usually equates to "resistance to
> learning", but call it what you will.
well, there is difference between that. its like if you have a very
limited time frame you can spend on learning, you choose to learn more
of something you like already, no? sure, if I had more time, I would
experiment more with things I don't like or I don't know really.
>
> > so there is no
> > need to argue about it more... :)
>
> There's always reason to argue the features of a given language. For
> example you may need to try and convince me at some point that Zombie
> is a great language:
>
> http://www.dangermouse.net/esoteric/zombie.html
>
> Or not.
>
> > however that's not about the framework, I admit that Rails had several
> > new and useful concepts, and I know that the framework I currently use
> > took a lot of ideas from there.
>
> Those other frameworks can never be as powerful as Rails because they
> aren't written in something as meta-capable as Ruby. Can you do this
> in PHP?
>
> class Foo
> end
>
> f = Foo.new
>
> class Foo
> Resource.find( :all ).each do |r|
> res = r.name.downcase
> define_method( "op_cost_#{ res }".to_sym ) do
> self.properties.inject( 0 ){ |c,p| c + p.send( "op_cost_#{ res }" ) }
> end
> end
> end
>
> cost = f.op_cost_wheat
>
> No you can't. PHP doesn't support adding methods to classes at
> runtime, nor does it support adding methods to instantiated objects of
> those classes at runtime. And that's just one example. These sort of
> OO advantages exist throughout Ruby.
>
> You don't love these features because you don't know they exist. You
> don't know they exist because you haven't given the language more than
> a few minutes of your time. Running through some silly little 5
> minute Rails scaffolding tutorial will in no way teach you the real
> power that exists in Ruby.
hmm that feature looks interesting, however I can't really think of a
case where I would want to modify the class definition of an
instantiated object.... maybe later, when I'll have some more time I
give Ruby a second run, and we'll see what comes out of that.
greets,
Zoltán Németh
>
>
> --
> Greg Donald
> http://destiney.com/
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php