На чем писать back-end, в котором много математики? Есть идея одного сервиса, бэкэнд которого будет считать довольно много математики по весьма объемным данным (статистика, fft, свертки, обработка звука и изображений, возможно немного распознавания и всё такое). Собственно вопрос - какой выбрать язык
Некоторое время назад я узнал про NumPy, и он мне очень понравился. В этой связи, конечно же, возникла идея выбрать Питон. Масла в огонь подлил один опытный товарищ, который сказал что-то типа "да сейчас весь веб нужно делать на Питоне" (мысленно сделаю скидку на его личные симпатии)
Но потом мне попалась на глаза статья, из которой следует, что Python в среднем на порядок(!) медленнее, чем Go. Это сильно поколебало моё мнение. 2-3 раза можно было бы простить, но порядок - это очень серьезный повод задуматься. Сервера-то недешевые
И вот я подумал, что может поступить иначе - основную часть бэкэнда тупо на PHP (проще и дешевле), а самые критичные и математичные места на Go
С другой стороны, я читал, что вроде бы NumPy внутри реализован на C++, а питоновый там только интерфейс? Если так, что тесты в вышеприведенной статье могут быть непоказательны в данном случае
И чтоб в два раза не вставать - существуют ли библиотеки, подобные NumPy для PHP, Go и пр? Чтобы похожая идеология, количество функций и так далее. Конечно, быстрее всего будет работать что-то нативное на C++ (типа FFTW), но что-то не хочется возиться с большим зоопарком разрозненных библиотек в попытках их подружить. Хочется один швейцарский ножик.

21 Авг 2019 в 06:11
183 +1
1
Ответы
1

Для бэкенда, который будет выполнять много математических операций на объемных данных, выбор языка программирования зависит от нескольких факторов.

Python является широко используемым языком программирования в области анализа данных и научных вычислений благодаря богатым библиотекам, таким как NumPy, SciPy, Pandas, и другим. NumPy действительно эффективно работает с операциями линейной алгебры и математическими вычислениями. Однако, Python может быть не самым быстрым языком выполнения из-за динамической типизации и других факторов.

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

Что касается использования PHP, то это, возможно, не самый оптимальный выбор для выполнения математических операций на объемных данных. PHP преимущественно используется для разработки веб-приложений и веб-серверов, и не является столь эффективным для выполнения математических вычислений как Python и Go.

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

Что касается библиотек, подобных NumPy, то существуют аналоги для различных языков программирования. Например, для Go есть библиотеки go.numerics и gorgonia, которые предоставляют функциональность для выполнения математических операций. Для PHP также существуют библиотеки для работы с математическими операциями, такие как Math PHP.

В конечном итоге, выбор языка программирования зависит от ваших конкретных потребностей, требований к производительности и опыта разработки на определенном языке. Рассмотрите все вышеперечисленные аспекты и примите решение, которое наилучшим образом соответствует вашим потребностям.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 333 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир