Hacker News Digest

Тег: #kotlin

Постов: 3

Zig's Lovely Syntax (matklad.github.io) 💬 Длинная дискуссия

Zig выглядит почти как Rust, но делает синтаксис ещё приятнее за счёт более простой семантики и ряда изящных решений.

Числа
Литералы 92 всегда имеют тип comptime_int; при присваивании они неявно приводятся к нужному типу. Суффиксов нет.

Строки
Многострочные «сырые» строки пишутся через \\ в начале каждой строки; \ не экранируется, отступы не портятся, а лексер работает построчно.

Структуры
.{ .x = 1, .y = 2 } — запись поля через .x = совпадает с присваиванием, что позволяет грепом находить именно записи, а не чтения.

Типы
Все типы префиксные: u32, [3]u32, ?[3]u32, *const ?[3]u32. Разыменование постфиксное: ptr.*.

Идентификаторы
Синтаксис @"имя с пробелом" позволяет обходить ключевые слова и экспортировать любые имена.

Функции
fn add(x: i32, y: i32) i32 — без стрелки ->, так как лямбд нет, а возвращаемый тип всегда обязателен. pub fn main() void {}.

Переменные
const и var; часто используемое const короче, чем в Rust, но всё же длиннее Kotlin-овского val.

by Bogdanp • 10 августа 2025 г. в 15:33 • 157 points

ОригиналHN

#zig#rust#kotlin#csharp#go#dlang

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

  • Обсуждение разделилось: кому-то синтаксис Zig кажется «прекрасным» минимализмом, другим — «шумным» и «капризным».
  • Спор о порядке «имя: тип» vs «тип имя»: одни хотят видеть тип первым, другие — имя.
  • Критика деталей: @-префиксы, .{}, отсутствие лямбд, перенос строк, orelse без пробела.
  • Плюсы: raw-строки Zig решают проблему отступов; обработка ошибок через try нравится многим.
  • Сравнения: Kotlin, C#, Go, Rust, D — каждый считает «своё» лучше.
  • Итог: «красота» синтаксиса субъективна и во многом привычна; после практики Zig начинает нравиться.

An AI-first program synthesis framework built around a new programming language (queue.acm.org)

Universalis: язык, который читают эксперты, а пишут LLM
Автор: Erik Meijer

  • Цель — дать знатокам предметной области возможность формулировать задачи естественным языком и получать готовые программы без участия разработчиков.
  • Средство — язык Universalis (в честь Лейбница), исполняемый нейро-компьютером Automind. Код похож на Excel-формулы, обёрнутые в «живые» описания.

Пример
Вопрос: «Алиса купила килограмм яблок за @B и продала за @S. Какой процент прибыли @P?»
Ответ-Universalis:

[@D is (@S-@B)]  
[@P is (@D/@B)*100]

Вводим @B=10, @S=17 → @P=70 %.

Особенности

  • Синтаксис максимально приближен к естественному языку.
  • Внутри — логические предикаты Prolog.
  • Поддержка пред-/пост-условий для валидации данных.
  • Среда «живого программирования» наподобие электронной таблицы: переключение между формулами и значениями.

by tosh • 09 августа 2025 г. в 15:36 • 98 points

ОригиналHN

#universalis#prolog#kotlin#dataframes#llm#programming-languages

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

  • Критика: статья расплывчата, синтаксис «языка» меняется, управляющие конструкции описаны прозой, примеры сводятся к «сделай всё за меня».
  • Сомнения: это реальный язык или фантазия LLM?
  • Опасения: упрощение ведёт к потоку «мусорного» кода.
  • Технические детали: под капотом Kotlin DataFrames, возможна ad-hoc типизация.
  • ACM Queue обвиняют в рекламе без упоминания ограничений.
  • Перспектива: рано или поздно придётся заново изобретать модули, типы, ошибки, параллелизм и т.д.

Byte Buddy is a code generation and manipulation library for Java (bytebuddy.net)

Byte Buddy — библиотека для генерации Java-классов во время выполнения без компилятора. В отличие от встроенных средств, она позволяет создавать произвольные классы, а не только прокси по интерфейсам.


Поддержка

  • Коммерческая: обучение, консультации, разработка — пишите rafael.wth@gmail.com.
  • Общие вопросы: задавайте на Stack Overflow с тегом byte-buddy; для неформатных тем — рассылка.
  • Баги и фичи: issue tracker; пришлите пример кода и версию Java.
  • Разработка: делайте pull-request; крупные фичи обсудите заранее в рассылке.

Проект ведёт Rafael Winterhalter с 2014 г.

by mooreds • 08 августа 2025 г. в 17:25 • 80 points

ОригиналHN

#java#bytebuddy#code-generation#kotlin#micronaut#jep-484

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

  • В обсуждении сравнивают новый стандартный API для генерации байт-кода в JDK 24 (JEP 484) и старое решение ByteBuddy.
  • Упоминают JavaPoet (теперь форк от Palantir) как удобный инструмент для генерации кода на уровне исходников.
  • Micronaut показан примером фреймворка, избегающего runtime-генерации, делая всё во время компиляции.
  • Поднимаются вечные споры «Java vs Kotlin»: кто-то считает Java «C для JVM», кто-то предпочитает Kotlin, а LLM якобы лучше понимают Java.