The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Доступен перевод на русский язык книги A Byte of Python"
Отправлено www2, 24-Авг-13 20:44 
>> В Python средств защиты от ошибок очень мало, он слишком гибкий.
> Это... как бы начиная от строгой типизации, кончая doctest,unittest из коробки.

В Perl типизация менее строгая, но зато более статическая (если использовать strict, что считается общепринятым). Объявил массив - обращаться как с хэшем ты с ним не сможешь, а предупреждение об этом будет выдано ещё ДО запуска программы. Не объявил переменную или опечатался в её имени - узнаешь об этом ещё ДО запуска программы. Экономит время.

И слабая типизация в Perl не ощущается как недостаток, потому что во многих случаях трудно толковать какую-то операцию двояко: в Python a + b может означать как сложение чисел, так и конкатенацию строк, в Perl такой проблемы нет, потому что есть отдельные операции - $a + $b и отдельная - $a . $b. Ну и соответствующие операции сравнения: $a == $b и $a eq $b. Не нужно держать в голове контекст, в какой из переменных сейчас строка с числом, а где - просто число и не нужно соображать, какую из переменных приводить к нужному типу. Просто пишешь: сравни их как строки, и любая комбинация строк с числами и собственно чисел приведётся к нужному типу. Особенно удобно, когда регулярными выражениями выделяешь число - в Python я часто забывая привести число к строковому типу перед сравнением или вычислением и получаю ошибку уже в процессе работы программ, когда она отработает значительное время. Лишние потери времени, больше нужно держать в голове - не удобно.

Спрашивается - зачем мне эти модули для тестирования, когда в случаях с опечатками в именах переменных можно вообще без них обойтись? Зачем мне эта строгая типизация, если она заставляет меня держать в голове больше контекста?

>>Поэтому мне больше нравится Perl.
> Хм... это где слабая типизация? И ключики между разными версиями могут запросто
> различаться?

Не знаю, о каких ключиках речь.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру