Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

HN в 2050 году - человекочитаемость

У проекта HNC есть две разных цели: достичь бескомпромиссной производительности и достичь человекочитаемости. Т.к. согласно моим гипотезам, человекочитаемость приводит к производительности, а буквальная компиляция приводит к минимальности и человекочитаемости,
сосредоточившись на проблеме буквальной компиляциеи, я убиваю одним выстрелом зайца, утку и яйцо.

В этом посте речь пойдет о юскейсах человекочитаемости.

1. Васю злой менеджер Петя заставляет писать на С++. Вася берёт HN и пишет С++ в полтора раза быстрее, и восстанавливает свой угасший интерес к работе. Рады и Вася, и Петя.

2. Менеджера Петю тупой заказчик заставляет писать на С++. Петя нанимает программистов на HN, которые пишут код в полтора раза быстрее, а заказчику отдают С++. Довольны и Петя, и заказчик, и программисты.

3. Джуниор Коля жалуется менеджеру Пете на то, что Вася использует в коде конструкции, которых Вася ещё не изучил, и код никто больше не может поддерживать (разумеется, называя всё это заумностью, блажью и оверинжинирингом, недопустимым для практика в условиях промышленной коммерческой разработки, ну вы понели). Коля возмущается, зачем такие конструкции, если все остальные прекрасно обходятся без них. Вася получает втык, переставляет опцию в HNC и начинает внезапно писать как все. Вся команда снова счастлива.

5. Пете приходит заказ поддерживать старое приложение на С++. Петя предлагает заказчику переписать всё на Эрланг, но заказчик уверен (хоть это и не так, но вы же знаете этих заказчиков), что переписывание затянется на годы, а в результате всё будет тормозить. Петя соглашается оставить всё как есть, нанимает программистов на HN, они добавляют новые фичи и правят баги, используя HN, и со временем всё приложение оказывается переписано на HNC и дальнейший мейнтенанс ускоряется в полтора раза. Довольны и заказчик, и менеджер, и команда.

6. Менеджер Петя релизит год за годом однотипные проекты, но часть заказчиков традиционно требуют С++, а часть - соглашается на Эрланг. Пете приходится поддерживать параллельные кодобазы на двух языках. Используя HNC с двумя бекендами (с генерацией С++ или Эрланга), удается вынести небольшую часть кода в общую библиотеку. Мелочь, а приятно!

7. Петя всю жизнь писал на Эрланге, используя HNC, но внезапно тупые заказчики начинают требовать Node.JS. Петя обновляет бекенд в HNC и небольшую часть кода, не завязанную на многозадачность, удается заставить работать с новым бекендом малой кровью. Всё же легче, чем портировать между языками.
Tags: fp, programming
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 23 comments