[Comm] [flame] Самый лучший скриптовый язык
Alexey Rusakov
=?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Сб Фев 4 01:50:37 MSK 2006
Aleksander N.Gorohovski wrote:
>>>Ну проще и компактнее чем Perl я уже давно не встречал.
>>>
>>>
>>Компактнее - да (с оговорками). Проще - категорически не согласен.
>>
>>
>Почему же?
>Если человеку знаком, к примеру, бейсик / паскаль / Си / Asm
>
>
Это довольно сильное предположение. Perl сложнее, чем Python и,
по-моему, чем Ruby тоже. А ещё есть Форт, куча машин для которого тут
прилетела в Сизиф. Основные конструкции осваиваются за час, не больше.
Но, правда, стиль программирования радикально отличается от привычного.
Зато компактнее и проще некуда.
>он сразу может писать программы на Perl в том же стиле.
>
>
Сможет, но небольшие.
>>>И самое главное - это действительно настоящий язык со своими смысловыми
>>>конструкциями.
>>>
>>>
>>Точно так же, как Python, Ruby или shell-script.
>>
>>
>Вот только печатной литературы (да что б на русском) по ним практически
>нет.
>
>
Господь с вами, по Питону уже несколько книг на русском вышло, и
переводных, и местных. С Ruby тяжело, свежий язык слишком, а по шеллу -
чем Робачевский плох? А ещё есть Керниган-Пайк, там тоже про шелл
рассказывается, если мне не изменяет память.
>Ну, что не говорите а shell-script всё же не дотягивает (ну и
>кроссплатформенности нет)
>
>
>
>>>А гибкость какая, просто завораживает.
>>>
>>>
>>Не могу назвать его сильно гибким. Обычный структурный язык для
>>написания скриптов. Он потрясающе работает для обработки текстов, но на
>>этом его удобства заканчиваются. С бинарными или сложно
>>структурированными данными на нём работать не сахар.
>>
>>
>Например, это с какими такими "сложно структурированными данными"?
>
>
К примеру, структура "архив" (привожу пример на C - я понимаю, что это
не совсем честно и надо было показать аналог на Питоне, но мне быстрее
на C):
struct archive
{
struct { /* ... */ } header;
struct
{
struct
{
unsigned int version;
unsigned int size;
unsigned int ordinal_n;
const char **files_list;
} volume_header;
void *data;
} *volumes;
};
Сложным образом вложенные друг в друга структуры с разнотипными данными
- это смерть для Перла, Питона и shell-script'а. Потому что типизация
нестрогая, и с этим ничего не сделаешь.
>Возможно для математики он не такой "шустрый", но при современных
>процессорах
>это уже не заметно.
>
>
Дело не в процессорах. Дело в сопровождении программ. Работа в Перле со
структурами даже троекратной вложенности - это почти наверняка тяжело
сопровождаемый код. А если вложенность больше, приходится придумывать
костыли для того, чтобы это хоть как-то можно было разобрать. Или я
что-то упустил и в Перле появились абстрактные типы данных?
--
Alexey "Ktirf" Rusakov
Подробная информация о списке рассылки community