Web服务:PHP还是Ruby on Rails或Python?
我是一名白天做.Net和SQL Server开发的程序员,业余时间还做一些iPhone的Objective C开发。我想开发一个网络服务,因为我的主机服务商DreamHost支持MySQL、Python、Ruby on Rails和PHP5,所以我想用这些语言中的一种来创建这个服务。如果你对Python、Ruby on Rails或PHP都没有经验,你会选择哪个,为什么?这个服务基本上就是接收请求,然后和MySQL数据库进行交互。
注意:我原本打算使用SOAP协议,不过我对其他建议也很开放,因为我在这些语言上都是从零开始。
5 个回答
简单来说,我会选择PHP。
我对你提到的三种选择中的两种都有一些经验:PHP和Ruby on Rails。如果我没有任何经验,想要在这个周末创建一个主要与数据库交互的网络服务,我会选择PHP。如果我对这些语言都不熟悉,想在几周内完成项目,我会选择Rails。至于Python和Django,我个人经验较少,所以不太能发表意见。
Ruby和Ruby on Rails:我已经使用Ruby和Rails好几年了。我之前有Java的经验(这和你在.Net的经验差不多)。我发现转到Rails的时候有点不顺利。我想直接开始理解Rails是怎么工作的,以及如何构建一个网络应用,但因为对Ruby不太了解,这变得很困难。网上有很多示例可以帮助你快速构建应用,但很多时候这种快速是以牺牲理解为代价的。要构建一个稳固的Rails网络应用,你需要对Ruby和Rails框架有很好的理解。Rails非常棒,但如果你想快速搭建一个你能理解的东西,可能不是最佳选择。此外,Rails的托管服务已经有了很大进步(你可以看到越来越多的主机提供这项服务),但仍然会有一些小问题。
PHP:PHP非常适合快速搭建东西。你可以上传文件,立刻看到结果是否正常。如果你保持数据库设置的整洁(听起来你会这样做,因为你整天都在处理数据库),那么使用PHP应该不会太糟。我建议你看看对象关系映射工具,这样可以让你的PHP代码更整洁,我听说过Doctorine的好评。
Python:我想你可能会用Django来搭配Python。因此,你可能会遇到与Ruby和Rails相同的障碍。
如果你想开始学习Ruby on Rails,我推荐你查看一下这个讨论帖。
最后,如果你想使用PHP框架,这里有一个关于这个话题的很棒的讨论帖在stackoverflow上。
Ruby-on-rails、Python和PHP都是开发网络服务的不错选择。这几种语言都很强大,当然Ruby是Ruby on Rails的编程语言。如果你喜欢的话,它们都有很好的框架,比如Django是Python的一个好例子,而Drupal或CakePHP则是PHP的好例子,它们都能和MySql很好地配合。
我觉得选择哪种语言主要还是看你之前的经验和你最熟悉哪种。如果你之前用C#在.NET上开发过,并且对Objective-C有经验,那么PHP可能是个不错的选择,因为它确实属于C语言家族。所以它的语法可能会让你觉得更熟悉,也更容易上手。
我是PHP开发者,所以我会从这个角度来讲,同时也欢迎其他更有经验的开发者分享他们的看法。PHP和Apache的结合非常紧密,这样可以让一些比较简单的任务变得更轻松(不过如果使用框架,这些简单的任务通常会被简化)。PHP的文档非常出色,是一个很好的资源,可以帮助你快速上手。它的速度也不错,还有一些好的缓存机制可以提升性能。我知道在Dreamhost上使用PHP非常简单。虽然我没有在其他平台上尝试过,但我想那些也应该差不多。
我建议你多看看每种语言的文档和框架,找出最适合你的那一个。