繁体   English   中英

RUBY和RAILS对PHP和CODEIGNITER的主要优点是什么

[英]What are main advantages of RUBY and RAILS to PHP and CODEIGNITER

我们将要启动一个新的Web2 / AJAX应用程序,并尝试确定值得花时间和精力来学习Ruby / RubyOnRails而不是我们当前使用的PHP,CodeIgnitor和JQuery。

关键问题是干净/快速/现代的AJAX UI,可靠的错误处理以及可维护性。

我将感谢经验丰富的PHP和RUBY开发人员的公正评论(如果可能的话,都是在谈论语言/框架)。

我不能对Ruby讲太多,但我可以说我经常觉得PHP表现不好。 PHP是您所用。 是的,那里有很多糟糕的PHP代码,但是您知道,它大部分是由会编写糟糕的Ruby或糟糕的Python的人编写的。 PHP的受众如此广泛,各种风格和能力的程序员都在使用它,其中许多人在编写不良程序。

也就是说,您可以使用PHP编写好的程序。 你有好的开发者吗? 如果是这样,您当然可以使用PHP编写良好的代码。

PHP享有如此糟糕的声誉,因为它是如此易于使用。 任何人都可以开始编写PHP,如今,大多数托管解决方案都提供PHP,因此,有许多非程序员类型使用PHP编写程序。 这些程序缺乏适当的计算机科学学科。

随着PHP开始采用现代语言功能,PHP社区内朝着易读,格式正确的代码发展的趋势非常广泛。 借助PHP5,OOP成为了现实,并且有关OOP最佳实践和开发模式的书籍和材料也激增了。 虽然PHP通常用于编写格式错误的草率意大利面条代码,但那里的语言工具使开发人员可以使用MVC,OOP和TDD等开发范例进行编程。

更不用说,PEAR大大提高了社区脚本的质量和可访问性。 PHP的最强资产是其社区,并且它已经变得越来越强大和更加规范。 在许多方面,PHP非常类似于JavaScript,它的开始很草率,开发人员和社区一直试图从中恢复。 JavaScript是一种非常草率的语言,但是在Ajax和交互式Web应用程序时代,JavaScript的一些非常强大的部分为其带来了应有的尊重。

诸如Ruby和Python之类的语言充斥着面向计算机程序员的事物。 如果您雇用Python或Ruby程序员,则仅是因为了解该语言的人比使用PHP开发人员的人更容易欣赏干净,组织良好的代码。 那是这些语言以及传福音的人们的文化的一部分。

我认为Ruby或Ruby on Rails本质上没有什么更好的。 Rails是第一个主流的MVC开发框架,但是它的流行和成功促使人们以各种可以想象的语言开发了类似的框架。 许多人认为,选择用Ruby编写Rails并不表示Ruby比PHP更好。 考虑到编写Rails的时间以及37signals对晦涩难懂的事物的迷恋,我可以完全理解此举。 当时,Web脚本语言非常la脚,而37signals正在寻找一种更能满足应用程序程序员而不是脚本编写者需求的语言。

您不会因为使用Zend Framework,CakePHP或symfony之类的PHP框架而受阻。 即使CakePHP和symfony不是直接端口,也都直接以Rails为模型。 Akelos是Rails到PHP的实际移植。 Zend Framework是我到目前为止使用的功能最全的框架。 不要害怕尝试,但是没有必要跳船到一个完全不同的平台,并且不会改变您的业务方式。 这是不同语言中的同一行业。

语言的最重要特征是您喜欢它的程度。 如果您喜欢使用的语言,不仅可以改善生活,还可以编写更好的代码并提高工作效率。 当然,这完全是主观的。 但是,我从未听说过任何一流的程序员都在谈论他们有多爱PHP。

当然,要想真正达到一种语言/框架组合的流利程度,就要花大量的时间。 我认为,即使最终您确定自己更喜欢其他工具,花费的时间也将使您成为一名更好的程序员,所以,继续努力吧!

我认为这与语言无关,而是社区中使用的学科。 如果您是不对单元代码进行功能或功能测试的PHP开发人员,那么没人在乎。 有很多这样的PHP开发人员。 如果您是Rails开发人员,并且没有自动测试您的代码,那您很奇怪,那么您的某些问题一定很错。

在我看来,Ruby on Rails不仅仅是框架,而是社区随附的所有工具。 建议您使用Capistrano之类的半自动部署工具。 如果不是,那又会很奇怪。 等等。

我同意dicroce的观点,即您可以同时使用两种语言/框架进行拍摄。 您可以使用PHP并尝试使用最初针对Rails的一些工具,我相信您会获得不错的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM