SQLite's Use of Tcl (2017)
SQLite начинался как TCL-расширение и до сих пор носит его отпечаток: гибкая типизация, синтаксис $var в SQL и единственный адаптер внутри ядра — tclsqlite.c. Сегодня ядро на чистом C и работает без TCL, но вся разработка и тестирование держится на нём: 90 % кода тестов на TCL, генерация сборок, документация и релизы полностью автоматизированы скриптами makefile.tcl.
Комментарии (29)
- Команда SQLite общается в приватном чате на собственном Tcl/Tk-скрипте (~1000 строк), который работает и как клиент, и как сервер.
- С 2021 г. основное общение перешло в встроенный Fossil-чат: он E2E-шифрован и доступен из любого браузера.
- SQLite сохраняет Tcl-наследие: sqlite3_analyzer — это тоже Tcl-программа, упакованная в С-обёртку.
- Подстановка
$uidв SQL безопасна: токен распознаётся парсером SQLite, а не «eval»-ится Tcl. - Участники защищают выбор Tcl: он компактен, стабилен и удобно встраивается в С, что важнее модных языков.
Modern CI is too complex and misdirected (2021) 💬 Длинная дискуссия
Современные CI-платформы стали мощнее, но и сложнее. GitHub Actions, GitLab и др. предлагают YAML-конфиги с шаблонами, условиями, секретами, кешем, артефактами, экосистемой actions — в итоге CI превращается в полноценную систему сборки.
Базовые примитивы (задачи, зависимости, шаги) не отличаются от Makefile-ов, а добавление распределённого запуска и кеша делает CI почти идентичным современным билд-системам вроде Bazel.
Сложность растёт:
- YAML становится языком программирования.
- Пользователи копируют чужие конфиги, не понимая, что происходит.
- Платформы закрываются на собственных экосистемах, создавая vendor lock-in.
Итог: вместо простого «удалённого запуска тестов» мы получили громоздкую систему, где границы между CI и build-системой стёрлись.
Комментарии (159)
- Участники сходятся во мнении, что современные CI-системы слишком сложны и слишком «далеко» от разработчика, превращаясь в гибрид билд-системы и платформы.
- Многие предлагают упрощение: локально-переносимые скрипты (Bash, Justfile, build.bash), контейнеры или минималистичные движки вроде builds.sr.ht, Drone OSS, Buildbot, Linci.
- Критика YAML-конфигураций и SaaS-зависимости: GitHub Actions «застрял», GitLab CI мощнее, но всё равно требует «платформы».
- Идея «CI должен быть просто расширением билд-системы» (Bazel, Nix, Dagger) звучит, но требует единого «Steve Jobs билд-систем», а не новых технологий.
- Итог: пока нет серебряной пули; кто хочет простоты — пишет ./build.sh и запускает где угодно, кто хочет мощности — мирится с уровнем сложности текущих CI.