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

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

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

ТехнологииПрограммирование
Евгений Григоренко
  ·   · 518,9 K
Студент. Хочу развиваться в IT сфере.  · 18 сент 2021
Начну пожалуй с того, что у всех языков есть плюсы и минусы, сферы, в которых из-за их особенностей, целесообразнее было бы их применять.
Python имеет простой синтаксис, множество библиотек, которые упрощают реализацию идей, которые нужно сделать здесь и сейчас, а не через неделю. Языком программирования python удобно и уместно пользоваться, когда тебе нужно сразу или когда имеются вычислительные мощности, ведь язык достаточно медленный.
C++ же достаточно быстрый. Ты можешь управлять памятью, как тебе вздумается (выделять и освобождать). Можно распараллелить некоторые алгоритмы и получить максимальную производительность.
Вот два живых примера:
  1. Для вычисления траекторий у космических ракет нужна высокая скорость вычисления, так как если на секунду зависнет, может настать капут. При том что для работы C++ не будет требователен к железу.
  2. Для с работы ИИ (обучения, вычислений) особо скорость не важна, да и обычно на это выделяют вычислительный шкаф (сервер), который очень быстро может выполнять, сложные операции и тут вопрос, насколько быстро ты напишешь код для ИИ и насколько просто будет его читать и править.
Надеюсь объяснил доходчиво. У языков есть свои плюсы и минусы. Иначе все давно бы перешли на один язык и кодили на нём.
С уважением Сергей!
4 эксперта согласныи2 эксперта не согласны
Уточню: алгоритмы, используемые для решения задач ИИ (а если говорить более правильно — машинного обучения)... Читать дальше
Для ИИ нужны довольно большие вычислительные мощности и на Python ни один ИИ ничего не делает. Вычисляется всё в библиотеках, написанных на Си. А Python используется только, как язык для описания структуры самих нейронных сетей.
Только на C/C++ можно выстрелить себе в ногу и потом финишировать первым на любой дистанции (шутка). По существу вашего ответа - вы все правильно сказали. Подтверждаю.
Каждый язык под свои задачи, Пайтон для работы с данными, С++ для сложных программ типо продуктов Эдоб или для разработки качественных 3d игр. Java для микроволновой, пылесосов, мобильных приложений, десктопных приложений.
Основная причина в том, Python - очень медленный язык, но к нему написано огромное количество библиотек (на С++), которые реально быстрые.
Поэтому, кстати, получается, что самому реализовывать сложные алгоритмы на питоне менее выгодно (с точки зрения машинного времени), чем использовать готовое решение из какой-нибудь numpy или pandas.
Этот подход накладывает определенные ограничения на стиль работы самих программистов - типичный прогер на Python чаще всего не пишет программу как таковую, а решает конкретную задачу, которая является частью более глобального проекта. Его не волнуют ни ресурсы системы, ни тонкости работы интерфейсов - все за него сделано другими программистами.
Когда же требуется бОльшая гибкость и необходимость контролировать алгоритмы работы программы досконально - тогда и возникает потребность в таких языках, как С++ или Java.
То есть Вы можете реализовать мобильное приложение на Python, например, но если потребуется что-то выходящее за рамки готовых библиотек, то это будет либо убого, либо медленно.
Как я понимаю, суть в том, что Python хороший, но интерпретируемый язык программирования. C++ же, в отличие от Python, компилируемый язык программирования и, следовательно, существуют компиляторы с языка C++, на входе которых текстовый файл, а на выходе - исполнимый модуль для нужной целевой операционной системы.
Вы ошибаетесь по поводу ИИ. Для ИИ очень даже важна производительность. И ИИ на питоне не работает ни один. Все ИИ на питоне, которые Вы пишите, в конечном счёте вычисляются библиотеками на C++. Питон же тут используется для описания структуры алгоритма. И всего-то.
В Python действительно больше синтаксического сахара, чем в C++, поэтому разрабатывать на нём проще. Однако, если не брать в расчёт синтаксис, C++ выигрывает у Python по следующим причинам: 1) С++ является языком со статичной... Читать далее
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 эксперта согласны
Специалист в области разработки систем...  · 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 эксперт согласен