26 января 2016 г.

Плюсы или почему я выбрал Go

Производительность

По производительности для веб (готовые фреймворки) Go проигрывает только Java и С / С++ и наравне с node.js. При этом потребление ресурсов существенно ниже чем у Java и намного большая производительность чем у Python / Ruby.

Многопоточность

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

Простота

Он очень прост в освоении. Мне кажется даже элементарен, особенно если есть основа из Python / JavaScript. Есть также довольно занятная модель наследования, которая, как мне кажется более прозрачна чем классическое ООП, но немного непривычна по началу.

Надёжность

Язык этот компилируемый и статически типизированный. Что даёт выявление многих ошибок задолго до продакшена. К примеру такие ошибки в Python выявляются только непосредственным тестированием и, если тестов нет, то шансов положить систему очень много. Тут же это исключается на этапе компиляции.

Скорость компиляции

И, наконец, одна из главнейших фишек - не стоит бояться типизации и компиляции. В 145% случаев Вам не придётся объявлять тип переменой в коде - он задаётся автоматически при присвоении ей значения. Объявлять переменные заранее также не нужно.
Ну и компиляция - главный конёк. Время компиляции, это то, на что делается главный упор при разработке языка. Оно не отличается от времени запуска интерпретируемого языка. То есть система, написанная на go, из нескомпилированных исходников запускается примерно с такой же скоростью как система аналогичной сложности, написанная на интерпретируемом языке.

Итого

То есть мы имеем плюсы из двух миров - скорость компиляции / запуска интерпретируемого и надёжность компилируемого языков. Плюс сверху производительность, мультипарадигменность (можно писать в функциональном стиле), простота и низкое ресурсопотребление.

Подходит ли это Вам решать не мне. Мне - подходит и я считаю его очень хорошим выбором для высоконагруженных сервисов (и не только).

Комментариев нет:

Отправить комментарий