С одной стороны, вроде как письку с пальцем сравнивают.
Хорошо, давайте переведу, но опять же - критикуйте, я сам боюсь.
только от себя - в гугле php лучше запросы смотрятся - искать легче.
Схожести:
1. Ruby is dynamically typed, like in PHP, so you don’t need to worry about having to declare variables
Ruby - это не строго типизируемый язык, не мучьтесь по поводу объявления переменных.
Да ладно, это давно уже анекдот.
2. Ruby has try/catch/throw style exception handling like PHP5
Это бля вообще пиздец - Ruby имеет try/catch/throw как php5.
Я бы тут промолчал, кто и кого имеет.
3. Ruby has classes and access modifiers (public, protected & private)
Это мы понимаем. Это как у всех нынче. Тон статьи начинает напрягать.
4. A Ruby class can have only one method with a given name
Клеточку нарисовать
5. Supports single inheritance, not multiple
1. extends becomes < - class User < Person
Это вообще пошлятина.
6. Invoke the parent method of an inherited class with super
super()
7. Ruby has heredoc syntax
Давайте кавычки обзовём вот так. Это ерунда.
8. You can include files with the load method
Охренеть.
9. You can require files with the require method
1. loads any given file only once (like require_once) - load ‘filename.rb’
2. no extension necessary - require ‘filename’
Ну да, да, проехали - абсолютная идентичность
10. true and false are the same as in PHP
Да Вы чо!
11. the equivalent to null is nil
Аз есьм.
12. String concatenation is joining of two strings, using the + operator
не понял, а как же точка?
13. Constants begin with capital letters. Example PI, Length
Это Вы к похожести? Хочу Ваших грибов. У php вообще бардак! Php им гордится!
14. You can always see what object you are in (current object) by using the special variable self
Эээ, self::это как бы у всех.
15. Comparing two strings for equality can be done by == or .eql? (for identical content) and .equal? (for identical objects).
Ну это вообще детский сад. Какашки можно отличить потому, что они похожи на какашки.
16. instance_of? returns true if object is an instance of the given class
объектный примитив, детский сад
Differences
Разница, что то я уже пожалел, что ввязался в это дело, ну да ладно
1. No semicolons ; required after statements. A statement can end with a carriage return or a semi-colon if you choose. Semi-colons are generally used when you wish to have more than one statement per line
; после конца строки, в принципе, это сильное различие, даже не знаю хорошо это или плохо.
2. The increment and decrement operators (++ and –) are not available in Ruby, neither in “pre” nor “post” forms
Это типа правда = x.succ! = это только для строк (немного разочарован)
3. When calling a method you don’t have to use parentheses
1. foobar
foobar()
foobar(a, b, c)
foobar a, b, c
Тут вообще полная свобода - не понял, что имеют в виду, или сам недопонял.
4. You can use variables in your Ruby programs without any declarations. Variable name itself denotes its scope (local, global, instance, etc.)
Это я и в php могу - объявлять переменные просто так. Проще говоря - э
то не strict language. Со всеми сборщиками мусора.
1. Normal local variables are plain strings, global variables include a dollar sign at the beginning, and class variables begin with the at-symbol. This is definitely a departure from php in which every variable has a dollar sign
Ну тут всё просто - переменные с долларом ($fuck) есть глобальные - забавно, правда гыыы?
2. Ruby has strong typing. You’ll need to call to_s, to_i etc. to convert between strings, integers and so on, instead of relying on the language to do it
Всё объект!
Это просто я хочу строчку - пишу 5.to_s - тогда это будет строка. Или “5″.to_i это будет integer, хотя в ruby integer понятие относительное - ruby умеет вообще забыть о tiny int или big int (если мы вспомним как оно хранится) Забудьте об этом, руби пофигу на размер числа и на то как оно хранится - всё это объект, попробуйте вычислить на php действительно крупное число=). Уже проходили. php тут сосёт.
5. Blocks of code can use curly braces “{ }” or the “begin … end” keywords. I normally use begin and end, and as such I will through the rest of the tutorial, but just remember you can use braces instead if you like.
Это вообще Вам как паскалю предлагают, или как обычно, {}, цените, смерды.
6. Instead of naming conditions, like underscores, the standard library and extensions are organized in modules and classes
Я иногда не догоняю, но в NetBeans IDE кликну на функции - и вот оно. И написано на Ruby, опять же.
Тут просто всё.
7. While the return statement does exist and works like you would expect, it is not required and a function will return the last expression it evaluated
любая def от руби всегда что-то возвращает, без return, а просто так
8. Ruby also has a negated form of the if statement, the unless end
Всего лишь одно из условий, ерунда
9. You can access an array beyond its boundary limits; it will return nil
Тоже ерунда, в php этого нет, да и не надо особо, вернули nil - значит попа.
10. Reflection is an inherent capatibility of objects, you don’t need to use Reflection classes like in PHP 5
Тут пропущу
11. Ruby has no abstract or interface classes
А потому, что всё объект, это вообще смешно - всё объект и похуй
12. In Ruby, everything from an integer to a string is considered to be an object
Бля, повторение пройденного, всё объект
13. hashes and arrays are not interchangable
Это абсолютно разные вещи, хэши - это массивы с ключами, у хешей нет упорядоченности.
14. PHP does not officially support namespaces (yet) and Ruby does
Скоро у php буду namespaces.
мда… бред тут написано… да и еще с нецензурной лексикой…
Более качественное описание отличий смотреть на
По Вашей ссылке - это про Rails.
Ruby is NOT Rails (http://rubyisnotrails.com)
А маты я люблю, это же мой личный блог, а не институт благородных девиц.
Мда, товарищ. А ты пробовал взять и глазами сравнить Ruby код, и то же самое на PHP? Результат тебя удивит.
Простая задача:
В массиве объекты. Выдерни в одну строку из массива элемент с индексом “1″ и вызови его метод. Что, съел?
Без переменной дополнительной никак не получается?
$array[1]->method(); - не сработает нифига.
Только
$a = array[1]; $a->method();
А теперь на руби:
array[1].method
Все. И таких вот примеров миллион. Просто попробуй руби, попробуй понять философию, тебе понравится.
P.S. Совершенно случайно наткнулся на этот пост.
Я так же случайно отвечаю на коммент в своём блоге =) Ruby - обожаю, Встретился из-за библиотеки Mechanize, которая имитирует браузер (cookie в том числе) И полюбил руби искренней любовью. php такого+curl просто не умеет. Я так и понял разницу между языками, что на php не думаешь и много пишешь, а на руби - долго думаешь, написал две строчки и думаешь - ого!
Во сколько у вас начинается рабочий день в инете? А сколько посвящаете своему сайту?