Задачи в программировании бывают разными. Например, часто нужно написать скрипт на 10 строк кода. И, соответственно, нужно для этого что-то вроде Bash, только не Bash :) Долгое время я использовал для этих задач Perl. Но, увы, во многих командах Perl недолюбливают. Не исключено даже, что заслуженно. Поэтому возникает вопрос поиска хорошего скриптового языка. После долгих и мучительных раздумий я пришел к выводу, что такой язык — это, скорее всего, Python, и в этой заметке будет рассказано, почему.

Злые языки говорят, что CLion подходит только для проектов, использующих CMake. Что даже проекты на CMake он может индексировать 12 часов, а потом упасть с out of memory. А если каким-то чудом CLion не упадет, то будет адски тормозить и подсвечивать весь код красным. Что единственной нормальной IDE для C++ якобы был и во веке веков останется Visual Studio. Сегодня мы с вами убедимся, что к таким выводам люди приходят не от большого ума, и что за пять минут несложных рассуждений в CLion можно успешно открыть любой проект — неважно насколько большой и используется ли в нем CMake.

Недавно я наткнулся на один любопытный проект. Он называется Berp и представляет собой транслятор скриптов на языке Python в программы на Haskell. Со стороны пользователя Berp выглядит как интерпретатор и компилятор Python, поскольку вся трансляция происходит «в бэкенде».

После написания заметки о генераторах фракталов, меня посетила одна идея. В свое время я интересовался автоматическим распознаванием капч (которые captcha). Так вот, распознавание происходит в несколько этапов. Текст капчи отделяются от фона, вычищается от мусора, нарезается на буквы. Затем буквы приводятся к одному размеру и используются для обучения нейронной сети. Притом первый шаг — отделение текста от фона, как правило, является довольно простым.

Если вы давно читаете мой блог, то можете помнить, как пару раз я говорил о Python разные неприятные вещи, дескать он медленный и памяти много кушает. При этом даже приводились различные пруфлинки. Но, откровенно говоря, нехорошо судить о языке по тому, массивы какой вложенности он поддерживает, с какой скоростью он выполняет пустой цикл из 100500 итераций и тд. Нас же интересует, как он справляется с типовыми задачами. Так что я решил провести собственный небольшой эксперимент.

Решил написать шпаргалку по регулярным выражениям. Вдруг я когда-нибудь их подзабуду. Кроме того, этот пост можно считать продолжением к моей серии уроков по Perl.