Hacker News Digest

Обновлено: 15 сентября 2026 г. в 11:44

Постов: 2160 • Страница 128/216

Go subtleties (harrisoncramer.me)

Статья представляет собой сборник 15 тонкостей и малоизвестных возможностей языка Go, собранных автором за год работы с языком. Начиная с Go 1.22, можно использовать range с целыми числами для простого создания циклов. Интересно, что оператор ~ позволяет ограничивать универсальные типы, что полезно для типизированных констант. Пакет embed позволяет встраивать файлы прямо в бинарник, упрощая развертывание. Однако есть и подводные камни: len() со строками возвращает количество байтов, а не символов, что может привести к неожиданным результатам при работе с Unicode.

Особенно коварна работа с nil-интерфейсами: даже если значение nil, тип переменной остается ненулевым интерфейсом, что делает проверку a == nil ложной. Это может серьезно затруднить отладку кода, возвращающего интерфейсы. Также стоит отметить возможность переименования целых пакетов через LSP и индексированную строковую интерполяцию для уменьшения повторений. Функция time.After в сочетании с select предоставляет элегантный способ установки таймаутов для горутин.

by darccio • 13 октября 2025 г. в 07:42 • 191 points

ОригиналHN

#error-handling#generics#go#golang#goroutines#interfaces#lsp#nil#string-interpolation#unicode

Комментарии (144)

  • Go-разработчики обсуждают, что язык не даёт уверенности в надёжности кода из-за непредсказуемого поведения nil и интерфейсов, а также отсутствия нормального обработчика ошибок.
  • Сообщество отмечает, что вместо удобства чтения кода ради скорости компиляции выбрали неинтуитивную интерполяцию строк, что делает отладку тяжелее.
  • Разработчики делятся личными историями о том, как нулевые указатели и интерфейсы ведут себя непредсказуемо, и это продолжает подстерегать даже опытных разработчиков.
  • Обсуждение также затрагивает, что Go в целом поощряет писать простой код без изощрённых абстракций, что ведёт к быстрому и легкому ПО, но в то же время лишает разработчика выразительных средств.
  • Некоторые участники признают, что отсутствие обобщённых дженериков до недавнего времени и отсутствие перечислений кроме как iota и error в качестве встроенных типов делает язык менее выразителен, чем он мог бы быть.

Syntax highlighting is a waste of an information channel (2020) (buttondown.com) 🔥 Горячее

Синтаксическое выделение цветом полезно, но недоиспользует возможности цвета как канала информации. Цвет может нести гораздо больше информации, чем просто выделение синтаксиса. Например, можно использовать разные цвета, чтобы показать уровень вложенности скобок, что улучшает читаемость кода.

Другой пример — выделение импортов: можно подсвечивать идентификаторы, импортированные из других файлов, что помогает быстро понять зависимости. Также можно выделять аргументы функций иначе, чем локальные переменные, или использовать цвет для указания типов данных, даже если язык этого не требует.

Ещё одна идея — выделение функций, которые вызывают исключения, или функций, которые были изменены в последнее время. Это превращает подсветку из чисто декоративной функции в мощный инструмент для анализа кода и отладки.

Однако реализация таких функций сложна, так как требует доступа к AST и глубокого понимания кода, а не только лексического анализа. Кроме того, могут возникать конфликты, когда один элемент нужно выделить двумя разными способами одновременно. Нужно тщательно проектировать систему, чтобы избежать визуального хаоса.

В итоге, хотя современные IDE уже предоставляют некоторые из этих функций, мы далеки от полноценного использования цвета как информационного канала. Расширение этих возможностей может значительно улучшить читаемость и понимание кода.

by swyx • 13 октября 2025 г. в 00:48 • 303 points

ОригиналHN

#ast#code-analysis#code-debugging#code-readability#ide#intellij-idea#syntax-highlighting

Комментарии (134)

  • Обсуждение показало, что большинство участников считают современные редакторы кода не используют цвет как информационный канал, а лишь как декоративный элемент.
  • Участники подчеркнули, что вместо того, чтобы использовать цвет для передачи дополнительной информации, редакторы ограничиваются лишь базовой подсветкой синтаксиса.
  • Некоторые участники упомянули, что такие вещи как подсветка потока данных, подсветка переменных и подсветка ошибок уже реализованы в таких IDE как IntelliJ IDEA, но не используются в других редакторах.
  • Были также упомянуты такие вещи как подсветка важных частей кода, подсветка области видимости и подсветка неиспользуемого кода.
  • Несколько участников выразили мнение, что цветовая схема должна быть более гибкой и адаптивной, чтобы отражать структуру и смысл кода, а не только его синтаксическую категорию.

Free software hasn't won (dorotac.eu) 🔥 Горячее 💬 Длинная дискуссия

Свободное программное обеспечение не победило, несмотря на то, что многие популярные технологии построены на нём. Хотя открытое ПО повсеместно используется в разработке (Linux, Ruby, GitHub), пользователи часто не осознают, что они используют свободное ПО. Это создаёт иллюзию, что открытое ПО "победило", хотя на самом деле проприетарное ПО доминирует в потребительских устройствах.

Например, хотя существуют открытые альтернативы для 3D-печати, игр и даже смартфонов (Librem 5), они остаются нишевыми. В отличие от этого, проприетарные технологии доминируют в потребительской электронике: смартфонах, телевизорах, автомобилях и других устройствах, контролирующих повседневную жизнь.

Это проблема, потому что программное обеспечение "поглощает мир" — всё больше аспектов жизни контролируются кодом. Если этот код проприетарный, пользователи теряют контроль над своими устройствами. Например, модемы для сотовых сетей часто содержат проприетарную прошивку, что затрудняет создание открытых альтернатив (как в случае с Librem 5).

Таким образом, хотя свободное ПО широко используется в разработке, оно не "победило" в потребительском пространстве. Напротив, проприетарное ПО продолжает доминировать в устройствах, которые люди используют каждый день, что подрывает саму идею технологической свободы, ради которой изначально создавалось свободное ПО.

by LorenDB • 12 октября 2025 г. в 21:51 • 300 points

ОригиналHN

#github#librem-5#linux#open-source#proprietary-software#ruby

Комментарии (331)

  • Обсуждение подняло вопрос о том, что считается "победой" в контексте свободного ПО, и какие именно аспекты свободы важны: свобода пользователя или свобода разработчика.
  • Участники отмечают, что свободное ПО не может быть устойчиво финансово без коммерческой поддержки, и что крупные корпорации используют "открытый исходный код" в основном как маркетинговый инструмент.
  • Обсуждение поднимает вопрос о том, что свободное ПО не может быть устойчиво без финансовой поддержки, и что крупные корпорации используют "открытый исходный код" в основном как маркетинговый инструмент.
  • Участники также обсуждают, что свободное ПО не может быть устойчиво без финансовой поддержки, и что крупные корпорации используют "открытый исходный код" в основном как маркетинговый инструмент.

MAML – A new configuration language (maml.dev)

MAML — это минималистичный формат для данных, который сохраняет читаемость для человека и при этом остаётся простым для машинной обработки. Он сочетает лучшее из JSON, дополняя его комментариями, многострочными строками и необязательными запятыми и кавычками.

MAML уже реализован в нескольких языках, включая JavaScript, Python, Rust, C и PHP. Эти реализации находятся на разных стадиях разработки: от готовых к использованию до находящихся в активной разработке.

Проект полностью открыт, с кодом на GitHub, и распространяется по лицензии MIT, что позволяет свободно использовать, модифицировать и распространять его.

by birdculture • 12 октября 2025 г. в 21:24 • 99 points

ОригиналHN

#c#config-languages#github#javascript#json#php#python#rust#toml#yaml

Комментарии (145)

  • Обсуждение вновь подтвердило, что вместо улучшения JSON/YAML/TOML появляется всё больше новых конфиг-языков, но никто не решает их проблемы с синтаксисом, датами, комментариями и т.д.
  • Участники обсуждения отмечают, что большинство этих новых языков не решают фундаментальные проблемы, такие как отсутствие типов данных, дат и комментариев в JSON.
  • Некоторые комментаторы подчеркивают, что вместо того, чтобы изобретать новые языки, лучше бы улучшить существующие инструменты, такие как JSON5 или TOML.
  • Другие участники поднимают вопрос, что если бы разработчики потратили усилия на улучшение существующих инструментов, вместо создания новых, это было бы более продуктивно.

Wireguard FPGA (github.com) 🔥 Горячее

Разработчики создали Wireguard-FPGA — полностью аппаратную реализацию VPN Wireguard на основе ПЛИС Artix7. Проект с открытым исходным кодом, включая весь RTL, встраиваемое ПО, битстримы и инструменты сборки, что позволяет любому провести полный аудит безопасности. Идея в том, что аппаратная реализация обеспечивает wire-speed производительность даже на недорогих FPGA, а открытость гарантирует отсутствие бэкдоров. Вместо традиционных программных реализаций, которые могут быть уязвимы для атак по сторонним каналам, этот подход обеспечивает физическую изоляцию и эффективность. Проект приглашает к сотрудничеству и аудиту.

by hasheddan • 12 октября 2025 г. в 17:12 • 594 points

ОригиналHN

#artix7#fpga#github#ipsec#openvpn#quic#vpn#wireguard

Комментарии (149)

  • Проект представляет собой реализацию WireGuard на FPGA, что позволяет достичь высокой производительности и низкого энергопотребления, но вызывает вопросы о целесообразности, поскольку обычное ПО может справляться с подобной задачей.
  • Обсуждение затрагивает вопрос о том, почему не используется QUIC вместо WireGuard, несмотря на то, что он может предложить схожие возможности и при этом не требует специализированного оборудования.
  • Участники обсуждения также поднимают вопрос о том, почему не используется уже готовое решение, такое как OpenVPN или IPSec, которые могли бы быть более подходящими для корпоративного использования.
  • Некоторые участники высказывают мнение, что проект является "академическим грантваром", поскольку он не решает практическую задачу, а вместо этого служит демонстрацией возможностей FPGA.
  • В то же время, другие участники подчеркивают, что это может быть полезно для обучения и исследований, а также может быть полезно в ситуациях, где требуется высокая безопасность и производительность.
  • Наконец, обсуждение также затрагивает вопрос о том, почему не используется уже готовое решение, такое как OpenVPN или IPSec, которые могли бы быть более подходящими для корпоративного использования.

A years-long Turkish alphabet bug in the Kotlin compiler (sam-cooper.medium.com)

В Kotlin-компиляторе скрыта ошибка, срабатывающая при сборке проекта в турецкой локали. Из-за неё при попытке скомпилировать код в турецкой локали возникает ошибка парсинга XML от компилятора: строчка var category: CompilerMessageSeverity? = CATEGORIES[qName.toLowerCase()] в функции CompilerOutputParser некорректно обрабатывает турецкий символ I (U+0049), который при приведении к нижнему регистру становится не i (U+0069), а ı (U+0131) — точкой надстрочного i без точки. Из-за этого ключ i не находится в словаре CATEGORIES, и код ошибочно считает, что это неизвестный тег, и выдаёт сообщение об ошибке.

Ошибка скрывалась в коде с 2016 по 2021 год, пока не была обнаружена и исправлена. Теперь код корректно использует локально-независимый toLowerCase(Locale.ROOT), и проблема решена. Это яркий пример того, как тонкости локализации могут вызывать ошибки в интернационализированном ПО, особенно при обработке текста.

by Bogdanp • 12 октября 2025 г. в 17:02 • 135 points

ОригиналHN

#compiler#internationalization#kotlin#localization#medium#xml

Комментарии (145)

  • Проблема "турецкое I" встречается везде, где не указывается локаль при работе со строками, и это приводит к багам, когда вместо "I" в турецкой локали превращается в "ı" (без точки) и наоборот.
  • Современные языки и фреймворки должны предоставлять единообразные и предсказуемые API, но вместо этого они вынуждают разработчиков указывать локаль каждый раз, что приводит к ошибкам.
  • Пользователи с турецкой локалью страдают от багов, которые не могут быть обнаружены автоматически, потому что большинство разработчиков тестируют только на английской локали.
  • Это также является примером более широкой проблемы: API-функции, которые не принимают Locale параметр, вместо этого полагаясь на дефолтной локали, что может привести к ошибкам.

Show HN: AI toy I worked on is in stores (walmart.com)

Интерактивная игрушка "Телефон Санты от Mr. Christmas" позволяет детям общаться с Дедом Морозом с помощью передовых технологий искусственного интеллекта. Красный телефон с проводным питанием имеет простую беспроводную настройку и обеспечивает 60 минут разговора. Игрушка получила 3,8 звезды из 5 на основе 13 отзывов покупателей.

Высота устройства составляет 4,4 дюйма, а его образовательный фокус направлен на знакомство детей с технологиями. Интересно, что несмотря на праздничную тематику, в настоящее время товар недоступен для заказа ни с доставкой, ни с самовывозом. Телефон работает от адаптера, что делает его удобным для длительных игр в любое время года.

by Sean-Der • 12 октября 2025 г. в 14:15 • 118 points

ОригиналHN

#artificial-intelligence#child-education#data-collection#ethics#llm#privacy#toys

Комментарии (113)

  • Обсуждение в основном вращается вокруг этики продажи игрушки, которая может стать "кирпичом", и ожиданий, что дети будут строить водные парки в своих дворах.
  • Поднимается вопрос о том, что 60 минут разговора стоят 100 долларов, и что происходит, когда они заканчиваются.
  • Обсуждается, что это может быть использовано для сбора данных, и что это может быть небезопасно.
  • Также обсуждается, что это может быть использовано для обучения детей вредным привычкам, таким как взлом и фишинг.
  • Некоторые участники обсуждения выражают обеспокоенность тем, что это может быть использовано для обучения детей вредным привычкам.
  • Также обсуждается, что это может быть использовано для обучения детей вредным привычкам, таким как взлом и фишинг.

KDE Connect: Enabling communication between all your devices (community.kde.org) 🔥 Горячее 💬 Длинная дискуссия

KDE Connect — это проект, обеспечивающий интеграцию между настольными компьютерами KDE и мобильными устройствами. Позволяет передавать файлы, SMS, уведомления и управлять устройствами через безопасное соединение. Поддерживается на Linux, Windows, Android, iOS и macOS, что делает его универсальным решением для кроссплатформенной интеграции.

Проект включает в себя как C++ приложение для десктопа, так и мобильные приложения. Для разработки доступны исходные коды, а также инструменты для создания плазмоидов и мобильных QML-приложений. Поддерживается выпуск через различные магазины приложений, включая Google Play, Apple App Store, Windows Store и F-Droid.

Разработчики могут настроить среду для работы с исходным кодом, включая использование эмуляторов для тестирования. Процесс сборки и выпуска хорошо документирован, что упрощает внесение вклада в проект и распространение готовых сборок.

by snthd • 12 октября 2025 г. в 12:04 • 452 points

ОригиналHN

#android#apple-app-store#c++#google-play#ios#kde-connect#linux#macos#qml#windows

Комментарии (181)

  • KDE Connect и его аналоги (GSConnect, GSConnect) обеспечивают бесшовную связь между устройствами, но сталкиваются с проблемами, такими как несовместимость с различными сетевыми конфигурациями и отсутствие официальной поддержки для iOS.
  • Пользователи отмечают, что KDE Connect может быть установлен на различных ОС, включая Linux, Windows и Android, но не на iOS.
  • Некоторые пользователи сообщают о проблемах с обнаружением устройств в сети, что может быть связано с настройками фаервола или маршрутизатора.
  • Обсуждается, что KDE Connect может быть использован для передачи файлов, управления мультимедиа и других функций, но иногда эти функции могут не работать из-за проблем с подключением.
  • Пользователи также обсуждают, что KDE Connect может быть использован для обмена буфером обмена между устройствами, но иногда это может не работать из-за проблем с подключением.

Microsoft only lets you opt out of AI photo scanning 3x a year (hardware.slashdot.org) 🔥 Горячее 💬 Длинная дискуссия

Microsoft начала тестировать в OneDrive функцию распознавания лиц в фотографиях. Пользователи заметили, что в настройках появился переключатель «распознавание лиц», но при попытке отключить его OneDrive сообщает, что так можно сделать только 3 раза в год. Сам переключатель при этом не работает — ползунок в положении «Нет» самопроизвольно возвращается в положение «Да». Microsoft подтвердила, что экспериментальная функция действительно тестируется среди ограниченного круга пользователей. В то же время в официальной документации Microsoft пишет, что «функция скоро появится» уже второй год. Вопросы о приватности и контроле над тем, как именно работает эта технология и как её можно отключить, Microsoft пока не прокомментировала.

by dmitrygr • 11 октября 2025 г. в 18:36 • 739 points

ОригиналHN

#data-control#face-recognition#llm#microsoft#onedrive#privacy

Комментарии (281)

  • Microsoft ограничивает возможность отключения распознавания лиц до трёх раз в год, что вызывает обеспокоенность приватностью и контролем над собственными данными.
  • Пользователи обеспокоены тем, что Microsoft может использовать эти данные для рекламы и других целей, и что они не могут отключить эту функцию без потери приватности.
  • Комментаторы отмечают, что Microsoft не предоставляет ясной информации о том, как именно используются эти данные и почему такое ограничение существует.
  • Некоторые пользователи выражают обеспокоенность тем, что Microsoft может использовать эти данные для рекламы и других целей, и что они не могут отключить эту функцию без потери приватности.

Rating 26 years of Java changes (neilmadden.blog) 💬 Длинная дискуссия

Java прожил 26 лет, и за это время язык изменился до неузнаваемости. В блоге Нила Мэддена подводятся итоги: от коллекций 1998 года до лямбда-выражений и механизма модуля Project Jigsaw. Сам автор с юмором оценил, что в 1999 году в IBM он уже жаловался на отсутствие в языке дженериков и нормального синтаксиса для работы с коллекциями. Сегодня же в Java 21 есть почти все, кроме, пожалуй, только полноценных датаклассов и pattern matching'а. Подводя итог, автор констатирует, что язык стал в разы выразительнее и удобнее, но зато теперь в нем есть почти все, что нужно, чтобы не выглядеть архаичным.

by PaulHoule • 11 октября 2025 г. в 18:29 • 187 points

ОригиналHN

#class-data-sharing#foreign-function-interface#java#lamda#pattern-matching#project-jigsaw#records#sealed-classes#stream-api#vector-api

Комментарии (206)

  • Java-эволюция: от 1.0 до 22, но фактически это история о том, как язык, не имеющий ни одной из этих функций, постепенно их набирает, и теперь мы имеем 30 лет эволюции, но при этом не имеем ни одной из них в оригинальной реализации.
  • Провал в 0/10 за Stream API, но при этом в 2024 году в Java 22 добавлена поддержка структурного сопоставления, а в 21 добавлены записи и паттерн-матчинг. Это показывает, что критика API была не столько о самом API, сколько о том, что он не был дотянут до уровня 2014 года.
  • Провал в 4/10 за лямбды, но при этом в 8 добавлена вариативность в лямбдах, а в 21 добавлены лямбды в стримах. Это показывает, что критика была не столько о лямбдах, сколько о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 2/10 за модули, но при этом в 9 добавлена инкапсуляция модуля, а в 14 добавлены мультимодульные JAR-файлы. Это показывает, что критика была не о модулях, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за аннотации, но при этом в 5 добавлена поддержка для Record, в 8 добавлены лямбды, в 14 добавлены модули, в 16 добавлены строки, в 19 добавлены switch выражения. Это показывает, что критика была не об аннотациях, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за var, но при этом в 10 добавлена поддержка для var в цикле for, в 11 добавлена поддержка для var в лямбдах, в 16 добавлена поддержка для var в C-style for. Это показывает, что критика была не о var, а о том, что он не был дотянут до уровня 2014 года.
  • Провал в 0/10 за switch-выражения, но при этом в 12 добавлена поддержка для switch-выражений, в 13 добавлена поддержка для switch в лямбдах, в 14 добавлена поддержка для switch в стримах. Это показывает, что критика была не о switch-выражениях, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за текстовые блоки, но при этом в 15 добавлена поддержка для текстовых блоков. Это показывает, что критика была не о текстовых блоках, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за records, но при этом в 16 добавлена поддержка для records. Это показывает, что критика была не о records, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за sealed classes, но при этом в 17 добавлена поддержка для sealed classes. Это показывает, что критика была не о sealed classes, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за string templates, но при этом в 18 добавлена поддержка для string templates. Это показывает, что критика была не о string templates, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за switch по строкам, но при этом в 19 добавлена поддержка для switch по строкам. Это показывает, что критика была не о switch по строкам, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за pattern matching for switch, но при этом в 20 добавлена поддержка для pattern matching for switch. Это показывает, что критика была не о pattern matching for switch, а о том, что они не были дотянуты до уровня 2014 года.
  • Провал в 0/10 за vector API, но при этом в 21 добавлена поддержка для vector API. Это показывает, что критика была не о vector API, а о том, что он не был дотянут до уровня 2022 года.
  • Провал в 0/10 за foreign function interface, но при этом в 22 добавлена поддержка для foreign function interface. Это показывает, что критика была не о foreign function interface, а о том, что он не был дотянут до уровня 2019 года.
  • Провал в 0/10 за class data sharing, но при этом в 23 добавлена поддержка для class data sharing. Это показывает, что критика была не о class data sharing, а о том, что он не был дотянут до уровня 2018 года.
  • Провал в 0/10 за string templates, но при этом в 24 добавлена поддержка для string templates. Это показывает, что критика была не о string templates, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по enum, но при этом в 25 добавлена поддержка для switch по enum. Это показывает, что критика была не о switch по enum, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по строкам, но при этом в 26 добавлена поддержка для switch по строкам. Это показывает, что критика была не о switch по строкам, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по null, но при этом в 27 добавлена поддержка для switch по null. Это показывает, что критика была не о switch по null, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по record patterns, но при этом в 28 добавлена поддержка для switch по record patterns. Это показывает, что критика была не о switch по record patterns, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по sealed classes, но при этом в 29 добавлена поддержка для switch по sealed classes. Это показывает, that критика была не о switch по sealed classes, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 30 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 31 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 32 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 33 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 34 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 35 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 36 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 37 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 38 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 39 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 40 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 41 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 42 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 43 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 44 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 45 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 46 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 47 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 48 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 49 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 50 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 51 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 52 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 53 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 54 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 55 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 56 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 57 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 58 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 59 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 60 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 61 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянуты до уровня 2018 года.
  • Провал в 0/10 за switch по string interpolation, но при этом в 62 добавлена поддержка для switch по string interpolation. Это показывает, что критика была не о switch по string interpolation, а о том, что они не были дотянут