понедельник, 27 февраля 2023 г.

[prog.thoughts] ИМХО, не есть хорошо, когда приходится выбирать между "быстрым" и "удобным" языками

Около месяца назад статью "Performance of Kafka Consumers: 1 Billion messages". Ничего интересного или полезного для себя там не нашел.

Но одна мысль засела в голову после прочтения и не отпускает до сих пор. Попробую эту мысль озвучить.

В конце статьи есть абзац:

Maybe Go’s performance overshadows Python, but Python is developer friendly. Of course, I can choose Python in these scenarios. If I don't need a performance or need to develop minimized consumer or I need to one-time run/remove console app. But when I need performance or huge numbers, I would rather Go without question.

Т.е. автор говорит, что когда нужна производительность, то Go его выбор без вопросов. Но когда важно удобство (да и скорость написания кода, пожалуй), то Python.

А вот мне сама необходимость делать такой выбор кажется не то, чтобы странной (хотя да, и странной в том числе), сколько ненормальной.

Ведь одно дело, когда мы выбираем между условными Ada/C++/Rust и не менее условными Java/C#/Scala/Kotlin. Тогда понятно, что небезопасные нативные языки берутся в рассмотрение не просто так, а потому что либо нужно опускаться на весьма низкий уровень, либо нужно выжимать последние крупицы производительности (объективности ради нужно сказать, что есть и другие факторы в пользу группы небезопасных нативных языков, но это уже совсем другая история).

Но вот когда речь идет о языках, которые изначально создавались для удобства программиста, а не для скорости исполнения или тотального контроля за всем и вся... То откуда берется эта ложная дихотомия?

Казалось бы, бери себе Kotlin или C# и не парь мозги. Будет и достаточно удобно, и достаточно быстро. Но нет, зачем-то нужно делать выбор между Go и Python. Нипанятна :)


Еще одно впечатление от упомянутой выше статьи: никакого интереса к задаче извлечения большого объема данных из Kafka не возникло. Хотя могу предположить, что это и нужная, и интересная задача, сопровождающаяся сложными техническими моментами. Однако нет, не торкает. А вот сделать что-то вроде Kafka -- вот это уже совсем другое дело... Ну а чего еще ожидать от хронического велосипедостроителя? ;)

2 комментария:

  1. А в чем претензия к Go? Или это больше о том, что автор, который делая выбор между Go и Python считает Go более быстрым (не беря во внимание например C|C++|Rust)?

    ОтветитьУдалить
  2. @Unknown

    > А в чем претензия к Go?

    Не, Go быстрее Python, тут спору нет.

    Меня удивляет озвученная автором дилема. Мол Python медленный (да), но удобный (нет). А Go не удобный (да), но быстрый (нет).

    Т.е. как будто выбор только между двумя сортами известной субстанции. И главный вопрос: а зачем себя ограничивать лишь этой самой известной субстанцией?

    ОтветитьУдалить