Clojure джун

Mar 14, 2022 08:09


Здравствуйте, уважаемый Н.Р, H.S.,

В 2020 узнал о вас, и что вы подняли над страной Clojure флаг - так мне это  увиделось. У меня тогда было мрачное впечатление, что Clojure в России не жизнеспособен. Оно сложилось после того, как изумительный евангелист Никита Прокопов, бывший "апостолом Андреем" Clojure, внезапно переехал из России в Германию, чтобы программировать там на С++. Выглядело, что даже его исключительная clojure-компетентность и наибольшие в сообществе связи - оказались не монетизируемы, это было приговором Clojure. И потом меня совершенно поразило, когда узнал, что у вас реальный Clojure-бизнес.

Трижды пересматривал то ваше выступление, где рассказываете, как в Сlojure можно программировать не кодом, а данными. Меня это заворожило, хотя я не понимаю, как вы это делаете.

Трижды начинал осваивать clojure, но не находил, что мне на нем мне самому выразить. В разное время ставил:
Light Table,
Intellij Idea и Coursive
emacs
VScode и cider-плагин

Проходил обучалки языку. В том числе по макросам, в которых искал глубины выразительности. Довкуривал их до видения, что Рич Хикки уже все нужные макросы написал, и программистам имеет смысл создавать макросы лишь для тестов. Придумал, и проверил такой хак: если скопировать defmacro и сдублировать в нем участки кода, то такой defmacro2 будет сразу декларировать несколько функций и переменных с пересекающимися названиями имен - "фабрика".
Читал 4 книжки по Clojure и Lisp.



Окончил я медицинский институт по специальности "лечебное дело", но врачом не работал.

С конца 90-х делал карьеру в рунете. Псевдоним "Сумерк Богов". Гильдия интернетчиков избирала меня «Открытием года" и лучшим сетевым литератором в 2000-м.  Упоминаюсь в сериале "Холивар. История рунета".

Мне 53. С 1992 в общей сложности у меня 10-лет программирования. В программистcких коллективах не работал.

МОЙ ОПЫТ ПРОГРАММИСТА
1992 - Visual Basic на калькуляторе: программа расчета полос верстки газеты
1996 - Visual Basic: программа структурирующая замыслы литературных произведений
1996 - Visual Basic: программа создающая банковские документы
1999 - Java: скрипт общавшийся с ICQ-сервером
2000 - JavaScript: впервые запрограммировал шахматную puzzle, симбиоз шахмат и Линий
2001 - php-html-mysql: программировал соцсеть, их тогда еще не существовало, на узлах, как Habr, его тогда еще тоже не существовало
2002 - C++: переписал шахматную головоломку для наладонников "palm" и выпустил
2003 - flash: переписал шахматную головоломку для веба и выпустил
2004 - Visual Basic for Application: скрипты, облегчающие верстку Word
2007 - на pascal/Delphi: программа помогающая расшифровывать аудиозаписи интервью. Педали от компьютерного руля управляли аудиоплеером. Нажатия педалей считывала нейронная сеть перцептрон
2008 - Delphi+html: приложение, редактирующее сайт и рассылающее видео на серверы
2010 - Python: скрипты правящие ttf-шрифт
2012 - php+Mysql+flash: новая версия шахматной головоломки
2014 - Delphi: прототип системы изучения иностранных языков с помощью компьютерной программы
2015 - Delphi: отлаживалка regular expressions
2016 - JavaScript: расширения броузера Google Chrome
2016 - Arduino+Delphi
2018 - Visual Basic for Application + Delphi: десктопное приложение для Excel-таблиц
2009-2018 - Delphi и dws-script: обвязка вокруг Sqlite.
2021 - Delphi+JavaScript+html+scss+расширение Google Chrome - программа облегчающая изобретательство игр для мобильных телефонов.

Мой самый большой программистcкий труд - оригинальная обвязка вокруг базы данных Sqlite. По структуре таблиц базы данных она генерирует программный код системы классов, позволяющих использовать вот так выглядящий код на pascal:

val
.SELECT.employers.salary
.FROM_employers
.WHERE
._____________________salary('>%d', [2000])
._______________________city("S.Petersburg")
.ORDER_BY.salary.DESC
.____________________________();

Этот код, насколько возможно похож на то SQL-выражение, в которое он разворачивается:

SELECT employers, salary FROM employers WHERE salary>2000 AND city="S.Petersburg" ORDER BY salary DESC;

Код всегда соответствует структуре таблиц БД, иначе он не даст себя откомпилировать.
Кажется, это функциональное программирование.
Мечтаю, когда-нибудь адаптировать его к Clojure.

На английском без словаря читаю технические статьи.

Владею слепой печатью на английском и русском.

Previous post Next post
Up