Язык Python прочно занимает топовые места в различных рейтингах языков программирования (популярность, востребованность и т.д.).
Это заслуженно, ведь он действительно крутой ))
Короче, в этой мини-статье разберем такой важный вопрос про Python, учить его или нет. Погнали!
Содержание
- Аргументы "за"
- Аргументы "против"
- Подведем итог
Я не буду тут калякать всякую известную инфу про то, когда Пайтон был придуман, даты всякие и все такое. Ни к чему это, все можно прочитать и в Википедии или официальной доке. Просто разберем чистую конкретику, ОК?
Аргументы "за"
1. Это универсальный язык программирования.
Да, Python применим практически везде. Пусть и не так хорош, как "нативные" языки, но ведь применим!
На нем, разве что, драйвера для "железа" нельзя писать, а так - все, что угодно.
Кстати, а Вы знали, что в американских школах дети изучают как раз Python?
То есть, наравне с английским языком, математикой и литературой скоро, лет через 10 знание хотя бы одного языка программирования просто будет считаться "хорошим тоном" (навроде того, как в царской России считалось обязательным знать французский и уметь играть на каком-то музыкальном инструменте, иначе человек считался невеждой).
2. Это легкий и "академичный" язык.
Пайтон стоит учить хотя бы потому (и первым языком программирования - точно), что он заставляет Вас писать "красиво", "академично", а не, извините, "срать кодом", не соблюдая отступы, пробелы, знаки препинания и прочие правила оформления кода. В Python это не прокатит, если пишете неправильно - он будет "бить по рукам" (выдавать ошибки), чтобы исправили.
Такие себе "уроки каллиграфии" в переводе на программирование ))
Ну и это язык очень легкий. Если знаете хоть немного английский, то Пайтон - почти как живая речь. Без шуток.
3. Это развивающийся и востребованный язык.
Python используют в крупнейших компаниях мира, причем, не только технологических (MicroSoft, Google и т.д.), но и обычных - крупнейшие банки, производители товаров и услуг - практически везде у них есть что-то, связанное с Пайтоном (в R&D департаментах - так точно).
Если интересно - введите на zarplata.ru или rabota.yandex.ru магическое слово "python" в строке поиска и посмотрите, какие топовые компании размещают вакансии питонистов и хотят нанять таких спецов.
Ну и второй важный аргумент - это язык, который постоянно развивается. Регулярно выходят обновления, улучшения. У Python'а очень серьезная поддержка крупными корпорациями, поэтому можно со стопроцентной уверенностью сказать - этот язык еще будет актуален в ближайшие 20 лет точно.
Аргументы "против"
1. Python медленный.
Да, объективно, скрипты на Пайтоне не работают так же быстро, как какие-нибудь нативные прилки на C++. Но, согласитесь, это не такой и большой недостаток в свете того, сколько сейчас стоит "железо". Например, компаниям выгоднее по деньгам заплатить за более мощные сервера, чем потратить сотни тысяч долларов на лишние месяцыы разработки, пока самые лучшие нанятые программисты на "плюсах" "вылижут" и оптимизируют код на 100%.
То есть, сейчас время работы программиста стоит дороже, чем, скажем, аренда дополнительных 32 гигабайт памяти на выделенном сервере.
Я не хочу сказать, что нужно писать "говнокод", компенсируя это завышенными требованиями к железу, нет. Но, разумно, если язык программирования имеет всего один такой небольшой недостаток, как чуть более медленное быстродействие (Python не черепаха, он работает быстро, он может работать быстро), при этом, экономится время, получается чистый, хорошо структурированный и комментируемый код. И за это придется "заплатить" лишь небольшим замедлением быстродействия, которое можно компенсировать чуть более высокими системными требованиями - это почти и не недостаток, согласитесь?
А ведь есть еще и различные "форки" Пайтона, которые работают быстрее. Да много всего делается для повышения скорости работы языка. В этом плане все просто замечательно, язык развивается и сказать, что "пайтон медленный" - нельзя. Он нормальный, в рамках его задач - все ОК.
2. В Python нет статической типизации.
Кто "не в теме" - типизация это задание типа данных для переменных (и констант).
То есть, например, переменной a в языке со статической типизацией нужно жестко задать тип, например: int a;, иначе вылезет ошибка.
В языках с динамической типизацией это делать необязательно, язык сам поймет, по контексту, какого типа эта переменная и присвоит ей сам нужный тип данных.
Статическая типизация повышает скорость работы, а динамическая - понижает.
Однако, у этого есть и другая сторона - в языках с динамической типизацией программист чувствует себя как-то "свободнее", что ли. Ну и, конечно, сокращается время разработки программы (не нужно писать лишние слова и строки с объявлением переменных и типом данных). Это "выливается" в экономию часов времени, а значит - денег, потраченных на разработку.
Вообще, я за статическую типизацию, и некоторые "строгие" расширения Пайтона заставляют объявлять типы данных. Но вообще, Пайтон - это язык с динамической типизацией.
Главное тут - это "прокладка" между клавиатурой и креслом, от нее зависит очень многое. Если программер - никудышный, то ему и статическая типизация не поможет сделать быстро работающую и надежную программу, а если хороший он и на языке с динамической типизацией будет писать хороший код, ведь так?
Короче, это почти и не недостаток, не надо прям считать динамическую типизацию в Пайтоне таким "злом" и минусом. Нужно просто правильно смотреть на это, что отсутствие требования к объявлению типов данных позволяет экономить время на разработку.
3. Это интерпретируемый язык программирования.
И "опять двадцать пять". Ребята, каждому инструменту - свое место. Интерпретируемые языки отлично работают на бэкэнде, а компилить из них нативные приложухи - не самое лучшее решение. Это мой взгляд на этот "минус".
Вы ведь не пишете на Си или ассемблере сайты?
Так и делать на Пайтоне драйвера или мобильные приложения (хотя для мобайла это и можно делать при помощи, например, PyGame, Kivy или SL4A) - не самый разумный путь. Кесарю - кесарево, Пайтон - это отличный язык, и требовать от него того, в чем он не очень хорош - бессмысленно.
Поэтому вряд ли это такой прям "минус".
Подведем итог
Python стоит учить, это прекрасный язык программирования.
Мощный, современный, имеющий изумительную поддержку от корпораций и сообщества.
Если выбираете первый язык программирования - даже не думайте, берите Пайтон.
Хотите поспорить или привести аргументы против? Го в комменты ниже, это будет интересно ))
Удачи!