Показать HN: dk – Скрипт-раннер и кросс-компилятор, написанный на OCaml=news.ycombinator.com=

Показать HN: dk – скрипт-раннер и кросс-компилятор, написанный на OCaml ( diskuv.com ) Мне всегда нравилось играть роли, в которых я могу помочь молодому поколению освоить навыки, необходимые для светлого будущего. Я делаю эту роль несколькими способами (как родитель, наставник по робототехнике, консультант школьного совета и учитель воскресной школы), и я подозреваю, что большинство читателей HN разделяют эту роль и признательность. А для развития навыков программирования было очевидно, что и мне, и ученикам нужна продуктивная программная среда, в которой мы могли бы работать вместе. Эта тема совместной работы опытных/неопытных инженеров является контекстом, в котором я создал `dk` как инструмент для написания сценариев.

Моим полигоном для испытаний были студенты с одним или двумя курсами AP CS (компьютерные науки в средней школе в США), некоторые из которых стажировались у меня. Мне пришлось решать несколько проблем:

– Среда разработки должна быть простой в настройке, а язык программирования не должен быть сложным. – Осознание того, что написание небольших, легко тестируемых единиц работы (например, «скриптов») было единственным способом, который я нашел для очень начинающих программистов, чтобы разработать крупное приложение. – Дешевое, защищенное от ошибок оборудование для разработки (например, школьные компьютеры с ограниченной оперативной памятью и без прав администратора) иногда используется для развертывания на дешевых аппаратных целях (например, подержанные планшеты Android).

Моим решением было написать автономный двоичный файл под названием `dk`, который использует скрипты как атом работы, кросс-компилирует в автономные исполняемые файлы и загружает необходимые ему среды выполнения и sysroots по требованию. Он находится примерно в том же пространстве, что и Python и Go.

`dk` доступен для хост-машин Windows, macOS и Linux/glibc с растущим списком целей кросс-компиляции. Ваши скрипты `dk` написаны на почти полном подмножестве OCaml 4: все скрипты `dk` являются OCaml, но не весь код OCaml может работать на `dk`. Другие отличия от обычного OCaml в том, что `dk` поставляется с большой включенной библиотекой, и что я считаю любую функцию глючной, если она не работает на всех поддерживаемых ОС.

Вышеуказанное происхождение `dk`, по общему признанию, странное (и сокращенное), поэтому я не ожидал, что `dk` теперь станет универсальным инструментом для написания скриптов. Тем не менее, это так. Я могу обернуть, повторно использовать и организовать большую часть моего написанного вручную программного обеспечения как набор скриптов `dk`.

Честное предупреждение: поддержка кросс-компиляции в `dk` недавно была переработана, и не все ошибки исправлены. Сообщения об ошибках отстой (нужно прокрутить вверх, чтобы увидеть основную причину и решение), но они будут улучшены. Некоторые индикаторы выполнения отсутствуют. Также есть несколько экспериментальных функций… импорт в стиле `uv` и интерактивный интерпретатор – самые важные… которые намеренно не документированы, потому что я беспокоюсь о поверхности API `dk`.

Но он все еще хорошо работает, и вы можете увидеть некоторые реальные приложения в разделе Примеры. Я был бы рад, если бы вы могли дать ему пинка под зад и дать `dk` какой-нибудь отзыв! Список проблем находится по адресу < https://github.com/diskuv/dk/issues >.


Рассмотрите возможность подачи заявки на набор в YC на осень 2025 года! Заявки принимаются до 4 августа

Source: news.ycombinator.com

Leave a Reply

Your email address will not be published. Required fields are marked *