пятница, 14 сентября 2007 г.

Изучая Ruby...

Изучая Ruby, в который раз вспомнил выражение "всё новое - хорошо забытое старое". Чаще даже не забытое, а просто неизвестное.

Сейчас освновным и, пожалуй, единственным языком программирования которым я владею является С++. Немного знаю JScript, когдато давно некоторое время писал на perl, еще раньше на паскале, а начиналось все с бейсика. Не густо. Именно поэтому так многое удивляет в Ruby. Очень удивило, что здесь все переменные - ссылки на объекты, и очень понравился фокус со строками:

Оказывается, что ново это только для меня. На самом деле, механизм, когда переменная - это только ссылка на объект, уже давно исползовался в других языках программирования (Java, Python). И подобных механизмов, которые уже где-то используются еще много. Например, переменная self используется и в Python'e, а не только аналогична C++'овскому this. Вызов методов, через посылку объекту сообщения используется в Smaltalk'e. И так далее.

Это похоже на путешествие: ты посетил одну страну, страна понравилась, получил массу впечатлений, казалось бы, что может быть лучше... но потом ты едеш в другую страну и видиш, что там есть вещи не хуже, а то и лучше чем в первой и тебе уже интересно, а что же есть еще и в чем разница.

Величина моего удивления, обратно пропорциональна моему незнанию механизмов, используемых в различных языках программирования. Это ведет к пониманию того, что незнание многих, широко применяемых механизмов, не позволяет судить о каком либо языке как о самом что нинаесть лучшем. Это я к тому, что до сих относился с некоторым пренебрежением к остальным языкам, особенно к скриптовым, основываясь восновном на убежнении, что С++ - это круто и сложно. Похоже пришло время менять убеждения. Вокруг столько интересного, что зацикливаясь на чем-то - лишаешь себя многого.

1 комментарий:

Unknown комментирует...

ты главное ориентацию не меняй ;)

антиоффтоп: а вообще-то в дот нете тож такая фигня присутствует. но там объекты бывают двох типов: ссылками на объекты и значениями. все зависит от того как класс объявлен.