我想开始一个由多层,Web层,事件驱动的业务逻辑,数据处理等组成的新项目。过去几年我从事过PHP和基于Java的项目,并从经验,Java(并给出了实现调度的开源库,ORM,AOP等)通常是一个不错的选择 - 当然,你不总是需要一个容器,因为不同的层和服务可以用不同的语言编写,集成,以及其他过程,如cron jobs。
现在,鉴于我正在开始一个新项目,我想知道其他人如何就语言选择向我提出建议。我试图从Python,Ruby,Erlang Google搜索中找到一些答案,但肯定这是收集一些好建议和批评的好地方。
思想?
答案 0 :(得分:1)
我经常使用的是无处不在的LAMP堆栈(Linux,Apache Web服务器,MySQL数据库,PHP服务器逻辑),如果我需要在后端执行更密集的操作,例如处理大量语言数据或运行网络在将输出反馈给系统之前命令和排序输出,我使用Perl。所有这些实用程序/语言几乎在每个发行版的存储库中都可用,以及连接器代码可以一起使用它们(例如,php5-mysql,用于导入允许您使用MySQL的PHP函数)。
更新:我想在这个答案中添加一些想法,因为有人提出了这个想法,今天就引起了我的注意。当我写这篇文章的时候,我正在尝试一些不同的技术,在很多方面我仍然支持我之前所说的。 LAMP比任何其他网络平台都要成熟得多。从这种组合开始你就是不会出错。
话虽如此,一年后,我一直在为我的个人项目使用Nginx和Python(通过uWSGI)。我认为现在发行版对这两种技术的支持已经足够成熟,具有重要站点流量的人应该真正考虑使用Nginx切换Apache。它比Apache更快地提供静态资源。如果你想使用PHP,你可能会使用php-fpm将PHP连接到Nginx。如果你想使用Python - 它正在迅速成为我最喜欢的语言之一,无论是因为它的性能还是它在我身上发展的语言功能 - 你将有很多选择可供选择,以便将Nginx连接到Python,但我强烈推荐uWSGI这个简单的事实,它已经过测试,而且非常快。至于数据库,我仍然认为MySQL功能强大,足以适应许多不同的情况。如果你不同意这个陈述,我相信你有足够的经验来寻找许多透彻的资源,显示几乎任何情况下的利弊。