|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Bulat Ziganshin 2:5093/4.126 12 Sep 2002 14:45:27 To : Konstantin Stupnik Subject : ruby --------------------------------------------------------------------------------
Wednesday September 11 2002, Konstantin Stupnik writes to Bulat Ziganshin:
KS>>> Булат, не надо про руби :)
KS>>> Я тебе вагон возражений выдам.
я был фанатиком перла с 98-го года и до сих пор он у меня на втором месте среди
лучших и любимых языков :) это язык гибкий и мощный, дающий максимум
возможностей новичкам и множество дополнительных средств профессионалам.
постепенно у меня появилась уверенность, что перл можно использовать не только
для написания скриптов и апплетов, но и для создания больших программ, типа тех
же баз данных и архиваторов - ведь большая часть манипуляций в них связана с
использованием сложных структур данных и алгоритмов, и не нуждается в
оптимизации по скорости. про архиваторы я точно могу сказать - 90% кода в них не
связано с собственно сжатием данных
вот тут и обнаружилась дилемма - с одной стороны, перл даёт удобные и мощные
средства манипуляции строками, массивами и хешами, которых не дают компилируемые
языки. с другой стороны, средства организации более сложных структур данных в
нём непрозрачны - что ссылки, что объекты. поэтому я принялся изучать другие
скриптовые языки. у питона были замечательные средства ООП, но зато не было всех
тех мелочей, которые делают перл таким удобным и практичным. про остальные языки
- php, tcl, rebol - я лучше промолчу :)
вот так я и вышел на раби - кстати, благодаря Алексу Фарберу, на странице
которого был приведён сразу понравившийся мне пример кода на раби. этот язык был
создан как ОО наследник перл4, поэтому в него перенесено максимум фишек перла,
делающих его таким приятным - множество типов литералов, конструкторы
списков/хешей/диапазонов, после-операторы (print if /\d/), использование $_,
сворачивание/разворачивание списков при передаче параметров и т.д.
но что самое интересное - взяв из перла всё самое лучшее, матц поместил это на
самую современную теоретическую базу. раби - один из немногих чистых ОО языков.
что это значит? любые данные являются объектом - и числа, и строки, и диапазоны,
и регэкспы, и хеши, и клозуры, и классы. эта унификация значительно облегчает
инструментальное программирование - создание новых числовых типов,
адьтернативных реализаций списков/хешей, средств удалённого вызова процедур и
перманентного хранения данных, новых языковых механизмов и в частности
продвинутых ОО техник
если сравнивать персонально с перлом, то раби выигрывает в том, что переменные
не разделены по типам данных, почти все объекты присваиваются и передаются по
ссылке, являющейся стандартным представлением объекта. благодаря этому не
возникает необходимости постоянного преобразования ссылок в значения и обратно.
для передачи параметра по значению, как и для сворачивания/разворачивания
списков, есть явные операции
даже только вышеприведённое делает раби удобным языком для программирования
in-large, но у него есть множество и других очень полезных возможностей -
mixins, синглетоны, доопределение классов (даже встроенных), алиасы и
возможность переопределения старых методов, вложенные классы/модули,
автогенерация методов присваивания, advanced OO techniques, итераторы, блоки,
квази-мультипоточность, простой сишный интерфейс, очень удобный синтаксис,
указание в имени переменной её области видимости, блестящий exception handling,
использование операторов в выражениях и опять же блестящий оператор case. это
действительно язык, на котором приятно писать программу и приятно читать
написанное
я сейчас посмотрел на свои программы на раби - большинство функций в них на
одну-две строки и большая часть кода доопределяет встроенные классы :) это
из-за того, что я пишу, используя нужный мне для этой конкретной задачи язык, и
затем доопределяю раби до этого языка :) а ты ещё спрашиваешь "зачем нужна эта
объектно-ориентированность?"
Bulat, mailto:bulatz-AT-fort.tatarstan.ru, ICQ: work 15872722, home 11849833
... Иногда для того, чтобы изменить свое восприятие мира,
... люди пытаются изменить сам мир
--- GoldED+/W32 1.1.2
* Origin: Чубайс - повелитель Тьмы (2:5093/4.126)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/33403d80a8a0.html, оценка из 5, голосов 10
|