[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