Тернарный оператор в Go. Социальный эксперимент против диктатуры if else.

Расширяем горизонты

Методы и техника разработки ПО
GO
Расширение кругозора

Программный комитет ещё не принял решения по этому докладу

Целевая аудитория

Доклад будет полезен Go-разработчикам, которые скучают по «?:», любителям «синтаксического сахара», а также всем, кто интересуется внутренностями компилятора Go и любит эксперименты с языком.

Тезисы

Go - один из самых лаконичных языков, но у него до сих пор нет тернарного оператора. Почему? Так исторически сложилось, команда языка сознательно не добавляет эту конструкцию. Каждый, кто писал на C, Java, JavaScript или PHP, хотя бы раз ловил себя на мысли: «а вот тут бы пригодился ?: вместо громоздкого if-else».

Доклад посвящён исследованию восприятия идеи добавления тернарного оператора в Go. В рамках работы проведён социальный эксперимент, включающий опросы разработчиков и контрибьюторов языка, сбор аргументов сторонников и противников изменений, анализ существующих proposal’ов и обсуждений в issue-трекере Go. Отдельная часть доклада посвящена практической стороне эксперимента - модификации компилятора, работе с AST и IR-узлами, синтаксическим проверкам и интеграции в IDE на базе форка go-ternary. Разберём, какие сложности возникают при расширении языка и чему подобные эксперименты учат нас о границах и принципах Go.

Более 10 лет опыта работы в IТ-отрасли. Начинал как PHP-разработчик, затем пришел к текущему основному языку разработки — Golang. Уделяю большое внимание высоконагруженным распределенным системам. Последние 8 лет работает в e-commerce.

Видео