Тёрка в тагах


Друзья

Его(2) Общие(0) Хотят дружить(0)


  • Atrinax

  • Blackoff

  • login

  • login

  • login

  • login

Враги

Его(0) Общие(0) Обиженные(1)

Большая Тёрка / Мысли / Личная лента olegchir /


olegchir
MadDeer@LOR:

Russ Cox, один из главных разработчиков ЯП Go, написал заметку о том, чем он будет заниматься в 2017 году.

Type aliases. Попытка добавить в ЯП «общие псевдонимы» для того, чтобы облегчить рефакторинг внутри Г Корп, была встречена не очень тепло в сообществе. Не смотря на фекалии, фичу запилили, чтобы позже выпилить из-за обнаружившихся проблем. Вместо них, в 1.9 будут реализованы...
Читать далее
... «псевдонимы типов».

Package management. «Группа контрибьюторов» решила реализовать лучший p.m., централизованный. В стиле Rust:
We’re now iterating on tool implementation, with gps as the engine. We’re learning and tweaking as we go, and plan to open up the repository publicly in early January
A central packaging registry (a la npm)
Напомню, ранее в соседнем треде уже упоминали, как выглядел процесс дизайна пакетного менеджера в ЯП Rust. Выглядело всё где-то так же: сначало реализовали без всякой обратной связи, потом дали сообществу и попросили жрать, что дают.
Впрочем, обещать не значит жениться, пилят всё это какие-то левые лоси, а Russ лишь обещает убедиться, что идеи хорошо лягут на стандартный тулчейн Go.

Build improvements. Недостаточно агрессивное кеширование приводит порой к медленной компиляции. Из этого вытекает и проблема медленного прогона тестов. Помимо этого, go build должен поддерживать и проекты вне GOPATH.

go vet, указывающий на ошибки в корректности кода, возможно, должен запускаться параллельно с компиляцией / прогоном тестов. Кроме того, в него должны быть включены наиболее часто встречающиеся ошибки из 100 самых популярных проектов на Github'е по количеству звёзд / форков.

Улучшение сообщений ошибок. Большая часть кода в Go проектах сейчас выглядит так:
if err != nil {
return err
}
В результате - отсутствие контекста ошибки, её непонятность, что не айс. В 2017 Russ будет раскидывать мыслю по этому поводу.

Формулирование лучших практик pkg/context. В 1.7 запилили этот костыль, сформулировали правила использования и нарушили их при реализации стандартной библиотеки database/sql. Теперь нужно таки опять решить, когда context уместен.

Модель памяти ЯП не даёт никаких гарантий пользователям, поэтому никто не интересуется, как вообще что-то там работает. В 2017 нас ждут захватывающие блогопосты.

Immutability. В долгосрочной перспективе go race для обнаружения гонок должен стать бесполезен в виду реализации reference immutability. Хотя, «вполне вероятно, что это лишь влажные фантазии и ничего такого не случится». В одном можно быть уверенным, в 2017 автор познакомится с проблемой ближе.

Generics. Самый горячий аргумент. Между тем, цитата:
Команда Go никогда не говорила, что в Go дженерики не нужны. Она говорила, что есть более приоритетные задачи.
4 предложения (proposals) по реализации этой фичи не взлетело, протухнув после обсуждений. Сейчас подошло время заново глянуть на проблему, учтя опыт Dart, Midori, Rust и Swift. Но в этом году дженериков не будет, год пройдёт под знаком лучшего понимания.