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

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

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

ТехнологииПрограммирование
Евгений Григоренко
  · 517,0 K

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

1) С++ является языком со статичной типизацией, поэтому соответствия данных заданным типам выполняются на этапе компиляции. В Python динамическая типизация, данные могут быть какого угодно типа на этапе компиляции, а проверки на соответствие производятся на этапе выполнения программы. Так же в статической типизации структура переменной - это указатель на адрес в стеке или в куче, где лежит значение. В Python структура переменной - это указатель на структуру, в которой есть указатель на адрес структуры типа данных и указатель на адрес значения. Очевидно, что C++ здесь выигрывает по компактности хранения данных и по скорости доступа к ним. Если приложение работает с большими объёмами данных и хранит их в памяти, борьба за скорость и экономию RAM идёт не на уровне байтов, а даже битов. В этом случае выбор C++ является скорее необходимостью.

2) В C++ широкие возможности по управлению памятью. Когда и где выделить память под объект и высвободить память, решает программист. В Python же программист полностью лишен рычагами управления памятью. Положить данные на стек или в кучу, и когда освободить память, решает язык. Здесь C++ тоже выигрывает, т.к. возможно более рациональное управление памятью, и нет, хоть и небольших, но всё таки затрат на сборку мусора.

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

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 эксперт согласен