views:

461

answers:

7

In short, I'm looking for something to replace PHP.

I moved from ASP to ASPNET but since dumping Windows completely, I've ended up on PHP and that's been the state of play for the past 18 months. It's universal and it'll deploy everywhere but despite its considerable power, it isn't a well structured language and I can't help but feel a little dirtier with each line of PHP I send onto the web.

So... I've got a few inter-orbiting questions:

  1. What's the best of the rest?
  2. What's new and becoming popular?
  3. What's worth learning?
  4. And most importantly (for all the above those questions): why?

Because of my move away from Windows, I'd much prefer completely cross-platform options but because I believe I'm probably not the only person shopping around, any suggestion is fine here.

I'm not trying to trash-talk PHP and I'm not looking for answers that just do that. I don't want this to degrade into a holy war so please keep comments positive and on topic.

+4  A: 

I have thrust myself into the Python world with the coming of GAE (Google App Engine), and find myself very much enjoying it. I think that with the coming of cloud solutions, using the best tool for the job will become easier and easier.

Amazon's EC2 already lets you host whatever framework you want - Ruby (on Rails), Java (EE, Tomcat), Python, whatever - as long as it runs on Linux, and I believe I saw Windows coming soon to them as well. In any case, from what I have read, Mono is becoming a very viable option for running ASP sites. EDIT: Looks like they just announced Windows and SQL Server support.

Google is supporting Python in GAE, and are working on another language - my guess is Java.

In other words, I think that architectural concerns will be taken care of more and more by hosting providers, and developers will have more freedom to design their solutions in the way they see best fit, not the way that their host requires them to.

Chris Marasti-Georg
A: 

I've seen some hosting services to have Python or Ruby support, on their offerings. I don't know if this is becoming good or everything ( I still suit well on PHP, i'm just making some thinking ) , but if you can try it, Python is a full programming language, and not a scripting language.

Also I have to say that I don't know how it get integrated with webpages , if it's similar to old perl CGI, or there are special configuration.

Joshi Spawnbrood
Python web servers tend to run similar to a Java web server - requests are dispatched to handlers, which should process them and use a templating library to render output to the browser. There are several frameworks available, similar to Java's availability of Struts, Spring.MVC, Cocoon, etc...
Chris Marasti-Georg
A: 

I've just started playing with ASP.Net MVC and the separation of concerns (Model = Data (DB, Objects), View = HTML+CSS+WebForms (if you must!), Controller = URL, Routing and Redirection) makes it feel very clean indeed.

It's not just a Windows Stack technology either, as I understand the Mono project is looking to support it with mod_mono_server2..

Although, it is worth noting that Microsoft have just released the Beta (16th of October 2008) so the documentation is a little sparse at the moment.

Andrew
A: 

You leave a lot out about your motives. Do you need to score a job with this new technology or are you rolling your own? In any event Ruby on Rails is a good bet. It has lots of traction and is relatively easy to learn. Downside (as of a year ago) is that that it was difficult to deploy on shared hosting sites. That has likely changed to some degree which others can probably speak to.

Stripes is something worth checking in to. I listened to a podcast about this recently and it sounds cool but have not used it.

Andrew Cowenhoven
A: 

If you are more in the enterprise side, SpringMVC is definitely worth checking out. Most of the project I see in the Enterprise are using Spring in one way or the other. So most of our new web based project are starting on SpringMVC.

Personally, I find SpringMVC very comfortable to use, very descriptive very easy to read the code written for it, especially if you annotations. It takes sometime to get used to it, and it is still a much more heavyweight solution if you compare it to something like Django / Ruby on Rails ...

Guillaume
+3  A: 

1 word: JavaScript. On the server.

While "server side JavaScript" has been around actually for years, the current state of the art on the server side is quite weak, so in that sense it's a new and young field.

But if you've been paying attention you'll notice that a LOT of work has been going in to developing very powerful JS runtimes.

As to why JS for the server? Simple.

Anyone who was an HTML designer in the past, in order to advance today they need to become a JS programer in order to get the pages to do what folks want them to do today. At the same time much of that work needs some support server logic.

With a solid JS server side framework, folks will be able to learn a single language to handle both their front end tasks and back end tasks, and with identical semantics. Rather than having to learn JS and {Ruby/PHP/Python/Java/.NET}, instead they can focus on pure JS, share frameworks and code, and keep a single mind about things and how they interact.

Do I expect eBay or other ginormous sites to be using JS now, or even in the future? Not necessarily, and at least not exclusively, but if Ruby, Python, PHP et al can "scale", (with all of the details and complexities that entails) there's no reason JS can not "scale" as well.

It also will not surprise me if the next supported language for Googles App Engine is JavaScript.

JS is the single most deployed language on the PLANET, and it's become a first class citizen with well earned new respect. Expect the back end to follow to tap in to that knowledge base.

Will Hartung
JS on server side is kind of intriguing but as far as frameworks go - ther are none (that I know of). So One would need to be created first... with all of the ORM and MVC goodness baked in.
Roland Tepp
A: 

The next big thing in Back-End Web Software development is SOA (Service Oriented Architecture) and ESB (Enterprise Service Bus). Since you've dumped Windows I'm assuming your looking at GPL & Open Source Toolsets.

The two main players in this space that fit this criteria are Apache Tuscany/Apache ActiveMQ & JBoss ESB. These are both implemented in Java, though by their nature are designed to be decoupled from a specific programming language.

Martin Spamer