Осторожнее с новым Go: разработчик призвал быть аккуратнее из-за обновления языка
Бета Go 1.18 не за горами, а это значит, что язык программирования ждет самое масштабное и ожидаемое изменение с момента его создания, связанное с добавлением дженериков. Нужно ли усложнять ими язык — спорный вопрос, но большая часть специалистов называют их отсутствие «критической проблемой». Что делать, чтобы новая функция не навредила, — своими мыслями на этот счет поделился разработчик под ником robpike.
Несмотря на то, что многие разработчики не используют в работе Go из-за отсутствия дженериков, среди них есть и те, кто относится к новой функции с осторожностью. Они опасаются того, что, как минимум, обобщение типов может усложнить читабельность кода и что размещение дженериков в библиотеке затруднит развертывание. Поэтому, чтобы избежать этого robpike предлагает не обновлять библиотеки в версии 1.18.
Причина, по словам разработчика в том, что если поспешить, есть возможность ошибиться. Над изменениями в языке в той или иной форме создатели работают уже более десяти лет, но изменения в библиотеке очень новые, и у многих недостаточно опыта работы с новыми типами в Go, чтобы обосновать необходимость их применения. Возможно, поможет опыт использования других языков, но Go научил разработчиков одной вещи: он вырабатывает свои собственные способы решения задач.
Для дженериков пока неизвестно, что за способы это будут. Кроме того, обещание совместимости с библиотеками делает вероятность ненужных ошибок довольно высокой. Разработчики должны ждать, наблюдать и учиться, отметил robpike.
Специалист предлагает пока что продолжать разрабатывать, создавать, тестировать и использовать новые библиотеки, но для начала помещать их в репозиторий golang/x/exp
. Так новые библиотеки, которые будут экспериментальными, могут быть протестированы в производстве, но также могут быть изменены, адаптированы и дополнены в течение цикла или двух, позволяя всему сообществу опробовать их. После того, как библиотеки немного адаптируются и улучшатся за счет коллективного опыта, robpike предлагает перенести их в основной репозиторий — уже с уверенностью в том, что все хорошо работает.
Многие хотят скорее опробовать новые языковые возможности и с нетерпением ждут исправлений некоторых проблем в основных библиотеках, которые станут менее неуклюжими после появления дженериков, но, уверен robpike, что пока лучше не спешить.
Релиз бета-версии Go 1.18 ожидается в конце 2021 года.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…