Доброго времени суток, друзья.
Я решил, что для реализации алгоритмов шифрования буду использовать язык программирования Python. Почему не C++ и не любой другой язык? Этому есть некоторые причины, изложить которые я сегодня и собрался.
Python был моим первым языком программирования. Да, моим первым языком, на котором я вывел "Hello, World!", был именно Python. С того момента я уже понял, что это мой любимый язык из-за его удобности, лаконичности и прочих прелестей. Мое мнение с тех пор не поменялось, хоть я уже опробовал и другие ЯП.
Наш канал в Telegram, на котором статьи выходят быстрее:
https://t.me/turing_team
https://t.me/turing_team
https://t.me/turing_team
Подробно разберем преимущества этого языка.
Плюсы в программировании на Python.
1. Общее назначение.
На Python ты сможешь написать практически всё: программы шифрования (АНБ использует Python для шифрования и анализа разведданных), WEB-приложения (YouTube, Google Drive), инструменты для работы с сетью, простенькие скрипты, научные вычисления (NASA, Fermilab) и так далее. Python используют и в WEB-разработке, и в прикладном программировании, и в системном администрировании, и в ИБ (многие утилиты для пентеста написаны на Python: nmap, sqlmap, Social Engineering Toolkit и проч.). Также, много системных утилит в Linux написаны на Python. Его используют всем известные IT-гиганты: Google, Facebook, Microsoft, Intel...
Он везде.
2. Простота.
У Python достаточно низкий порог вхождения, код читать на нем легко и приятно, структура кода лаконична, красива и ясна даже ребенку (ладно, тут уже преувеличил). Python удобен. Если вы до этого знали что-то из C, C++ или Java, то вам совершенно не составит труда перейти на этот язык. Кроме того, в Python есть строгие правила насчет форматирования кода, что может дисциплинировать кодера на правильную внешнюю структуру программы с отступами, а это увеличивает читаемость ваших исходников.
3. Скорость разработки.
Так как Python очень удобный и простой, а также из-за того, что в нем полно заранее подготовленных библиотек и фишек, скорость разработки намного выше, чем на том же C++. А высокая скорость разработки — это меньше траты времени и расходов. Следовательно, у разработчика больше профита.
4. Кроссплатформенность.
Вы напишете программу один раз, но она уже может запуститься на разных системах. Вам не придется тратить месяц (или больше) разработки только лишь для того, чтобы перенести вашу программу на другую ОС.
5. Расширяемость языка.
Язык изначально задумывался как расширяемый. Каждый день программисты-энтузиасты с разных уголков света, совмещая свои собственные силы, совершенствуют язык. У интерпретатора открытые исходники. Вы можете менять его под себя, гнуть, мять и модифицировать, делая его уже с более расширенными возможностями.
6 (*). Философия.
Я специально пометил пункт, потому что его можно вынести к отдельной категории преимуществ. Собственно, разработчики языка придерживаются философии кодинга, называемой "The Zen of Python" ("Дзен Python"). Если вы в интерпретаторе Python импортируете модуль this (import this), то увидите догмы Дзена Python. Автор философии: Тим Петерс, разработчик Python, в прошлом был его преданным пользователем.
Собственно, текст философии:
- Красивое лучше, чем уродливое.
- Явное лучше, чем неявное.
- Простое лучше, чем сложное.
- Сложное лучше, чем запутанное.
- Плоское лучше, чем вложенное.
- Разреженное лучше, чем плотное.
- Читаемость имеет значение.
- Особые случаи не настолько особые, чтобы нарушать правила.
- При этом практичность важнее безупречности.
- Ошибки никогда не должны замалчиваться.
- Если не замалчиваются явно.
- Встретив двусмысленность, отбрось искушение угадать.
- Должен существовать один — и, желательно, только один — очевидный способ сделать это.
- Хотя он поначалу может быть и не очевиден, если вы не голландец.
- Сейчас лучше, чем никогда.
- Хотя никогда зачастую лучше, чем прямо сейчас.
- Если реализацию сложно объяснить — идея плоха.
- Если реализацию легко объяснить — идея, возможно, хороша.
- Пространства имён — отличная штука! Будем делать их побольше!
Я уже писал, что Python дисциплинирует на красивый код. Думаю, повторять не уже стоит.
Итог.
Таким образом, на Python мы сможем написать понятный и доступный алгоритм даже для человека, никогда не изучавшего этот язык. У нас получится намного легче понять детали работы программы, разобраться в ней досконально, что не может не радовать.
Да, у этого языка, конечно, есть и минусы (как и у всех языков). Да, я знаю, что он медленный (хотя проблему можно частично решить Сишной библиотекой Cython). Да, я знаю, что на Python можно написать все, а на C++ можно написать Python. Но этот язык, черт возьми, все равно великолепен.
Годные статьи на Хабре о Python.
Решил выделить кое-что полезное для вас.