2021-05-11 13:55:10
Возможности языкаЕсли говорить о возможностях самого языка Go (а не тулинга или стандартной библиотеки), то вот что я думаю.
Нравится отсутствие явного public/private, скобочек в условиях и точек с запятой. Действительно, зачем синтаксис там, где без него можно обойтись.
Нравится, как сделаны функции. Все отлично — и несколько возвращаемых значений, и анонимные функции, и типы на основе функций, и методы.
Скорее нравится, что у всех файлов в пределах пакета общий scope. Скорее не нравится, что заранее не подумали о модулях и приделали их потом сбоку (да и назвали «модулями», хотя какие они к черту модули).
Нравятся указатели без арифметики. Хороший баланс между возможностями и хрупкостью.
Не нравится iota. Это магия (плохонькая), а Go силен как раз тем, что это язык без магии. Лучше бы честные енумы сделали.
Нравятся defined-типы, они добавляют семантичности коду.
Нравятся интерфейсы. Впервые встречаю интерфейсы здорового человека, очень классно придумано.
Нравится embedding в структурах. Простая концепция, но необычайно мощная (сначала даже не понимаешь, насколько).
Нравится defer. Удобнее и мощнее, чем try-finally.
Не нравятся panic и recover. Даже не сами по себе, а то, что из-за них получилось два разных инструмента работы с ошибками.
Конечно, нравятся горутины и каналы. Но тут вряд ли может быть два мнения ツ
217 viewsАнтон Жиянов, edited 10:55