what of PHP frameworks like cakePHP and smyfony ?

I am curious as to why or why not other MVC approaches in PHP or
other languages might advance alongside of Rails ? Perhaps this is
because Rails is as much a framework as a language or platform and the
same thing could be done conceptually in other ways.

I Also find it a curious phenomenon why very intelligent developers I
have known and met will say derogatory things about Rails without
knowing much about it. Has anyone had similiar experiences ?

I am curious as to why or why not other MVC approaches in PHP or
other languages might advance alongside of Rails ? Perhaps this is
because Rails is as much a framework as a language or platform and the
same thing could be done conceptually in other ways.

so ask about them in the cakePHP / symfony list

I Also find it a curious phenomenon why very intelligent developers I
have known and met will say derogatory things about Rails without
knowing much about it. Has anyone had similiar experiences ?

no, and dont consider the makers of rails as "unintelligent", and the ones you met...intelligence is often a very relative term :wink:

Hey

I am curious as to why or why not other MVC approaches in PHP or
other languages might advance alongside of Rails ? Perhaps this is
because Rails is as much a framework as a language or platform and the
same thing could be done conceptually in other ways.

I played with Symfony, and for PHP it's a very advanced thing. The reason
it cannot be compared to Rails is the language Rails is based on. Ruby is
dynamic, OO to the core, concise, beautiful, fun ti use. Rails is a natural
child of Ruby and its principles.

I Also find it a curious phenomenon why very intelligent developers I
have known and met will say derogatory things about Rails without
knowing much about it. Has anyone had similar experiences ?

Of course. Imagine you've spent 3 years of your life becoming a J2EE
professional
studying all these application servers, servlet containers, EJB, all
those endless APIs.
And now you see these Rails guys who can do the same without sacrificing
the beautiful architecture, and who spent so much less time studying
the framework :slight_smile:

Cheers,
Yuri

I am curious as to why or why not other MVC approaches in PHP or
other languages might advance alongside of Rails ? Perhaps this is
because Rails is as much a framework as a language or platform and the
same thing could be done conceptually in other ways.

It's all about the Ruby. Rails beauty is a direct result of embracing
Ruby's dynamic nature. A select few other languages could create
reasonable Rails clones (Python, Smalltalk, Lisp), but I think that
would be a mistake. A good framework should be optimized for the
language it is created in. Python has Django, Smalltalk has Seaside.
These are great frameworks because they have a strong vision and
understanding of the core language behind them. They don't try to
copy something else.

I think PHP frameworks will have a hard time keeping up because the
language itself is so primitive when it comes to OOP. A language like
Java is better suited to creating a great framework, but there you run
into a culture clash. Java is very protective of the programmer,
which feels needlessly restrictive to a rubyist. The Java programmer
prefers to receive as many errors as possible at compile-time, and is
content to let an IDE manage the boilerplate. The rubyist prefers
more freedom and less typing, and is willing to debug more cryptic
errors as an expense. I think it's pretty clear that neither approach
is superior, but people tend to have a preference. I, for one, have
no interest in the explicit precision of the Java way, though I can
see its benefit in certain applications.

I Also find it a curious phenomenon why very intelligent developers I
have known and met will say derogatory things about Rails without
knowing much about it. Has anyone had similiar experiences ?

Most likely they are reacting to the hype engine of the Rails
community. But just as hype is a bad reason to pick a technology,
it's just as bad a reason to shun it. Most Rails critiques from Java
guys feel like they made a cursory examination of the technology just
to confirm their prejudices. Rails has its warts, to be sure, but its
an incredible code base. A lot of critics seized on the Twitter
scalability issues as confirmation that Rails doesn't scale. But a)
they're already doing 17,000 requests per second and b) they haven't
hit a brick wall, they just need to scale to multiple databases.
That's a significant challenge, but the fact that it doesn't have a
readymade solution in Rails is more of an indication of the rarity of
an app that does 17,000 requests/second than any fundamental
limitation in Rails.

I think a lot of it stems from what Yuri says. If you are invested in
J2EE and Rails comes around doing a lot of the same stuff at a
fraction of the development time, that is a real threat. It's only
natural to be defensive. Certainly there are many many things that
J2EE does that Rails does not that can be clung to as a sort of self-
validation, but it's not a sign of a good programmer to search for a
litmus test they can use to dismiss new technologies.

It's all about the Ruby. Rails beauty is a direct result of embracing
Ruby's dynamic nature. A select few other languages could create
reasonable Rails clones (Python, Smalltalk, Lisp), but I think that
would be a mistake. A good framework should be optimized for the
language it is created in. Python has Django, Smalltalk has Seaside.
These are great frameworks because they have a strong vision and
understanding of the core language behind them. They don't try to
copy something else.

I think PHP frameworks will have a hard time keeping up because the
language itself is so primitive when it comes to OOP. A language like
Java is better suited to creating a great framework, but there you run
into a culture clash. Java is very protective of the programmer,
which feels needlessly restrictive to a rubyist. The Java programmer
prefers to receive as many errors as possible at compile-time, and is
content to let an IDE manage the boilerplate. The rubyist prefers
more freedom and less typing, and is willing to debug more cryptic
errors as an expense. I think it's pretty clear that neither approach
is superior, but people tend to have a preference. I, for one, have
no interest in the explicit precision of the Java way, though I can
see its benefit in certain applications.

PHP has some object oriented features, which could be improved upon in
another release of PHP; however, I seriously doubt there is any real
momentum for that to happen is my impression. I told one guy I worked
with that PHP is old technology. He said he disagreed with me and
pointed out how many PHP books there are. Another young developer at
work said that Rails along with iterative development is a 'cult' as
he refered to it. Someone else sort of told me with the exception of
this one PHP project we have, I work at a Java shop and perhaps I
shoud stop talking about Rails. None of these people are dumb at all,
they in fact seem like very good developers in many ways. I have also
been enthuisastic enough about PHP that I went out and bought 3 PHP
reference books because of the PHP project we have been doing. I'm
just surprised however because I never react that way against any
technology I am not familiar with. Come to think of it, I picked up on
C++ and Java very early on and even though I wasn't doing any of that
stuff at work when they came out, I went out and bought some books.
The only thing I made a bad call on was that I favored Pascal over C
back in the late 1980's.
I used to work in VAX Pascal on digital Vax machines, Apollo Pascal,
and Metaware Pascal on Sun. I liked Pascal's type checking at the
time. However, I allways though C++ was burdened too much with
backward compatability with C and that Pascal would have been a
smoother transition into Java. I liked Java in that it was more like
Pascal to me.

Anyway, here is a curious one here, this guy says PHP is foing way
better than Rails, but look down a few
graphs and he shows that most new open source projects are Rails. That
seems to blow a hole in his entire premise:

http://www.ohloh.net/articles/php_eats_rails

It's not even that PHP is old, but that it is not designed for
software engineering. It's designed first and foremost to hack
together small stuff quickly. There are efforts to improve PHP, but
it's kind of silly to wait for that when 20, 30 and 40 year old
languages are already much more powerful. FWIW I love PHP and still
use it for a lot of things, but not to develop applications.

I don't think Rails will ever surpass PHP because Rails targets a
different user base than PHP. Even if deployment became tremendously
easy, Rails still requires a memory footprint that could only decline
if Rails could somehow be made thread-safe (don't hold your breath).
However as a Rails developer I have no desire to see Rails become
dominant. That would mean more dead-weight in the community and a
general decrease in the quality of open-source Ruby as lowest common
denominator jumped on board. The important thing is that Rails (and
Ruby) have the critical mass to sustain a viable platform going into
the future.

I couldn't care less if someone thinks I'm a member of some sort of
cult. It's a waste of time to debate people that are so entrenched
and defensive as to make such ignorant claims.

Another interesting oversight in the link above at Ohloh (http://
www.ohloh.net/articles/php_eats_rails) is in the first graph which is
looking at the number of lines of code added to projects. We all know
that rails requires far less lines of code to produce the same
functionality which explains the later graph showing more new rails
projects. To me this says Rails developers are getting the job done
(with less lines of code) and starting new projects while there PHP
collegues are still adding code to their exising projects.

However, personally I don't believe it matters which is best (which is
objective anyway depending on the project). I am passionate about
software development full stop, in all languages. But Rails has been
an awakening to new (and some old) ideas which work really well
together and I am getting a lot from Rails as a developer that has
improved my developing in other languages too. I have used many
languages over the years, including Pascal, Perl, Java, PHP (which
reminds me that when I was first developing in it, it was called
Personal Home Page and it's mission was to be a simple language anyone
can pick up which I believe still holds true as I know several non-
programmers who get by, writing their own personal sites using PHP,
which I think is brilliant and it is powerful enough to handle many
complex sites) more recently I have used .Net.

Everything I have learnt doing Rails has improved me as a developer. I
have used an MVC approach in .Net for example using SubSonic (inspired
by the ActiveRecord elements of rails) which although is not as nice
to use or clean as rails has helped me in .my Net projects. Rails is
brilliant and I truely believe that learning rails has made me a much
better developer.

Finally, one of the thinks I like most about Rails is the community
which is supportive and friendly. I worry that this would be lost if
the masses came over to it from other languages.

However, personally I don't believe it matters which is best (which is
objective anyway depending on the project). I am passionate about
software development full stop, in all languages.

  If I am working using a language like Rails which will get the job
done better, then I get a lift out of that and it will make my life
easier and will mean that stuff gets done more effectively and I won't
be as stressed out and frustrated. It often seems for me that it ends
up sounding like I am selfish and just want to play around with
technology that I like and I don't care so much about the project and
so on. There allways seems to be some disconnect with non technical
management. I tried to advocate a Rails solution over installing
200,000 lines of open source PHP code and then get locked into that.
It seemed it was portrayed that I was advocating a "custom" solution
when the functionality was allready there, except the functionality
that was allready there was very rigid and difficult to work with.
Latter I sent an email saying I hadn't really done my salesmanship
very well and that in fact there are many examples of getting alot of
functionality going using Rails in a short amount of time. I also find
it difficult to leave certain jobs because I need alot of flexibility
and have vacation requirements that alot of companies do not provide
so I end up having to compromise a great deal. At least I am geting
some PHP experience which even though I had applied to Rails jobs
before, I was often asked if I had done PHP and I had not. I had
bought a book on PHP and it sort of seemed like Perl with classes
added and not much else and I just hadn't gotten very excited about
it. I was learning javascript and not getting too excited about that
either as it was a whole language to learn that had a limited usage in
a browser. I was reading Java certification guides and thinking to
myself why do I want to memorize all this API and configuration stuff
to get certified when all I want to do is write code and look in a
manual when I need to ? It used to be I could say I was a C++
programmer and get a job, but then it seemed like Java really meant
J2EE and the stuff out there was just so involved and wrapped up in
API config stuff. It allmost sounds like sys admin work rather than
programming. I was reading SOA books, SOAP books, AJAX books written
from the perspective of Javascript and wondering where all this was
leading, then I bought my first Rails book and it was like this is it,
something to get excited about ...

dear sender,
i�m out of the office until may 29th.
your email will not be forwarded.
for urgent stuff please contact joern@fork.de
kind regards,
alexander

First of rails is not a language, rails is a framework.

Ruby is the language, behind rails and is what makes rails so
special. Active records, view and everything else use heavy amounts
of meta programming to give you all the nice features you see,
something that could not be replicated so well in many other
languages.
Also concerning many intelligent developers as you would call them,
are more stuck in their ways and would not change to any other
language not just rails, most developers who actually understand what
their doing love rails because they can stop having to do the same
repetitive crap over and over and the whole process becomes very
agile. the rails framework is very well thought out with many
references to PPOPE book and the actual framework comes from trying to
feel the need in the commercial world.