Webbol: A minimal static web server written in COBOL
Разработчик создал минималистичный статический веб-сервер на COBOL — языке программирования, который ассоциируется в основном с мейнфреймами и legacy-системами. Это демонстрационный проект, показывающий, что COBOL может использоваться и для современных задач, таких как обработка HTTP-запросов и отдача статических файлов.
Проект подчёркивает простоту и минимализм: сервер написан с акцентом на базовые функции, без избыточных зависимостей. Такой подход не только демонстрирует гибкость COBOL, но и вызывает интерес к его применению за пределами традиционных сфер.
Комментарии (46)
- Обсуждаются особенности и исторический контекст фиксированного формата COBOL, основанного на перфокартах.
- Участники делятся опытом использования COBOL в legacy-системах крупных компаний, где он до сих пор критически важен для бизнес-операций.
- Поднимаются вопросы о безопасности COBOL, его сравнении с современными языками и о том, может ли код быть самодокументируемым.
- Обсуждается техническая реализация веб-сервера на COBOL, включая работу с сокетами и CGI.
- Высказываются разные мнения: от шуток и ностальгии до серьезного интереса к изучению языка и его практического применения.
Website is served from nine Neovim buffers on my old ThinkPad
Кратко: плагин nvim-web-server на чистом Lua отдаёт HTTP-запросы прямо из открытых буферов Neovim, без внешних зависимостей, с нативной поддержкой Djot и быстрее Nginx.
Почему так быстро?
- Однозадачность: только статика.
- libuv + асинхронный I/O Neovim.
- LuaJIT: NaN-тегинг, отсутствие boxing чисел, allocation sinking.
- aiohttp тормозит из-за парсера на чистом Python и boxing в CPython.
Бенчмарк, RPS (среднее):
| сервер | 1 | 50 | 100 | 200 | 400 |
|---|---|---|---|---|---|
| nvim-web-server | 3981 | 15284 | 15124 | 14476 | 14446 |
| Nginx | 4451 | 11306 | 11576 | 10011 | 10461 |
| aiohttp | 6391 | 8477 | 8448 | 7696 | 7132 |
Развёртывание: живёт на старом ThinkPad, 9 буферов — весь сайт.
Безопасность: да, но мелочи мы игнорируем.
Комментарии (17)
- Пользователи в восторге от статьи: называют её «одной из любимейших» и приводят цитату «они были так заняты тем, могут ли, что не спросили себя, стоит ли».
- Кто-то отмечает, что сайт резолвится на IP Linode, но не объясняется, зачем нужен промежуточный сервер.
- Обсуждают безопасность: пример показывает, что «никогда не бывает так, чтобы код точно не запустили по сети».
- Некоторые шутят, что Neovim теперь можно считать кроссплатформенным рантаймом «ужаса», но признают крутость эксперимента.
- Предполагают, что высокая скорость может быть из-за хранения файлов в RAM, а не на диске, и что всё равно всё закешируется.