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

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

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

ТехнологииПрограммирование
Евгений Григоренко
  ·   · 524,8 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. Зная С++ можно быстро освоить любой новомодный язык. Только вот мода проходит, а С++ остаётся. Это лирика, теперь к физике... Читать далее
"Самое большое отклонение от нормы - посредственность." В.ГоловачёвПерейти на selek.ru
6 экспертов согласныи1 эксперт не согласен
Язык C/C++ не является прообразом. Он сам тоже откуда-то произошёл (из языка B), а последний вышел из проекта... Читать дальше
https://pubmed.ncbi.nlm.nih.gov/35987379/  · 19 июл 2021  · linkedin.com/in/maxim-masiutin
Питон медленнее чем С++, и на некторых задачах может быть медленнее в 100 раз и более. Поэтому библиотеки для Питона пишут на С, а не наоборот. Питон интерпретируется, а С++ компилируется. У С++ строгие типы, а у Питона -... Читать далее
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 имеет простой синтаксис, множество библиотек, которые упрощают реализацию... Читать далее
4 эксперта согласныи2 эксперта не согласны
Уточню: алгоритмы, используемые для решения задач ИИ (а если говорить более правильно — машинного обучения)... Читать дальше
Специалист в области разработки систем...  · 13 мар 2016
Если вы рассуждаете как прикладной программист, пишущий программу для решения своих собственных задач, то ваше замечание справедливо. Для разработки же программного обеспечения, как вида промышленного производства продукции... Читать далее
1 эксперт согласен
Python по скорости выполнения кода проигрывает + ест чуть больше ОЗУ... Если руки растут от куда нужно, то и код... Читать дальше
Веб-разработчик, геймер, специалист по этике  · 2 авг 2021
"Синтаксис проще" и "написать программу быстрее" - это не те преимущества, которые ценятся в профессиональной разработке ПО на высоком уровне. Код пишется для его читателя, а не для его писателя. Питон и его среда выполнения... Читать далее
1 эксперт согласен
Выбор языка зависит от конкретной задачи. Нет "универсального" инструмента для всего, если это не ассамблер :))... Читать дальше
Мы, Российская компания интегратор и разработчик п...  · 19 окт 2020  · dta.agency

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

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