Hacker News Digest

Тег: #scripting

Постов: 3

Awk Technical Notes (2023) (maximullaris.com)

AWK был спроектирован без сборщика мусора, что делает его реализацию простой, быстрой и предсказуемой по потреблению памяти. Это ограничение запрещает возвращать массивы из функций, разрешая только скалярные значения, хотя массивы можно передавать в функции для модификации. Интересно, что переменные становятся локальными, если добавляются в параметры функции, что также служит механизмом автоматического освобождения ресурсов. Брайан Керниган сожалеет об этом дизайне, но на практике он работает хорошо.

В AWK реализована автовивификация — массивы объявляются простым использованием переменной как массива, а переменные неявно объявляются в зависимости от контекста. Это делает язык идеальным для компактных однострочников. Синтаксис языка содержит любопытные особенности: $ является унарным оператором, который может применяться к выражениям, и единственным оператором, разрешенным слева от присваивания. Для пользовательских функций нельзя ставить пробел перед скобкой, в отличие от встроенных, из-за решения использовать пустой оператор для конкатенации строк.

by signa11 • 03 ноября 2025 г. в 10:40 • 124 points

ОригиналHN

#awk#text-processing#scripting#unix#programming-languages#python

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

  • Awk часто недооценивают, хотя он может заменять целые пайплайны (cut, grep, sed) и обрабатывать сложные текстовые задачи.
  • Его мощь и простота для базовых задач отмечаются, но сложные скрипты могут быть трудны для чтения командой без глубокого знания.
  • Ключевые ресурсы для изучения: "More Programming Pearls" и "The AWK Programming Language", а также краткие гайды.
  • Практическое применение: от простых one-liners (например, извлечение данных из ls -l) до сложных скриптов (учёт, генераторы сайтов).
  • Альтернативы: Python предпочитают за читаемость, а некоторые рекомендуют современные инструменты вместо "wrangling" bytestreams.

Wren: A classy little scripting language (wren.io)

Wren — это маленький, быстрый, объектно-ориентированный скриптовый язык с поддержкой concurrency. Его реализация занимает менее 4000 строк кода, что позволяет изучить весь код за один день. Язык сочетает в себе идеи Smalltalk, Lua и Erlang, предлагая современный и понятный синтаксис. Wren использует быстрые однопроходный компилятор в байт-код и компактное представление объектов, что позволяет ему конкурировать с другими динамическими языками.

Особенностью Wren является акцент на классах как основной парадигме и встроенная поддержка легковесных волокон (fibers) для организации программы в набор взаимодействующих корутин. Язык создан для встраивания в приложения — он не имеет зависимостей, имеет небольшую стандартную библиотеку и простой C API. Wren компилируется как C99, C++98 или более новые версии, доступен для запуска в браузере и открыт на GitHub под руководством Боба Нистрома.

by Lyngbakr • 22 октября 2025 г. в 16:21 • 156 points

ОригиналHN

#wren#scripting#object-oriented#concurrency#c#c++#lua#smalltalk#erlang

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

  • Wren — язык, который сочетает в себе лаконичность Lua и объектно-ориентированный синтаксис, но при этом остаётся компактным и легко встраиваемым.
  • Пользователи отмечают, что Wren легко встраивается в C/C++ проекты, но при этом не требует сложных зависимостей, что делает его привлекательным для встраиваемых скриптовых языков.
  • Некоторые участники обсуждения упоминают, что Wren может быть использован как альтернатива Lua, особенно в контексте встраивания в игровые движки и другие приложения.
  • Обсуждается также, что Wren имеет активное и дружелюбное сообщество, что способствует его развитию и поддержке.

Scripts I wrote that I use all the time (evanhahn.com) 🔥 Горячее 💬 Длинная дискуссия

by speckx • 22 октября 2025 г. в 14:53 • 1147 points

ОригиналHN

#bash#fzf#tmux#cli#scripting#productivity

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

  • Разработчики делятся полезными скриптами и алиасами, которые экономят им время и упрощают работу.
  • Скрипты варьируются от простых алиасов до сложных инструментов, таких как f для быстрого поиска по истории или fzf для интерактивного выбора файлов.
  • Некоторые участники обсуждения поделились своими собственными инструментами, включая posh для сокращения путей и memo для кеширования результатов команд.
  • Обсуждались такие темы как использование fzf для поиска по истории команд, trash-cli для безопасного удаления файлов и tmux для управления сессиями.
  • Участники также обсуждали, как эти инструменты могут быть использованы для упрощения повседневных задач, таких как поиск по истории команд, выбор файлов и управление сессиями.