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

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

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

ТехнологииПрограммирование
Евгений Григоренко
  · 11,1 K
Программист, преподаватель программирования, интересуюсь формальными и естественными...  · 17 янв 2021

Кратко: разница в предназначении этих языков.

Язык C++ возник как расширение языка Си. А Си — низкоуровневый язык, понятия языка Си близки к понятиям уровня железа (например, активно используемые указатели). Си такой (относительно) сложный из-за требований к эффективной реализации и возможности писать близкий к железу код (ядра ОС, драйвера).

Язык C++, в силу своей философии, стремится быть заменой языка Си, в частности тоже быть эффективным и пригодным для низкоуровневых вещей (тех же драйверов). Поэтому понятия языка C++ тоже подразумевают эффективную компиляцию в машинный код и требуют этого понимания от программистов.

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

Необходимо дать пояснение про 100 раз. Речь здесь идёт о сравнении чистого кода на Python с тем же кодом на C++. Программа на Python может использовать библиотеки, написанные на C/C++, и, по большей части, состоять из вызовов функций этих библиотек. Например, если программа предназначена для проведения каких-то математических расчётов и использует numpy, то её быстродействие немногим будет отличаться от той же программы, написанной на C++, т.к. основное время будет выполняться не код на Python, а библиотечные функции, сами написанные на Си или C++.

Либо, если программа взаимодействует с сетью, а трафик небольшой, то она большую часть времени будет простаивать, ожидая сетевые пакеты. И тоже будет не важно, на чём она написана — на Си, ассемблере или Питоне, тоже заметной разницы в быстродействии не будет.

Математика, прикладная математика, системное программирование   · 8 сент 2021
С++ — эволюционно развивавшийся язык, бывший вначале надмножеством языка С. От "С с классами" С++ прошел эволюцию до совершенно иного языка. Python заточен на легкость программирования и по сути является скриптовым медленным языком, склеивающим блоки, написанные на быстрых языках. Преимущество Python - быстрота разработки, легкость построения модели. C - язык... Читать далее
почему вообще питон считается "легким" языком? Его синтаксис же невероятно переусложнен
Инженер электронной техники, программист.  · 9 сент 2021
Он не сложный. Даже очень удобный. Может быть просто непривычный для новичков? В нем сложен не синтаксис, а некоторая привязка к оборудованию (железу), которая требует от программиста знать много больше. А так то, если прикладное программирование высокого уровня, то уже не важно какой язык.
1 эксперт согласен
Вот как раз привязки к оборудованию там особо то и нет и даже рочное управление памятью вроде как хотят убрать в... Читать дальше
Разработчик  · 18 авг 2016
С++ развивался поверх языка Си. Просто добавили новых фич справа и слева, без переосмысления всей структуры языка. Как если бы коту добавили одно крыло и пару лишних ног. C++ -- сложное и неудобное говно. Не используйте С++. Читать далее
Frontend-разработчик  · 16 июл 2016
Потому что C++ создавался изначально не как отдельный язык высокого уровня, а как дополненная версия языка C. Более того, как говорится в википедии в соответствующей статье "Одним из принципов разработки было сохранение совместимости с C". Поэтому C++ отнаследовал много довольно низкоуровневых возможностей (выделение памяти, и.т.д.). Отчасти поэтому даже новшества и синт... Читать далее
Да. И, наверное, ещё потому что в те времена люди ещё помнили хардкорный ассемблер и невообразимая мешанина разных... Читать дальше
Преподаватель университета, научный работник, физик, математик. Занимаюсь логикой Гегеля.  · 8 сент 2021
Мне часто приходится сталкиваться со студентами, которым надо решить задачи программирования. Как преподаватель с очень большим стажем, я заметила, что в изучении программирования нет проблемы с языком, который надо выучить, а есть проблема с пониманием применения того или иного средства...... Я понимаю, с чем это связано. Дело в том, что информатика и программирование... Читать далее
Очень дельный ответ, а на него и внимания не обращают. Именно что задача определяет выбор подручных средств а не... Читать дальше