Tuesday, September 25, 2007

Derek Sivers's blog: 7 reasons I switched back to PHP after 2 years on Rails

The new post on the Ruby section of O'Reilly authored by Derek Sivers is quite interesting, starting with the title:

I am far away of being a PHP expert, or even a Ruby one, but I have the impression that I could post a similar title with Java instead of PHP. If this is true that Java EE could look a little complex for a start -this is probably less true today with the new JavaEE simplifications-. Yes... when you compare Rails and Java alone it is more complex but we should not forget that Java is now more a platform than a simple programming language. And many developers and companies have built very productive solution on this platform.

Since I am talking about Ruby on Rails here, it is important to mention again Grails and Groovy that provide on the Java platform a simple and productive way to develop applications, and time to get back to the different reasons mentioned by Derek in his post:

#1 - “IS THERE ANYTHING RAILS/RUBY CAN DO THAT PHP JAVA CAN’T DO? … (thinking)… NO.”
I believe that we will all agree on the fact that you can do anything you want in Java; Web applications, mobile applications, operating systems, rdbms, ... the only limit is your brain! -and your skills ;) -

#2 - OUR ENTIRE COMPANY’S STUFF WAS IN PHP JAVA: DON’T UNDERESTIMATE INTEGRATION
I think this is one of the key point here. Enterprise is using JavaEE a lot and it is part of the IT, moving to another technology will be expensive even if development is faster. In addition, the developers, administrators are used to develop and manage Java based applications.

And I do not want to talk about how complex it could be when you are building a Rails application on an existing database, designed from a pure Entity/Relation methodology....

#3, #4 #5 - I have nothing special to say here...

#6 - I LOVE SQL
I still see a lot of developers using SQL directly in Java programs. The nice thing about Java is the fact that based on your skills and what you like to do you can choose the way you want to access the database, simple SQL, powerful O-R Mappings, ...

#7 - PROGRAMMING LANGUAGES ARE LIKE GIRLFRIENDS: THE NEW ONE IS BETTER BECAUSE *YOU* ARE BETTER
I love this reason, but nothing special to say, I let you read the original post.

As you can see from the number of comments in Derek's blog -no times to read all of them- this entry generates lot of reactions.

5 comments:

Ecco said...

One big difference between PHP and Java, I see, is that I can have a simple site hosted on some hold low-end PC in my garage, while I'll need more CPU and memory for a simple Java based equivalent.
It's like linux vs. windows or WinApp vs. iTune

Radic Feng said...

Interesting!
Thanks, Tug, I benefit a lot from your blog.

Tug said...

Eric,

I totally agree with you, and this is a point that I Have missed, around PHP.
On Rails vs Java, the resources needed to run an application is also in favor of RoR. For the hosting I am not sure yet which one is the easiest to host. It is for sure very very easy to host PHP applications since they are everywhere and often for free. It is not yet the case I think neither of Java or RoR. (to be honest I have not really looked, even if I have an account for my RoR development at http://www.asmallorange.com/ )

Anonymous said...

Java, Groovy are all pretty big on Objects, thats interesting, but Objects are out, Concurrency is in.

Come over to ERLANG, next year is the year of XMPP. So done with OO ;)


Read Joe Armstrong's book. You will be interested I bet

Nicolas said...

Hello Tug,

From what I can see PHP/mySQL is the best if you want to find a free hosting service.
I have discovered Java recently and I must admit that I have been impressed by the java libraries.
RoR is not so easy but once you have understood a few lines are needed to code an application and what is very interesting is that Prototype and Scriptaculous are fully integrated within it.

Concerning the mapping with an existing database with RoR, I have been told that you can use views (if this feature exists)