"Отвечать":

Несмотря на невероятную популярность Python, есть причины, по которым это не идеальный язык программирования. Вот некоторые вещи в пользу Pharo, которых нет в Python:

Во-первых, Pharo - это современный диалект Smalltalk. Как Smalltalk, он наделен чрезвычайно простым синтаксисом, намного проще, чем у Python. Фактически, синтаксис Pharo можно обобщить на открытке! Посмотрим, как это сделает Python.

Для сравнения, Python не так прост и легок в изучении *. На самом деле, некоторые из его функций совершенно необычны. Но Pharo полностью последователен и предсказуем.

Во-вторых, Pharo полностью объектно-ориентирован. Это все объекты, все время. Эта ясность и последовательность делают Pharo очень простым в использовании как язык ООП. Не так с Python. Вам даже не нужно использовать ООП в Python; его «гибридный» характер усложняет использование языка.

В-третьих, IDE Pharo предоставляет уникальные возможности живого кодирования. Это означает, что вы можете проверять и изменять код и данные во время работы программы! Вы понятия не имеете, насколько это мощно. Он практически исключает традиционный цикл редактирования-компиляции-тестирования-отладки, который мешал разработчикам более полувека.

Это одна из основных причин того, что Pharo (Smalltalk) является наиболее производительным из всех основных языков программирования, согласно Namcook Analytics. В среднем Pharo в два раза производительнее JavaScript, C ++, Java, PHP, Python и C #. И значительно более производительный, чем Ruby, Elixir, Haskell и Julia.

В-четвертых, Pharo основан на изображениях. Образ Pharo точно такой же, как образ системы в программном обеспечении виртуализации, таком как VMware и VirtualBox. Это позволяет вам сохранить общее состояние выполнения вашей программы и возобновить выполнение позже именно с того места, где вы остановились! Это невероятно удобно и полезно.

В-пятых, Pharo гораздо более гибок в метапрограммировании, чем Python. Метапрограммирование - одна из самых сильных сторон Pharo. Это похоже на метапрограммирование в Лиспе.

В-шестых, у Pharo есть лямбды, известные как «блоки». В отличие от Python, лямбда-выражения Pharo не имеют особых ограничений, таких как разрешение только одного выражения в лямбде ?!

В-седьмых, Pharo не ограничен GIL (глобальная блокировка интерпретатора). Параллелизм в Pharo намного более плавный и эффективный.

В-восьмых, Pharo поддерживает оптимизацию хвостового вызова для рекурсии. Python - нет.

В-девятых, есть только одна версия Pharo; нет путаницы в коде. С Python вы столкнетесь с ужасным расколом между Python 2.7 и Python 3.x. Неудобная правда в том, что Python 2.7 никогда не исчезнет. Традиционная поддержка требует, чтобы версия 2.7 всегда была с нами, и это сбивает с толку.

В-десятых, Pharo не поражен этим ужасным, ужасным синтаксисом Off-side rule. Многие разработчики абсолютно ненавидят использование отступов в качестве синтаксиса. Признаюсь, это во многом вопрос индивидуального вкуса. Если вы разделяете мое мнение, то это, безусловно, серьезный удар по Python.

В-одиннадцатых, у Pharo нет таких странных правил области видимости, как у Python.

В-двенадцати, производительность Pharo является выдающейся благодаря таким инновациям, как Cog VM и оптимизация Sista. Python обычно интерпретируется, и это делает его медленным, как патока в январе.

В-тринадцатых, в то время как Python наиболее популярен в науке о данных и машинном обучении, Pharo не сутулится в этой области. У Python есть NumPy, но знаете что? У Pharo есть PolyMath. У Python есть привязки к TensorFlow, но знаете что? И Фаро тоже! Фаро отлично разбирается в науке о данных и машинном обучении.

На самом деле Smalltalk имеет гораздо более долгую историю в области ИИ, чем Python. Smalltalk использовался в исследованиях искусственного интеллекта еще в 1970-х годах в Xerox PARC. Для сравнения, Python - малыш!

Я признаю, что у Python тоже есть преимущества, такие как гораздо больше возможностей для трудоустройства и более богатая экосистема библиотек и инструментов **. Но очевидно, что у него есть много возможностей для улучшения, и именно здесь Pharo может вмешаться.

* Хотя синтаксис Pharo не совсем похож на английский, он читается скорее как pidgin English, особенно если вы посмотрите на сообщения с ключевыми словами, которые эффективно самодокументируются.

** Но эти преимущества могли бы легко достаться Pharo, если бы этим языком пользовалось больше людей. Помните, что когда-то у Python не было много вакансий и богатой экосистемы. На создание этих вещей ушло время.

Почему не следует Фарону?