Python как первый язык программирования: Почему Python не станет языком программирования будущего, даже если сейчас популярен — Разработка на vc.ru
Содержание
Почему Python не станет языком программирования будущего, даже если сейчас популярен — Разработка на vc.ru
Команда Mail.ru Cloud Solutions перевела колонку Rhea Moutafis «Why Python is not the programming language of the future». Автор перевода не всегда разделяет мнение автора статьи.
133 115
просмотров
Python появился в мире программирования довольно давно, но с начала 2010 годов переживает бум — он уже обогнал по популярности C, C#, Java и JavaScript. До каких пор будет сохраняться тенденция роста, когда Python заменит какой-то другой язык и почему?
Автор колонки считает, что у Python есть несколько свойств, которые помогли ему стать популярным языком. Но есть и слабые места, которые уничтожат его в будущем.
Что делает Python популярным прямо сейчас
Популярность языка программирования можно отследить по динамике количества тегов на самом востребованном у разработчиков ресурсе — Stack Overflow. Так, судя по графику, рост Python начался с 2010 года, а стремительным он стал в 2015 году. В то время как R в течение последних нескольких лет находится на плато, а многие другие языки находятся в упадке. У такой популярности Python есть причины.
Популярность языков программирования на Stack Overflow
Время существования
Python можно смело назвать довольно старым языком — он появился в 1991 году, то есть практически 30 лет назад. За это время он постепенно собрал вокруг себя большое сообщество.
Если у вас появится какая-то проблема с этим языком, то решить ее, скорее всего, получится примитивным поиском в Google — наверняка кто-то уже опубликовал мануал с алгоритмом и примером кода.
Простота
Python можно смело рекомендовать как первый язык программирования. И дело не только в том, что он существует давно и поэтому по нему есть много хороших учебников. У него понятный синтаксис, похожий на обычный, «человеческий» язык. и еще он прощает ошибки.
Например, в нем не нужно указывать тип данных, достаточно просто объявить переменную. Из контекста Python поймет, является ли она целым числом, числом с плавающей запятой, логическим значением или чем-то еще. Это огромное преимущество для начинающих.
Если вам когда-либо приходилось программировать на C++, вы знаете, как это печально, когда программа не компилируется только потому, что вы где-то поменяли число с плавающей точкой на целое число.
Код Python довольно просто читать. Просто сравните синтаксис Python и C++.
Универсальность
Python существует так долго, что разработчики смогли сделать специальные библиотеки практически для любых целей. Например:
- Для многомерных массивов и высокоуровневых матриц используйте NumPy.
- Для расчетов в инженерном деле подойдет SciPy.
- Для исследования, анализа и манипулирования данными попробуйте Pandas.
- Для работы с искусственным интеллектом изучайте Scikit-Learn.
Если вам нужно решить какую-то вычислительную задачу, вероятно, что для нее уже есть специальная библиотека Python. Это позволяет языку оставаться в тренде последние годы, что видно по всплеску его использования в машинном обучении.
Недостатки Python, которые могут уничтожить этот язык
Вот недостатки, которые могут стать критичными для развития Python как самого популярного языка в будущем.
Скорость
Python медленный — в среднем, на операции на нем понадобится в два, а то и в десять раз больше времени, чем если бы вы выбрали другой язык. Для этого есть разные причины. Одна из них в том, что Python — язык с динамической типизацией. То есть на нем не нужно заранее определять тип данных, как в других языках. Конечно, это удобно разработчику, но такой подход требует большого резерва памяти для каждой переменной, чтобы она работала в любом случае. Соответственно, больше памяти означает больше времени на вычисления.
Python может выполнять только одну задачу за раз, как раз из-за того, что язык должен проверить тип данных. Параллельные процессы всё испортят. Для сравнения, обычный веб-браузер может запустить несколько десятков различных потоков одновременно.
Конечно, вы можете возразить — кого сейчас волнует эта скорость, ведь компьютеры и серверы стали такими мощными, что в итоге «медленно» означает выбор между загрузкой приложения за 0,01 секунды или 0,001 секунды. Действительно, конечному пользователю нет разницы.
Области видимости
В Питоне используются динамические ограничения видимости. То есть для оценки выражения компилятор сначала ищет текущий блок, а затем последовательно все вызывающие функции.
Проблема такого подхода в том, что каждое выражение должно быть протестировано в каждом возможном контексте. Это, мягко говоря, утомительно и долго. Поэтому современные языки программирование используют в основном статическую область видимости.
Питон пытался перейти к статической области видимости, но ничего не вышло. Обычно внутренние области видимости — например, функции внутри функции — могут видеть и менять внешние области видимости. В Python внутренние области могут только видеть внешние области, но не менять их. Такой подход приводит к путанице.
Лямбда-функции
Несмотря на всю гибкость, использование лямбд в Python ограничено. Они могут быть только выражениями (expressions), но не инструкциями (statements). С другой стороны, объявления переменных и statements и есть инструкции. Проще говоря, добавление statements сделает лямбду многострочной, а синтаксис Python не позволяет так сделать.
Это различие между expressions и statements довольно произвольно, и не встречается в других языках.
Пробелы
Питон хорошо подходит начинающим разработчикам — там используются пробелы и отступы для обозначения разных уровней кода. Это делает его визуально привлекательным и интуитивно понятным.
Другие языки, например C++, больше полагаются на фигурные скобки и точки с запятой. И пусть это не так визуально комфортно для новичков, зато делает код намного удобнее для поддержки. Для больших проектов это намного важнее.
Новые языки, например Haskell, так решают эту проблему — они полагаются на пробелы, но предлагают альтернативный синтаксис для тех, кто хочет обойтись без них.
Пробелы делают код более читаемым, но менее удобным в сопровождении Irvan Smith на Unsplash
Мобильная разработка
Сейчас мы наблюдаем массовый переход от компьютеров к смартфонам — уже понятно, что нам нужны языки, подходящие для мобильных приложений.
В Python такая возможность как бы есть — пакет под название Kivy. Но нужно учитывать, что Python не был создан для мобильных устройств. Использовать его можно, результат будет даже приемлемым, но зачем, когда можно взять более подходящий язык, созданный для разработки мобильных приложений. Например, фреймворки для кроссплатформенной мобильной разработки: React Native, Flutter, Iconic и Cordova.
Если вы планируете стать всесторонне развитым разработчиком, только знания Python недостаточно.
Ошибки во время выполнения (Runtime Errors)
Скрипты в Python компилируются каждый раз во время выполнения, вместо того, чтобы сначала компилироваться, а уже затем выполняться. Поэтому любая ошибка проявляется во время выполнения кода.
Это приводит к низкой производительности, временным затратам и большому количеству тестов. Тесты — это замечательно, особенно для новичков. Но для опытных разработчиков такая необходимость воспринимается как минус и приводит к нехватке производительности.
Что может заменить Python в будущем
На рынке языков программирования есть несколько его конкурентов:
- Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана. Но за счет концепции владения и заимствования в Rust решена проблема с производительностью. Кстати, именно Rust разработчики называют самым любимым языком.
- Go стоит рассматривать начинающим разработчикам. Он довольно прост в освоении, поддерживать код тоже не трудно. Плюс разработчики на GO сейчас одни из самых высокооплачиваемых.
- Julia подходит для крупномасштабных технических вычислений. Раньше для этого нужно было использовать Python или Matlab плюс библиотеки C++. После выхода Julia потребность в жонглировании языками отпала.
На рынке есть масса других полезных языков, но именно эти три закрывают слабые места Python. Rust, Go и Julia подходят для инновационных технологий, особенно для искусственного интеллекта. Сейчас их доля на рынке еще невелика, судя по тегам Stack Overflow, но тенденция роста уже есть.
Динамика роста на Stack Overflow
Учитывая популярность Python в настоящее время, наверняка потребуется не меньше пяти, а то и десяти лет, чтобы любой из этих новых языков заменил его.
Какой из языков это будет — Rust, Go, Julia или новый язык будущего — пока трудно сказать Но учитывая проблемы с производительностью, которые являются основополагающими в архитектуре Python, каждый из новых языков найдет свое место.
Что еще почитать по теме:
- Язык Golang на пике популярности у IT-компаний.
- Необычный подход к автотестам для JavaScript и UI.
- Наш канал об IT в Телеграме.
Почему Python — плохой выбор для первого языка программирования? / Хабр
Так как я веду несколько технических групп и чатов, то часто сталкивался с вопросом от подписчиков о том, с какого же языка лучше начать изучать программирование и информатику. Очень часто кто-то советует именно Python. Я в корне не согласен с этим советом. Мне нравится этот язык, и я ничего не имею против него, он прост и удобен. Но есть кое-какие аргументы против того, чтобы поставить его на место вашего первого языка программирования. Оговорюсь, что всё сказанное далее является субъективным мнением автора и не претендует на истину.
Итак, почему…
Ниже на картинке я привел пример, как можно с помощью маленькой функции обработать матрицу и вернуть структуру, соответствующую транспонированной матрице.
Транспонирование матрицы — это операция над матрицей, при которой ее строки и столбцы меняются местами. Кто уже начинал изучать аналитическую геометрию (линейную алгебру), тот сталкивался с этой простейшей задачей. Иногда это задание дают на уроках информатики в качестве сложных задач на обработку двумерных массивов, которые мы и называем матрицами. Что ж, кому-то может показаться и вовсе несложным. Однако, для большинства начинающих и людей, не сталкивающихся с программированием, понять, что такое двумерный/многомерный массив — это непростая задача. Вы можете не поверить, но есть много очень замудренных задач на обработку многомерных массивов, над которыми придется подумать даже опытному разработчику.
Но вернемся к нашей (более-менее легкой ?) задачке про транспонирование. Как вы видите, в Python задачу можно решить буквально за пару строчек кода. И всё это благодаря сложным встроенным функциям и методам, которые очень сильно облегчают ваш мыслительный процесс. В результате программируя на Python в качестве первого своего языка, вы надеваете на себя розовые очки и начинаете считать, что программирование — это просто. В этом есть и доля правды, и в этом есть огромный подвох.
Есть другие языки, более низкого уровня, которые помогут вам понять глубину, понять базу, понять структуру, снять розовые очки, убрать синтаксический сахар и как следует подумать над теми вещами, которые ранее вы принимали как должное. Какой из этого вывод? Если вы хотите научиться думать, по-настоящему понимать как работает железо, то лучше начать с низкого уровня. Поэтому полезнее будет начать с Assembler или C.
Во-первых, это даст вам лучшее представление о том, как работает процессор и периферийная электроника в вашем ПК.
Во-вторых, вы начнете понимать сообщения об ошибках в операционной системе.
В-третьих, последующие языки высокого уровня, базирующиеся на крепком фундаменте низкоуровневых основ, покажутся вам более прозрачными и понятными в обращении.
Думаю, что можно еще привести кучу плюсов к тому, чтобы начать с низкого уровня. Зачастую, люди, изучающие Python, по привычке подключают в свой код кучу библиотек ради реализации каких-то простейших функций. Логично предположить, что это сильно утяжеляет код и делает его медленным. А если еще вспомнить, что даже эффективно написанный python-код примерно в 1000 раз медленнее аналогичного кода на C/C++, то представьте себе какая производительность в итоге получится. Конечно же не всем разработчикам нужно писать ПО, которое работает в режиме реального времени и требует мгновенных реакций с минимальными задержками. Не всем нужно писать ААА-игры.
Тем не менее, обратите внимание на текущую ситуацию в программном обеспечении. Если раньше нужно было 8-битный процессор, чтобы запустить спутник в космос, то сейчас у нас тормозит несколько вкладок в браузере при 2-4 ядерном 64-битном CPU. Так может быть причина как раз в разработчиках, а не в «слабом» железе?
Самый ранний из найденных космических аппаратов, в которых стояли не микросхемы средней степени интеграции, а именно монолитный микропроцессор (8-битный RCA 1802) – это спутник Magsat, запущенный 30 октября 1979 года.
В завершении хотелось бы сказать, что все языки программирования — это великие достижения в IT-области. Но чтобы нам стать настоящими профессионалами и экспертами, всё равно придется узнать то, с чего всё начиналось, вспомнить об истоках, математике, алгоритмах, ассемблере и даже об электронике и физике. Все знания должны сплетаться в вашей голове в единую картину, в крепкую логическую цепочку. Последнюю получится построить только тогда, когда мы начнем от корня технологий, начнем с самого нижнего уровня.
Напишите в комментариях, согласны ли вы с такой идеей? Или же вы придерживайтесь другого подхода?
5 причин, по которым Python — лучший язык программирования для начинающих (2022)
Выбор вашего первого языка программирования может быть трудным решением. С ним вы потратите много времени и это не всегда просто прогулка в парке по пути.
Существует множество подходящих языков для начинающих с достаточным количеством онлайн-ресурсов для изучения практически любого языка.
Для меня Python был первым языком программирования, который я начал изучать. Если вы не знакомы, обязательно ознакомьтесь с этими главными преимуществами Python по сравнению с другими языками программирования прямо сейчас.
В этом посте я расскажу о нескольких причинах, почему Python был правильным выбором и почему это отличный язык программирования для начинающих.
Ознакомьтесь также со статьями по теме:
- Какой язык программирования вам следует выучить? Руководство для начинающих
- 4 самых простых языка программирования для начинающих
- 19 лучших каналов YouTube для изучения программирования на Python для начинающих
Обратите внимание: этот пост содержит партнерских ссылок на продукты, которые я использую и рекомендую. Я могу получить небольшую комиссию, если вы купите по одной из моих ссылок, без каких-либо дополнительных затрат для вас. Спасибо за Вашу поддержку!
Что такое Python?
Python был впервые выпущен в 1991 году. Так что мы не говорим о чем-то новом на рынке. Однако в последние годы Python пережил своего рода бум.
Это язык программирования высокого уровня, что означает, что он далек от машинного языка, что облегчает его чтение и понимание новичками.
Кроме того, будучи языком программирования общего назначения, Python достаточно универсален для самых разных проектов.
Python управляется некоммерческой организацией Python Software Foundation.
Вы только начинаете программировать? Отлично! Ознакомьтесь с моим бесплатным руководством по кодированию для начинающих , чтобы начать обучение программированию.
Почему Python — идеальный первый язык программирования
Прежде всего: все, что вам нужно для написания Python, — это бесплатно и доступен онлайн! Язык с открытым исходным кодом и бесплатным для всех, даже для коммерческих проектов и приложений.
По сути, вам просто нужно установить Python на свой компьютер и выбрать текстовый редактор для написания кода. Затем просто используйте свой терминал для выполнения своих программ или, альтернативно, используйте платформы, предлагаемые некоторыми текстовыми редакторами.
Есть множество причин, по которым Python хорошо подходит для всех, кто только начинает заниматься программированием. Позвольте мне отметить, что, поскольку это был мой первый язык, я могу быть немного предвзятым. Знаете, как мамы со своими первыми детьми.
В любом случае, я буду просматривать следующие моменты в этом посте, которые делают Python отличным выбором в моих глазах:
- Чистый, читаемый синтаксис
- Быстрая прогрессия
- Вертично доступные ресурсы
- Поддерживающее сообщество
Начнем!
Причина №1:
Понятный, удобочитаемый синтаксис
Одна из фундаментальных идей Python — упростить написание легко читаемого, «чистого» кода.
Кроме того, код легко читается, так как он чем-то напоминает английский язык. Это также упрощает набор текста по сравнению с некоторыми другими языками.
Кроме того, Python использует правильный отступ как дополнительный, «принудительный» способ сделать код более четким и структурированным. По крайней мере, в моих глазах, что это.
Всем, кто пишет и читает код на Python, все это также помогает выявлять возможные ошибки и баги в коде.
Чтобы еще больше подчеркнуть некоторые основы Python, вот несколько моментов из основной философии языка, «Дзен Питона» :
- Красивое лучше безобразного.
- Явное лучше неявного.
- Простое лучше сложного.
- Сложное лучше, чем сложное.
- Плоский лучше, чем вложенный.
- Разреженный лучше, чем плотный.
- Учитывается читаемость.
Чтобы прочитать Дзен полностью, запустите оболочку Python, введите следующее и нажмите Введите :
>>>import this
Причина №2:
Быстрый прогресс
Когда вы начнете изучать Python, вскоре вы будете писать небольшие собственные программы.
Благодаря ясному и легкому для изучения синтаксису вам не придется застревать в изучении основных динамиков языка.
Я считаю чрезвычайно полезным для начинающих то, что Python читается так же, как английский. Для решения проблем вы можете сначала написать некий «псевдокод», перечислив процедуры, необходимые для достижения цели и решения проблемы.
После нескольких дней практики с Python ваш псевдокод волшебным образом начнет напоминать настоящий код Python.
Другими словами, простой и понятный синтаксис Python позволяет вам быстро сосредоточиться на создании решений для ваших проблем.
Это была одна из вещей, которые так мотивировали меня при изучении Python. Было так здорово создавать свои собственные небольшие программы так быстро!
Читать дальше: 10 умных советов, как научиться программировать быстрее
Причина №3:
Универсальность
Поскольку Python является языком общего назначения, разработчики используют его для различных проектов:
- Наука о данных
- Машинное обучение
- Веб-разработка
- Разработка игр и т. д.,
Для новичков в программировании, эта универсальность потрясающая. И вот почему:
Когда вы новичок в программировании, у вас может не быть четкого представления о том, что вы хотите создать в будущем.
Но, выполняя несколько практических упражнений, вы скоро отметите те, которые кажутся вам наиболее интересными.
Кроме того, вам будет легко определить, действительно ли область, которая вас заинтересовала, действительно вам по душе.
Еще один момент, о котором стоит упомянуть, это большой набор стандартных библиотек и дополнительных пакетов.
Библиотека — это набор «книг», которые расширяют функциональные возможности вашей программы и помогают решать определенные задачи с помощью Python. Это позволяет даже новичкам начать работу над практическими проектами на ранней стадии.
Вот некоторые из них:
- Pygal, библиотека анализа и визуализации данных для интерактивных SVG-графиков
- matplotlib, библиотека построения графиков, популярная среди специалистов по обработке и анализу данных и ученых-исследователей
- Pygame для разработки игр отличная альтернатива Ruby on Rails
Читать дальше: Почему я начал учиться кодировать (и почему вам следует тоже)
Причина № 4:
Широко доступные ресурсы
Даже если вы новичок в программировании, легко начать работу с Python, пройдя онлайн-курс.
WWW изобилует учебными пособиями по программированию для начинающих, курсами, форумами и другими ресурсами. Но иногда может быть трудно понять, с чего начать.
Чтобы помочь вам, вот мои любимые ресурсы для начинающих, чтобы начать изучение Python:
- Codecademy:
Этот сверхинтуитивный курс Python отлично подходит для начинающих, чтобы освоить основные понятия языка. Выполнение упражнений поможет вам быстро решить, подходит ли вам Python. - 30 Days of Python:
Чтобы получить универсальный стартовый комплект для Python, ознакомьтесь с этим курсом на Udemy. Джастин, ваш замечательный инструктор, очень заботится о вас, пока вы шаг за шагом учитесь создавать реальные проекты Python. - Ускоренный курс Python:
Эта книга — моя самая любимая! Я получил его, когда впервые начал работать с Python, и он навсегда останется в моем книжном шкафу. Автор заботится о том, чтобы даже абсолютные новички чувствовали себя хорошо управляемыми и не оставались в одиночестве в любой момент. Вы можете получить книгу на Amazon прямо здесь. - Упражнения:
Хорошие упражнения для отработки недавно приобретенных навыков, например, от Codecademy. - Изучите Python сложным путем:
Эта книга быстро познакомит вас с Python. Это последовательно, по делу, и это заставляет вас пройти через «скучные» вещи, чтобы лучше понять язык. Следуйте до конца, и вы увидите результаты раньше, чем вы думали. Вот прямая ссылка для получения собственной копии на Amazon. - Введение в программирование на Python в Udacity:
Отличный курс для всех, кто плохо знаком с программированием и Python. Подойдет и для среднего школьного возраста.
Если вы новичок в программировании, начните бесплатное изучение Python с Codecademy.
Причина № 5:
Поддерживающее сообщество
Когда вы начнете изучать программирование на Python, у вас будут вопросы. Мы все сталкиваемся с проблемами и препятствиями — это часть удовольствия от обучения программированию.
Поэтому, когда это произойдет, вы хотите знать, что есть поддерживающее сообщество, которое поможет вам.
К счастью, на любой вопрос, который у вас может возникнуть, кто-то уже ответил на него онлайн.
Вы можете найти помощь и ответы на свои вопросы по Python здесь, например:
- Документация Python от Python Software Foundation
- Форумы Python, такие как Python-Forum.io
- Конференции PyCon, несколько раз в год
- Django документация для поддержки с Django
Вы также можете найти множество дискуссионных форумов и платформ с темами Python. См., например, вопросы с тегом Python в Stack Overflow.
Заключительные мысли: почему Python — отличный первый язык программирования
У Python есть много приятных преимуществ для начинающих. Когда вы решаете, какой язык выбрать в качестве первого языка программирования, попробуйте Python.
Оглядываясь назад на то, каким был мой путь с Python, я не могу поверить, как быстро я освоил его и смог написать свои собственные небольшие программы.
Примерно через четыре недели после того, как я впервые начал работать с Python, у меня уже было запущено и запущено мое первое веб-приложение. Это было не слишком причудливо, но мне нужно было с чего-то начинать, верно?
Просто помните: главное, чтобы вы начали и продолжали!
Чтобы найти лучший способ изучения Python , ознакомьтесь с этим постом с 20 лучшими ресурсами для изучения Python без опыта.
Когда вы будете готовы создавать свои первые небольшие проекты, вот несколько забавных идей для проектов Python для начинающих. Развлекайся!
Удачного кодирования!
— Микке
История Python — GeeksforGeeks
Python — это широко используемый высокоуровневый язык программирования общего назначения. Первоначально он был разработан Гвидо ван Россумом в 1991 и разработан Python Software Foundation. Он был в основном разработан для повышения читабельности кода, а его синтаксис позволяет программистам выражать концепции в меньшем количестве строк кода.
В конце 1980-х история должна была быть написана. Именно тогда началась работа над Python. Вскоре после этого, в декабре 1989 года, Гвидо Ван Россум начал работать над приложениями в компании Centrum Wiskunde & Informatica (CWI), расположенной по адресу Нидерланды, . Это было начато сначала как проект хобби, потому что он искал интересный проект, чтобы занять себя во время Рождества. Язык программирования, в котором, как говорят, преуспел Python, — это язык программирования ABC, который имел интерфейс с операционной системой Amoeba и имел функцию обработки исключений. Он уже помогал создавать ABC в начале своей карьеры, и он видел некоторые проблемы с ABC, но ему понравилось большинство функций. После этого то, что он сделал, было действительно очень умно. Он взял синтаксис ABC и некоторые его полезные свойства. На него также было много жалоб, поэтому он полностью исправил эти проблемы и создал хороший язык сценариев, в котором были устранены все недостатки. Вдохновение для названия пришло из телешоу BBC «Летающий цирк Монти Пайтона», так как он был большим поклонником телешоу, а также хотел короткое, уникальное и немного загадочное имя для своего изобретения, и поэтому он назвал его Python! Он был «Доброжелательным диктатором на всю жизнь» (BDFL), пока не ушел с поста лидера 12 июля 2018 года. Некоторое время он работал в Google, но в настоящее время работает в Dropbox.
Язык наконец был выпущен в 1991 году. Когда он был выпущен, он использовал гораздо меньше кода для выражения концепций, если сравнивать его с Java, C++ и C. Его философия дизайна также была довольно хорошей. Его основная цель — обеспечить удобочитаемость кода и повысить производительность труда разработчиков. Когда он был выпущен, у него было более чем достаточно возможностей для предоставления классов с наследованием, обработки исключений нескольких основных типов данных и функций.
Ниже приведены иллюстрации различных версий Python вместе с временной шкалой.
Python 3.10.4 — последняя стабильная версия.
Две наиболее часто используемые версии относятся к Python 2.x и 3.x. Между ними существует большая конкуренция, и у них обоих, похоже, довольно много разных фанатов.
Этот язык используется для различных целей, таких как разработка, создание сценариев, создание и тестирование программного обеспечения.