Сейчас как никогда сложно решить, какой язык программирования использовать.

Python хорош и удобен для чтения, но работает слишком медленно. C и C++ - боль в шее для чтения. Java синтаксически раздут и занимает слишком много ресурсов процессора. Хаскелл? Удачи найти поддержку для этого.

Прежде чем вы продолжите чтение, я должен сделать здесь заявление об отказе от ответственности: я полностью предвзят, потому что мой основной язык программирования — Python, но то, что я предвзят, не означает, что я не могу давать непрошенные советы по программированию незнакомым людям. :)

В любом случае, в этой статье мы сравним 4 наиболее часто используемых языка программирования (за исключением JS):

  • C
  • C++
  • Ява
  • питон

питон

Плюсы: легко читать, легко понимать, его стандартная библиотека больше, чем вы думаете, и отличная экосистема/сообщество с открытым исходным кодом. В наши дни буквально у всех есть Python API.

Минусы: Это чертовски медленно

Исправление: используйте расширения C/C++, если вам действительно нужно увеличение скорости. Если ваша программа на самом деле не имеет безумных требований к скорости (большинство настольных приложений этого не делают), то переосмыслите то, как написана ваша программа. Кроме того, Cython великолепен — он использует статическую типизацию и скомпилированные общие объектные файлы, чтобы повысить скорость Python в пугающий раз (до 150 раз для некоторых частей… да, я знаю…)

C

Плюсы: Это быстро, и это было всегда.

Минусы: у него нет объектно-ориентированной поддержки. Есть довольно большая вероятность, что вы в конечном итоге будете бродить по старым веб-сайтам из 90-х годов, пытаясь найти документацию. Его также может быть чрезвычайно сложно читать и понимать по сравнению с другими языками.

Исправление: используйте его в сочетании с другим языком, таким как Python или C++ (хотя смешивание кода C и C++ — это совсем другой набор червей, так что будьте осторожны!)

C++

Плюсы: он почти быстр, чем C, и STL великолепен. Там также много поддержки для него. Также есть объектно-ориентированная поддержка.

Минусы: у него все еще есть некоторые оставшиеся парадигмы C, и это может сбить с толку новичков. Он также все еще не так читаем, как Python. Это не очень хорошо для прототипирования или когда целью является то, что делает код, а не сам код (автоматизация, наука о данных).

Исправление: используйте вместе с Python. Или просто не делайте этого; правильно написанный код C++ с пространствами имен и документацией достаточно удобочитаем.

Ява

Плюсы: поддерживается практически везде. Он обеспечивает соблюдение объектно-ориентированных парадигм. Имеет большую стандартную библиотеку.

Недостатки: Раздут. Это медленно. JVM нагружает ваш процессор (и оперативную память). Вам нужно определить класс буквально для всего, что может быть пугающим для менее опытных программистов и огромной проблемой.

Исправление: если вам нужна поддержка Java для чего-то, просто стисните зубы и постарайтесь максимально уменьшить раздувание кода. Однако, если вам совершенно не нужна Java, попробуйте один из других языков. Kotlin — отличная альтернатива, но ему не хватает универсальной поддержки. Тем не менее, он отлично подходит для новых проектов.

Резюме

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