ReCoder (recoder) wrote,
ReCoder
recoder

  • Mood:
  • Music:

[books] Ruby in a Nutshell (Yukihiro Matsumoto)

cover  — Yeah! Well, I’m gonna go build my own theme park. With blackjack and hookers! In fact, forget the park!
© Bender, Futurama

Решил на старости лет поизучать новые языки, чтобы мозги на Жаве совсем не замшели. Взялся за Ruby. Купил книжку с O’Reilly, прочитал, проникся. Сложилось странное впечатление.

Впечатление такое, что один японский хакер по имени Yukihiro Matsumoto сел изучать Перл. Но до конца не доучил и решил написать свой Перл. Типа лучше — со встроенными объектами, исключениями, с перекрытием операторов. И назвал его по аналогии Рубином — надеясь, что «как вы яхту назовёте так она и поплывёт».

Поизучав синтаксис Ruby, я наконец осознал — какое счастье что Larry Wall был лингвистом, а не просто хакером. Ruby конечно язык полный и чём-то даже приятный, но нету в нём перлового изящества. Впрочем, может быть Matz хотел написать свой Смолток, только попопсовее. И все фичи правильные собрал: динамическая типизация, полная объектность, эксепшны, closures, multithreadность, нормальные регулярные выражения…

Но всё равно — странноватый язык. Странный принцип ’символы с заглавных = константы’. Почему-то в булевском контексте за true считаются и пустая строка и пустой список и даже 0! Более того — язык с иногда значимыми whitespaces по-моему вообще всерьёз нельзя воспринимать. См.:

foo + bar # означает foo + bar, то есть сложение
foo +bar # означает foo( +bar ), то есть вызов метода

Резюме: ничего особенного. Просто скриптовый язык. Один из. А настоящему программисту — всё равно на чём писать.

Хотя, чую, некоторые уже соглашаются с автором «Dear Perl…»:

Dear Perl,

Look, I know that we were an item for quite a few years.

You were my one and only. My true love.
But I’ve gotta admit, when I saw your younger sister Ruby a few years back… well, I thought she was hot. But of course, she was too young then so I stayed away from her.

Now, more recently I have to confess that I went out with Ruby for a few dates and believe me, she is plenty mature now! Not only that but her library seems somehow more complete than yours and certainly better organized. And her object oriented features — OO la la! Look, you’re a great gal, but you’re certainly not anywhere near as well endowed in THAT department.

And now that Ruby’s got transportation (ok, so she likes to ride the rails) we’re really getting around.

So, dear Perl, I have to tell you that it’s over between you and me. From now on it’s me and Ruby. Please don’t take it too hard. Maybe you’ll find someone else after you’re makeover.

— John

books computer_science ruby

Tags: books, computer science, ruby
Subscribe
promo recoder august 1, 12:09 35
Buy for 100 tokens
Не так давно Фейсбук научил меня ещё одной классификации людей, в дополнение к стратегам и тактикам, интерналистам и экстерналистам, и разным морально-политическим приверженцам. Впервые эта классификация описана ещё двадцать лет назад Картером и Сэнджером в книге The Programmer's Stone…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments