Часто люди, решившие изучать язык программирования, когда задаются вопросом: "Какой язык программирования изучать?", анализируют популярность языков в промышленной разработке. Не стоит так делать! У начинающих другие цели и задачи, чем у профессионалов. И исходя из поставленных целей правильно выбирать язык программирования.
Сравним два языка программирования Python vs JavaScript с этих позиций. Сразу оговорюсь, что с промышленным применением у обоих языков полный порядок. Оба входят в первую пятерку самых популярных языков разработки. Это два языка одной весовой категории - интерпретаторы. Но посмотрим на них взглядом начинающего программиста. Причём программиста-школьника.
Python.
Этот язык изначально задумывался как язык универсального назначения с простым, лаконичным стилем написания. Этим Python победил Perl - другой язык в той же весовой категории, который имел более лаконичный, но гораздо менее понятный синтаксис. Код на Python понятный и удобочитаемый. И главное - Python поставляется с батарейками. Python использует обширный набор стандартных библиотек, которые легко подключить и применить. Это библиотеки табличных вычислений, научных расчетов, анализа данных, работы с графикой, создания веб-приложений и десятки других библиотек. Если библиотек не хватает, то Python легко расширяется кодом на других языках. Это делает Python популярным в научной среде, но не только. На Python пишутся прототипы программ, а зачастую и сами программы. Популярен Python и для организации работы веб-сервисов.
Где же применять Python начинающему программисту-школьнику? Первое, что приходит на ум - Python идеальный язык для подготовки к ЕГЭ. Быстрое написание кода и удобство чтения делает этот язык лучшим в этой категории. Второе нужное для школьников направление - участие в конференциях, конкурсах и олимпиадах. Здесь тоже Python хорош. Быстрое прототипирование подходит для участия в хакатонах, обилие научных библиотек позволяет участвовать в исследовательских конференциях. Для решения олимпиадных задач Python тоже не плох. Конечно, он помедленнее С, но зато код на Python писать гораздо проще.
Если же начинающий программист захочет написать программу, то на Python реализовать можно что угодно. Игры, мобильные приложения, программы на стационарный компьютер - это легко реализуется на Python. Python и в промышленной разработке часто используется для создания MVP - первой версии продукта, дающей возможность оценить идею.
Но Python не без недостатков. Первый недостаток, опасный для начинающих программистов - это синтаксический сахар, которым пропитан код Python. Для лаконичности используются конструкции, которых нет в других языках. Поэтому переучиваться с Python будет мучительно больно. Удобных конструкций будет не хватать в других языках.
Второй недостаток вытекает из первого. Удобные синтаксические конструкции делают производительность кода непредсказуемой. Собственный код Python работает медленно, даже по сравнению с другими языками-интерпретаторами, не говоря уже об скомпилированном в машинный код. Зато компилированные библиотеки работают быстро.
Таким образом у Python присутствуют и плюсы и минусы. Плюсов, закономерно, больше. Но посмотрим теперь на конкурента — JavaScript.
JavaScript
Он разрабатывался как специализированный язык для веб-приложений ещё на заре появления Интернет. До сих пор, согласно статистике, 98% веб-сайтов используют JavaScript в качестве клиентского языка. Но JavaScript перерос границы браузерных приложений. На данный момент на JavaScript пишется как клиентская так и серверная часть веб приложений, программы для мобильных телефонов и смартфонов, приложения на стационарный компьютер. JavaScript владеет обширным набором библиотек и фреймворков не только для веб-разработки, но и, например, для машинного обучения.
Посмотрим теперь на JavaScript глазами программиста-школьника.
И тут приходит первое разочарование - JavaScript не подходит ни для сдачи ЕГЭ, ни для решения олимпиадных задач. Для участия в конкурсах и научно практических конференциях он подходит слабо. Казалось бы это уже ставит крест на использовании этого языка как первого для школьника-программиста. НО это не так однозначно, как кажется.
Преимущество JavaScript - его синтаксис. JavaScript член большой плеяды языков программирования с C подобным синтаксисом. В неё входят как компилируемые языки C и C++, языки виртуальных машин - Java и C# и интерпретируемый язык JavaScript. Это позволяет, изучив основы JavaScript, перейти к изучению любого из перечисленных выше языков.
И, разумеется, у JavaScript сохраняется главное преимущество - это базовый язык Интернет. Связка HTML, CSS, JavaScript открывает дверь в мир Веб технологий. А за ними, как говорят, будущее.
Какие выводы можно сделать из сравнения? Можно ли назвать лучший язык? Нет!
Разные языки не противостоят друг другу, они друг друга дополняют. Особенно хорошо видно это по связке Python & JavaScript. Очень часто серверную часть программы пишут на Python, а клиентскую на JavaScript и программистам необходимо хорошо знать оба языка. Стремление выучить один язык «для всего» опасно. Надо стремиться быть гибким и легко переходить от одного языка к другому, подбирая язык под свою задачу.
Я, например, полагаю идеальным изучение для начала триумвирата из трех языков: Python& JavaScript & классический C на базовом уровне. Но это просто мой личный выбор. А что думаете Вы?