I've been developing some applications with PHP in the past years. In that time, the battle was only about PHP or ASP (or even JSP).
But a few weeks ago, i read a few articles in a couple of forums talking about AJAX anda Ruby On Rails. After a research in many sites, i was introduced to another couple or two of new frameworks.
Now i'm with a dilema... what is the path to go? What to choose... Sundently i realized that PHP don't offers me many features, simplicity, faster and less coding that frameworks like Ruby On Rails offers.
What do you have to say about this? What is your opinion? Do you know good life examples?
People have started cloning the Rails style framework in damn near every language out there nowadays. So if you're comfortable with one thing there might be a tool in that language already that could help speed things up. (I'm a PHP fan so pretty much anything I've got to say is relating to that. I'm also a masochist and tend to skip most of this stuff and just write my own stuff as necessary.)
Try taking a look at CAKE or PHOCOA (or symfony if you're using PHP5) if you want something rails-ish in PHP.
For AJAX itself you can try XAJAX for simplified PHP/AJAX stuff, or just dig straight into Prototype.js with any numberof tutorials. (Tangental but very promising/helpful IMHO for AJAX stuff, especially in cleaning out inline code stuff: Behaviour.js.)
Code Igniter is very easy to use and very similar to RoR. It's a lot easier to use than the rest mentioned above.
I don't like RoR as much as I thought I would.
Ruby is ugly (not as ugly as PHP, but still quite ugly). Ruby is horribly slow. Ruby 2.0, has been vapourware for years (opcode, virtual machine, supposed to be fast). It has horrible XML support.
If you want a different functionality than RoR supports, it's a pain to get it working. For example, they included validation functionality in ActiveRecord, which should clearly be coded in a generic way in it's own class. I want to show, validate, and submit via email a form. ActiveRecord is designed to work with databases, not email. To get around this there is hack1, which makes it believe that it works on a table, hack2, which removes the database code, but you still use ActiveRecord, and hack 3, which requires some not so nice code. There is a ton of functionality in ActiveRecord that should be in it's own separate classes. RoR is all about ActiveRecord.
I have also become a masochist like nifkin. i use php and write my own stuff andbelieve it or not its easy. php is about the easiest language to use and pick up on and i dont think its going anywhere soon. I think there is a lot of hype arround ruby on rails but not many host are supporting it as a viable server side replaecment. also the learning curve on ruby is much higher even if you are well versed in a server side language.
i agree with spooky that rails is not as easy as its hyped to be and many will adopt it not realizing that whoever ugly php or like server side language is, they are buildt on the learning blocks that you need to become a good developer. ruby helps you skip the mundane tasks of 'writing it all out' but what happends when you come to an environment that does not support that, or better yet and environment that requires you to know the basics of server side coding ie ifstatments, loops etc. which are fundamental to all serverside and most scripting languages?
the way ruby was written is intuitive but takes for granted that you know those basic factors
anyway if you want to really learn something that may be arround for a while pick up the realitively easy ajax methods. take a couple months just to familiarize yourself with that , then I would say move to asp or .net. then if you are satisfied that you have those down, move to ruby.
Ruby is older than PHP. However, it only had a few Japanese users until Rails. If you understand OO, there is no problem understanding Ruby. It does have high OO from Smalltalk, which might be complicated for some. My rant is more on Rails than Ruby. I think that it was not designed right because OO should all be about functionality encapsulation. Don't give an object more functionality than it should have.
Well, I'm still working with my own code for PHP stuff and using jQuery as my JS helper library du-jour (they added an internal AJAX/AHAH library to it recently that's really easy to use). The main reason I'm not a fan of ruby is just that everything else I've ever used on a regular basis (JS, AS, PHP, JSP) uses that C-style curly bracket syntax so I can never figure out what it's doing.
That CodeIgniter framework that SpookyET linked up looks sort of promising though. I'll have to give that one a look for some stuff that's coming up.
I´m a PHP programmer, and this fact won´t make me a strong defender of this language.
I think that you have to choose the language that is more usefull for you. Ruby is powerfull, but i think it will take a little time to get an acception, for example, like php.
If i could choose wich web language I would like to work, certainly I choose php. But... I´m a professional, and i have to get used on that what they are having more use. My reality maybe must be different from yours, but here in brazil the hint now is ASP.NET ( for web and desktop ) and JAVA (including JSP). Any work with these two languages are paying very well for any developer... if you´re good on it, sure.
I think you have two ways when choosing a language: 1- or you get a base-language, like C, C++, that will give you the base of programming of any language; 2- or you can get a high-level language that is not so hard do learn, like ASP.NET, that do not require a deep knowledge in some base-languages, like C, but will give you a job that pays a good money (at least, in brazil).
If you will work developing for web, independent of any language you take, i think you should give a very special atention to AJAX. It will be the difference between who that have more or less knowledge.
Thanks for starting this discussion. I'm way behind all of you here by the sounds of it - not having done any programming as such yet. I'm very proficient in XHTML / CSS and embarking on learning to program so I can extend to more dynamic functionality in my sites. I've decided to start with PHP/MySQL mainly due to the open source nature and wide acceptance and use but I have to be honest, for a first timer, there are a lot of choices to wade through; JS, PHP, ASP, .NET, JSP, XML AJAX, now Ruby etc etc
dammit i had a good post all put together here but the stupid wireless in the memphis airport just glitched out and ate it on me.
for most stuff using JSP is like using a flamethrower to light a cigarette, it's just big and unwieldy and doesn't make sense unless it's necessary for a really big situation.
community wise: if you have a ruby question, there's a community thats good and open. if you have a php question there's a community that's good and open and has a history spanning back over the better part of 10 years now. if you have a jsp question you have to ask in a java community that spans back a long way mostly on stuff that's not web based and people who don't know much about the web.
open source apps: if you want a forum in PHP there's dozens of options, and a good 10 or so that are really strong. if you want a forum in JSP you need to configure your server to operate the way the one option that's free requires things to operate. and hope you built your server environment against a compatable build of the JRE. and configure it to run servelets the way that one person wrote them, and edit your WEB-INF settings. see where this is headed? ;)