Как стать автором
Обновить

Какой язык программирования выбрать? Обзор Go

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров10K
Всего голосов 11: ↑8 и ↓3+6
Комментарии5

Комментарии 5

Подушню
"Ранее наши разработчики делали обзоры на RustScalaJavaScript и Spark. "
Нельзя сделать обзор "на", но можно сделать обзор чего-то

действительно, спасибо!:)

Что-то я не понял. В плюсах вы указываете простоту языка, а в минусах - наличие GC. Если бы его не было, то язык усложнился бы многократно. Минус про обработку ошибок также видится притянутым за уши. Я не в курсе особенностей языка, но полагаю, что присутствует тип Объект|ошибка. Если у вас каждая функция может заканчиваться с ошибкой (равносильно исключению), то вы в любом другом коде точно также должны их обрабатывать

Добрый день! Мы передали ваш комментарий автору. Ниже его ответ.

В плюсах вы указываете простоту языка, а в минусах - наличие GC. Если бы его не было, то язык усложнился бы многократно.

Все верно, это не противоречит написанному. В первую очередь GC находится в "плюсах", потому как избавляет разработчиков от работы с памятью на том же уровне, что и в ЯПах без GC. Это в свою очередь облегчает работу с языком. В "минусах" он указан, чтобы подчеркнуть, что GC не является панацеей — он добавляет, пусть небольшую, но нагрузку, а также может создавать иллюзию, что разработчику не нужно беспокоиться о памяти. Но, без грамотно написанного кода, вы все еще подвержены утечкам.

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

Акцент сделан не на том, что в Go необходимо обрабатывать ошибки, а в других языках — нет. Минус состоит в подходе работы с ними. Блоки обработки исключений во многих других языках так или иначе позволяют нам группировать вызовы определенных методов и заняться обработкой уже после описания какой-либо логики. Конечно, могут быть ситуации, когда каждый вызов мы так же можем обрабатывать отдельно, но это частные случаи и их можно приводить бесконечно. В случае с Go, обработка почти всегда будет происходить между строк, после каждого вызова метода\функции, способных вернуть ошибку.

Не совсем понимаю причем тут тег реверс-инжиниринг. Если данный термин упоминается в статье 1 раз. Но при этом даже не упомянут тег Go.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий