建立照片分享网站最适合的语言:PHP、Python、Ruby或其他?
我打算建立一个像Flickr或Picasa那样的照片分享网站,专门为摄影师设计,提供最适合他们的功能。大家都知道,如果这个项目成功了,每天会有很多GB到TB的数据传输。
这个问题不仅仅是关于我的应用在发展过程中如何扩展,还有性能方面的考虑。我想做一个明智的选择。我考虑使用MySQL数据库,客户端脚本用JavaScript/jQuery,但我还在想用什么服务器端语言——是PHP、Python、Ruby还是其他的呢?
在开发一个需要随着时间扩展的应用时,有一些事情是需要注意的(比如可扩展的编码)。如果你有什么建议,请告诉我。
注意:我提到“照片分享网站”是为了让你了解我的目标。否则,这个问题可能看起来不太主观。请你理解这一点。
3 个回答
我之前用PHP、ColdFusion、Java和Ruby做过网页应用,还用过各种框架。我觉得Rails是我用过的最强大的网页框架。没有其他框架能和它相比,因为它的强大来自于Ruby语言,除了Smalltalk,其他语言都很难达到这个水平。不过,只要你遵循正确的开发方法,几乎用任何语言都能完成项目。
不过,你不应该使用MySQL作为数据库。PostgreSQL要强大得多,扩展性也更好,而且没有MySQL那些奇怪的限制和问题。
PHP可以很好地完成这个任务。Python也可以通过像Django或turbogears这样的网络框架来实现。也就是说,只要语言能够支持网络功能,似乎你的帖子中提到的内容就不是问题。
其实,任何语言都可以。语言本身并不重要。有些Ruby的狂热者(尤其是那些喜欢RubyOnRails的人)会告诉你,他们的语言只需要10行代码就能完成所有事情,而且还能帮你做晚饭、接孩子放学。还有人会说他们的语言是最安全、最快、开发效率最高的等等。别理他们。
我很喜欢Python,也很想推荐它,但说实话,这并不会有什么区别。你只需要选择你最熟悉的语言,开始写代码。如果你最会的是Java,那就开始写Java。如果你最会的是C++,那就开始写C++。
我不相信那些说某种语言是开发速度最快的人。关键在于你用起来舒服。某些语言提供了额外的功能,但如果你需要这些功能,你总是可以自己写一个库来实现,通常也不会花太长时间,而且很可能已经有人做过了。
记住:Facebook是用PHP写的(不过现在为了速度,他们把很多PHP代码编译成C++),MySpace是用C#/ColdFusion写的(我记得是这样),Twitter用的是Ruby On Rails(不过他们似乎打算放弃它),Google用的是Java/Go(我想是这样),LinkedIn用的是ASP.net之类的。我想说的是——有很多服务,很多语言,它们都运转得不错。现在,任何语言都可以。
我最喜欢的一句话是“就去做吧”。虽然有一个好的架构、考虑性能和可扩展性是个好主意,但如果这些事情让你在项目进行到一半时就放弃,那这样做有什么意义呢?而且,假设项目发展壮大,你很可能还得重新编写大部分代码。你真的认为Facebook还在用最开始的那段代码吗?
所以,总的来说,选择你想要的任何语言就可以了。没问题的。