Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему программисты пишут программы на C++ и подобных сложных языках, если на Python синтаксис проще и можно написать программу быстрее?

ТехнологииПрограммирование
Евгений Григоренко
  · 517,2 K
Первый
Разработчик игр, программист, дизайнер, продюсер  · 14 февр 2021

Как не существует универсальных ответов на все вопросы, универсальных инструментов, рецептов здоровья или успеха, так и не существует универсальных языков программирования.

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

Как бы ни был хорош или удобен тот или иной язык программирования, всегда найдется круг задач, для решения которых он не подходит.

Вот вам несколько тезисов, которые я постарался изложить простым языком без сложных технических деталей:

Python, как интерпретируемый язык, совершенно не подходит для задач, где критически важна производительность: ни один интерпретатор не сможет обогнать по скорости нативный код, созданный для выполнения на конкретной платформе. Интерпретатор - это переводчик в реальном времени: послушайте, как иногда смешно тормозят переводчики-синхронисты, когда переводят речь иностранцев на русский. Им тяжело!

Python изначально создан быть кросс-платформенным языком. А это значит, что его интерпретатор еще хуже оптимизирован, в нём еще больше прослоек и уровней, через которые вашему коду приходится "пробиваться" до целевой архитектуры. Представьте, что переводчик-синхронист переводит в уме с английского на китайский, с китайского на диалект португальского, а потом уже с него - на русский. И всё это в реальном времени!

Python не может напрямую работать с оперативной памятью и устройствами ввода-вывода, а это значит, что на нём совершенно невозможно написать ничего, что могло бы быть драйвером аппаратного устройства, кодировщиком аудио/видео потоков, быстрым алгоритмом шифрования или чего-то подобного. А если ваша целевая архитектура содержит какую-нибудь вкусную "фичу", вроде расширенных инструкций MMX/SSE на Intel, то про её использование можете смело забыть: это так не работает.

В конце концов, Python, будучи вынужденным платить за универсальность производительностью, так и не стал популярным языком, на котором бы успешно разрабатывались игры и другие приложения, работа которых связана с графической подсистемой и 3D.

Тем не менее, Python хорош тем, что прост в освоении, вполне универсален для своего круга задач, и поддерживается огромным комьюнити вокруг себя. Думаю, у него большое будущее!

В Python действительно больше синтаксического сахара, чем в C++, поэтому разрабатывать на нём проще. Однако, если не брать в расчёт синтаксис, C++ выигрывает у Python по следующим причинам: 1) С++ является языком со статичной типизацией, поэтому соответствия данных заданным типам выполняются на этапе компиляции. В Python динамическая типизация, данные могут быть какого... Читать далее
7 экспертов согласны

Да, все так и с моей точки зрения

Программист (включая Web) с опытом работы с 1983 года. Монтировал и администрировал сети...  · 9 авг 2020  · selek.ru
Язык С/С++ является прообразом практически всех современных языков программирования, включая и Python. Зная С++ можно быстро освоить любой новомодный язык. Только вот мода проходит, а С++ остаётся. Это лирика, теперь к физике. На С++ можно написать всё - операционную систему, драйвер, игру, прикладную программу для хилого "железа": от Arduino до суперкомпьютера. А на... Читать далее
"Самое большое отклонение от нормы - посредственность." В.ГоловачёвПерейти на selek.ru
6 экспертов согласныи1 эксперт не согласен
Язык C/C++ не является прообразом. Он сам тоже откуда-то произошёл (из языка B), а последний вышел из проекта... Читать дальше
https://pubmed.ncbi.nlm.nih.gov/35987379/  · 19 июл 2021  · linkedin.com/in/maxim-masiutin
Питон медленнее чем С++, и на некторых задачах может быть медленнее в 100 раз и более. Поэтому библиотеки для Питона пишут на С, а не наоборот. Питон интерпретируется, а С++ компилируется. У С++ строгие типы, а у Питона - утиные типы (duck typing), что является потенциальным источником ошибок и пораждает класс дополнительных утилит проверки типов для разработчиков на... Читать далее
https://doi.org/10.1016/j.urology.2022.07.051Перейти на pubmed.ncbi.nlm.nih.gov/35987379
4 эксперта согласныи2 эксперта не согласны
Две строки кода, запускаемые в интерпретаторе отработают быстрее, чем 150 кода на C++. Библиотеки решают. Хотя... Читать дальше
software & security engineer  · 29 окт 2021  · kalaver.in
Это разные языки, разного назначения. Разные инструменты. Для каждой задачи — свой инструмент, забивать гвозди микроскопом можно, но зачем?
2 эксперта согласны
Студент. Хочу развиваться в IT сфере.  · 18 сент 2021
Начну пожалуй с того, что у всех языков есть плюсы и минусы, сферы, в которых из-за их особенностей, целесообразнее было бы их применять. Python имеет простой синтаксис, множество библиотек, которые упрощают реализацию идей, которые нужно сделать здесь и сейчас, а не через неделю. Языком программирования python удобно и уместно пользоваться, когда тебе нужно сразу... Читать далее
4 эксперта согласныи2 эксперта не согласны
Уточню: алгоритмы, используемые для решения задач ИИ (а если говорить более правильно — машинного обучения)... Читать дальше
Специалист в области разработки систем управления. Трансгуманист. Интересуюсь...  · 13 мар 2016
Если вы рассуждаете как прикладной программист, пишущий программу для решения своих собственных задач, то ваше замечание справедливо. Для разработки же программного обеспечения, как вида промышленного производства продукции, простота первоначального написания программы играет незначительную роль. В основном, при прочих равных условиях, имеют значение сопровождаемость, со... Читать далее
1 эксперт согласен
Python по скорости выполнения кода проигрывает + ест чуть больше ОЗУ... Если руки растут от куда нужно, то и код... Читать дальше
Веб-разработчик, геймер, специалист по этике  · 2 авг 2021
"Синтаксис проще" и "написать программу быстрее" - это не те преимущества, которые ценятся в профессиональной разработке ПО на высоком уровне. Код пишется для его читателя, а не для его писателя. Питон и его среда выполнения был разработан специально как язык для написания одноразовых сценариев и прототипирования, для экспериментов, на основе которых уже будет написано... Читать далее
1 эксперт согласен
Выбор языка зависит от конкретной задачи. Нет "универсального" инструмента для всего, если это не ассамблер :))... Читать дальше
Мы, Российская компания интегратор и разработчик программного обеспечения, и решений для...  · 19 окт 2020  · dta.agency

Язык программирования (ЯП) нужно выбирать исходя из задач. Не стоит использовать один ЯП - как универсальное решение всех проблем. В каждой предметной области есть свои тонкости.

Разработка программного обеспечения. Автоматизация бизнес процессов. Дизайн.Перейти на dta.agency
1 эксперт согласен
IT Java, python, golang  · 30 июн 2021
У этих языков разные ниши. Python прекрасен если нужно собрать что-то быстрое на коленке (для стартапа или автоматизации какой-нибудь задачи) Но, если вы создаете большой корпаративный софт, то тут нужен язык с статической типизацией, так как для крупных проектов с ним в разы проще работать (прим. Java, C#) Если же вам нужно "выжить все соки из вашего железа", то С++... Читать далее
1 эксперт согласен
BackEnd, PHP, SQL, Redis, RabbitMQ   · 3 июл 2021

Python - это интерпретируемый язык программирования. C - компилируемый. Для большинства серьезных проектов ( прим. банковская система) интерпретируемые языки не подходят по соображениям безопасности. Ну и скорость соответственно у него намного ниже

1 эксперт согласен