`

PHP 會被 Ruby 殺死嗎?

阅读更多
轉貼至:http://www.hkpug.net/node/106

這個標題沒有惡意,只是用來吸引大家的注意力,文章的作者 Stefan Mischook 在他的網誌比較了 Ruby 和 PHP 兩種經常被人拿來比拼的網頁開發語言,事實上一些 PHP 社群對於 Ruby 近年推出的優秀(但並不完美)開發架構 Rails 有一點恐懼,藉著 Rails 的關係 Ruby 的普及程度大幅提高,對 PHP 構成一定的威脅。所以 Stefan 嘗試解答「PHP 會被 Ruby 殺死嗎?」

Stefan 認為簡單的答案是「不」。

Stefan 的理據

儘管 PHP 和 Ruby 同樣是開發網上應用程式的腳本語言,但正如 Java 社群所說,兩者有很大的分別,適合不同的用戶。

Ruby 很優美,但也很複雜

Stefan 首先申明,他認同 Ruby 是一個偉大的編程語言,PHP 開發人員有很好的理由學習一點兒 Ruby,事實上任何人想做一個高明的開發人員,多學習一些其他語言總是有益的。

Stefan 跟著說,Ruby 並不切合大部分 PHP 開發人員的需要,因為 Ruby 太抽象了。

只有 Java 呆子愛上 Ruby

由於 Ruby 可以把非常高階的抽象概念有很簡單的語法表現出來,相對於 Java 那些七拼八湊而冗長的語法,Ruby 吸引很多 Java 開發人員,加上寫 Java 的人已經習慣了不管項目的大小總是從企業級系統角度來規劃程式,Ruby 的對抽象概念的表達能力對他們特別有吸引力。

為何 PHP 有用?

PHP 經常被批評為兼具程序導向(procedural)和物件導向(object oriented)兩種概念於一身的語言,有人認為這兩種截然不同的概念使 PHP 陷入混亂,但 Stefan 卻認為這正是 PHP 的強項。

物件導向的模式適合用來開發簡潔、易於維護、加強代碼「可再用性」(reusability)的設計,代碼的可再用性經常被視為物件導向的重大優點,不過 Stefan 發覺在 Java 的社群真正發揮這一個優點的例子的很少。

可是使用物件導向是有代價的,相對於其他方法,物件導向的程式需要編寫更多代碼。

PHP 證明非物件導向的語言也有一席之位

Stefan 認為大部分 PHP 都適用在簡單的項目,例如:

網頁介面的電郵處理系統
對網頁表格進行處理,然後把資料存到數據庫
建立一個只有 10 個物品的小店子
即是說,對大部分 PHP 項目而言物件導向都是一把用來殺雞的牛刀。

為甚麼說 PHP 不會被 Ruby 殺死?

在 Ruby 的世界一切東西都是物件,即使是一個數字也是一個物件,必須對該語言的複雜核心有所了解才能編寫有效率的 Ruby 程式,Ruby 的強項也是它的弱點。

Stefan 認為大部分 PHP 開發人員不願意在一個抽象的世界鑽得如此深入,大部分的情況根本沒有這個需要。

========CFC=========
底下是我的想法:

說真的,Ruby無法殺死PHP
我真的是這樣認為
為什麼我會這樣想呢?原因很簡單!
因為Ruby != Ruby on Rails
如果說,同樣是針對Application的開發,Ruby可以很輕易的將PHP給Kill
但是換到Web去,PHP就不會被Ruby Kill,反而是Ruby有可能被Kill
因為Ruby只能寫CGI...
但是搭配Rails呢... ?

但是我是這樣認為的,PHP還是可以占有一席之地
它對於小的、輕的、不龐大的應用,像是文章所說的電郵系統可以用PHP開發
用Rails則是太扯了..

很明顯的,我認為原文作者(英文那篇)並不了解Ruby跟Rails

就像是有很多的Java coder不懂Ruby,就馬上說Ruby沒有任何可以贏過Java的缺點

真的是這樣嗎:)?
分享到:
评论

相关推荐

    rubyPHP高性能的PHP框架

    rubyPHP重写了mysql_query以及mongo_query方法,在执行查询sql查询语句时会优先加载未过期的缓存数据。与页面缓存类似,sql缓存的全局配置路径为config/redis.php,在具体执行sql语句前可重新执行是否使用缓存以及...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    为何Ruby 1.9的不兼容性会导致原有Ruby代码无法工作

    在处理不同长度的数组时,多余的元素在Ruby 1.9中会被忽略。 这些变化给现有代码带来了挑战,开发者需要对代码进行修改以确保在1.9环境中正常运行。例如,Sam Ruby针对REXML库进行了兼容性调整,James Edward Gray ...

    Ruby语言教程大纲.zip

    压缩包中的图像文件可能包含了教学过程中的示例图解,例如"Ruby??????\????-chen.png"和"Ruby??????\????-hua.png"可能是关于某个主题的解释图。"Ruby??????\"可能是一个未命名的目录,包含更多相关的学习材料。最后...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    Ruby编程,Ruby编程,

    - 《Programming Ruby》被称为“Pickaxe Book”,因其封面图案为一把镐头(pickaxe)。这本书自第一版发布以来,就成为学习Ruby语言的权威指南。 - 由David Flanagan、Yukihiro Matsumoto等人共同撰写,该书不仅...

    ruby2ruby.zip

    ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    1. MRI (Matz's Ruby Interpreter):这是Ruby的原始实现,也被称为CRuby。它由Ruby的创始人松本行弘(Yukihiro Matsumoto)开发,基于C语言实现,是标准的Ruby解释器。 2. JRuby:JRuby是Ruby的一个Java实现,它...

    Ruby Cookbook 中文版

    Ruby Cookbook就是关于这一当今最热门编程语言的最全面的问题求解指南。本书使用清晰的阐述和数千行可以在你的项目中使用的源代码,来为你在实际应用中可能碰到的数百个问题提供解决方法。从数据结构到集成前沿技术...

    Ruby-rubybuild编译和安装Ruby

    在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build`来编译和安装Ruby。 `rbenv`是一个用于管理全局或用户级别的Ruby版本的工具,它...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    ruby源代码 ruby源代码 ruby源代码 ruby源代码2

    ruby中$~,$?是线程安全的么?

    NULL 博文链接:https://l-d.iteye.com/blog/1488038

    src-oepkgs/ruby-ruby2ruby

    src-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2rubysrc-oepkgs/ruby-ruby2...

    Ruby完全自学手册 下

    《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    ruby源代码 ruby源代码 ruby源代码 ruby源代码4

    Ruby完全自学手册

    Ruby是一种简洁而功能强大的编程语言,由日本的松本行弘(Yukihiro "Matz" Matsumoto)在1993年开发,并于1995年公开发布。Ruby语言设计之初就非常注重开发人员的编程体验,它拥有自然、表达性强的语法,易于阅读和...

    Ruby-RubyCompiler针对Ruby设计的AOTAOT编译器

    3. **优化**:在生成AST之后,编译器会对其进行优化,消除冗余代码,提升指令的执行效率,这可能包括常量折叠、死代码删除、循环展开等优化技术。 4. **代码生成**:最后,优化后的AST被转换为目标平台的机器码。这...

    ruby笔记1ruby笔记1ruby笔记1

    标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...

    Ruby-TensorStream用Ruby重新实现TensorFlow

    **Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...

Global site tag (gtag.js) - Google Analytics