Ворчалки о программировании – Telegram
Ворчалки о программировании
158 subscribers
24 photos
2 videos
6 files
77 links
Канал, посвященный технологиям программирования, технологическому суверенитету (в области ПО) и созданию языков программирования.
Download Telegram
Я меня есть две мысли, которые меня регулярно думают. Надеюсь, что они заразные.
Про вторую мысль я напишу позже, когда сумею ее внятно изложить.

Первая мысль называется “Управление памятью и параллелизм в семействе языков”.
Исходные положения:
- Проектируем несколько языков одного семейства. Средний по уровню это примерно Арвиль, и есть язык более системного уровня (или несколько) и есть более высокого уровня. И все языки, точнее компоненты, написанные на этих языках, связывает Арс.
- Так как это семейство, то взаимодействие между ними должно быть прозрачным и эффективным, включая память и параллелизм
- Что еще хуже, разные компоненты в рамках одной программной системы могут использовать разное управление памятью (УП)

Для того чтобы подойти к проектированию, надо иметь достаточно ясную картину текущего состояния и сравнение подходов.

Если эта задача кого-то еще волнует, предлагаю собрать рабочую группу, писать и разговаривать (например, раз в две недели). Я начал готовить обзор УП, но август у меня в этом году был на уровне старой шутки:
- как прошли выходные?
- как это прошли?
Желающие участвовать в таком кипише, пишите в комментах или в личку.
Личная просьба к Кириллу Митькину - если у тебя остались в общем доступе материалы нашего исследования (или хотя бы ссылки на использованные документы), выдай нам.
🤔21👍1
The Emperor's Old Clothes.pdf
913.7 KB
Готовлю лекцию по разработке языков, открыл Тьюринговскую лекцию Тони Хоара, думаю, что будет интересно тем, кто не читал.
👍422🤝1
Чат рабочей группы по управлению памятью и concurrency (УП-C) создан. Если кто-то хотел участвовать, но не получил приглашения, значит, я пропустил его сообщение - просьба напомнить.
2👍1
Сегодня праздник у ребят,
Ликует пионерия.
Сегодня в гости..
СТОП, перепутал: С днем программиста!
🎉13👍21💯1
За последние пару лет я прочитал изрядное количество лекций про разработку языков программирования:МФТИ, ИТМО, Иннополис, НГУ плюс рассказы на семинарах и в разных интересных местах,типа letoCTF.

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

С Авророй/Онтосетью мы решили попробовать сделать “телемост”, онлайн/офлайн беседу. Москвичи могут прийти в Аврору, в Питере мы постараемся найти офлайн площадку. Если кто-то сможет выделить площадку в Иннополисе и Академгородке, то будет замечательно. Может еще какие города/универы подключатся. Техническую часть (онлайн и запись) обеспечит Аврора.

Хотелось бы собрать студентов из ведущих вузов. И, если, первый блин окажется съедобным, то продолжить с другими лекциями. Я бы прочитал ещё парочку, и среди нас есть ув. коллеги, которым есть что рассказать зажигательное. Без излишней бюрократии и без претензии на регулярность. Скорее клуб, чем университет.

По датам, у меня очень ограниченный выбор. 7-9 октября или уже ноябрь, в любом случае, вечером. Предполагаемый формат: час рассказ, час обсуждение.

Что скажет общество?

PS. Ворчалки это хорошо, но хочется большего...
👍12🔥2
Друзья попросили передать, что Новосибирский исследовательский центр ищет компиляторщиков C++/LLVM/MLIR и прочий фарш для разработки компилятора, оптимизированного под процессоры Huawei. Кому интересно, пишите @solodov_igor.
О магическом программировании

Свежая новость: TypeScript вырвался на первое место в рейтинге языков программирования (легко находится в сети). На мой взгляд, эта новость говорит нам о победе магического программирования, надеюсь временной.

Что я называю магическим программированием?

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

Как мы знаем из анекдотов, джины часто выполняют заказ формально. Напомню известный анекдот: хочу быть белым, и чтобы рядом все время были женщины…

Вернемся к программированию. Современный продвинутый программист или пишет нечто, что магическим образом выполняет задачу (dynamic typing, type inference, smart casting, templates, generic types, gradual typing…) или обращается к некому демону, который выдает решение некоторой задачи. Вопрос о соответствии результата поставленной задачи, как правило, не стоит. В первую очередь потому, что постановке задачи вообще не уделяется особого внимания. Мы что-то хотели и что-то получили. Ура!

В чем причина перехода к магическому программированию? На мой взгляд, это воплощение мечты больших корпораций: им нужны дешевые идиоты, не важно кожаные или электронные, которые будут выдавать много того, что будет продаваться. Правда, для этого надо еще и покупателей сделать идиотами, но это процесс тоже активно происходит.

Что для нас, ув. коллеги это значит? Нам надо готовится к тому, что вся эта гора магического софта рухнет, и вместе с эпохой возрождения придет потребность в точных, математических инструментах. Желательно, чтобы эти инструменты у нас были.
👍15🤔4😁1
Мне было очень интересно, да и текст от Richard Gabriel - ссылка в начале страницы, я тоже с интересом пролистал.

https://tutorial.ponylang.io/#the-pony-philosophy-get-stuff-done
1👍1🤔1
Алексей Недоря
Продолжение про лекцию/телемост - переносим на средину ноября, загрузка сейчас слишком большая. https://news.1rj.ru/str/vorchalki_o_prog/185
Я дозрел до лекции, точнее нескольких лекций на тему "Разработка языков программирования: Зачем, почему и как?". Первая лекция 26.11 в 19:00 МСК.

Для Москвы - можно прийти в Онтосеть/Аврору, послушать и позадавать вопросы. Остальные - онлайн. Явки и пароли - позже.

Лекций будет 2 или 3:
1) История, почему и зачем
2) Как и какие сложности
3) В зависимости от того, как пройдут первые две и какие вопросы будут задавать.
👍16👀3🔥2
Дорогое друзья!

В эту среду (26 ноября) в 19:00 по МСК состоится первая лекция Алексея Евгеньевича Недоря "Разработка языков программирования: Зачем, почему и как?".

Мы будем рады всех желающих принять у нас в помещении Онтосети, расположенной по адресу г. Москва, ул. Макаренко 2/21с2 (метро Чистые Пруды) для того, чтобы прослушать лекцию и иметь возможность лично ее обсудить в небольшом кругу! Кофе и чай прилагаются! 😊

Дистанционное участие будет доступно по ссылке, подключение откроется за 15 минут до начала: https://us06web.zoom.us/j/81953912705

Адрес: https://yandex.ru/maps/-/CLFNBT8j
🔥9
Media is too big
VIEW IN TELEGRAM
Впервые в России на выставке "Электроника России" был представлен процессор "Иртыш" (Loongarch64)
Forwarded from Alexander Andrianov
Дистанционное участие будет доступно по ссылке, подключение откроется за 15 минут до начала: https://us06web.zoom.us/j/81953912705
Разработка_ЯП_1_История_Зачем_и_почему.pdf
1.2 MB
Ликбез. Разработка языков программирования. Лекция-1
Запись и презентация

https://disk.yandex.ru/i/WrhbS-DFRvVt2g
👍10🔥6
В рамках лекции Алексея возник вопрос о дальнейшем развитии Тривиля.

Тут, что называется, "критикуешь — предлагай!"

Попробую накидать перечень доработок, которые вижу я.
Предлагаю в комментариях дополнять этот список. Далее эту информацию объединим и из нее уже составим план действий.

Итак, возможные доработки (без приоритетов):

- инсталлятор(ы) (*.msi, *.deb, *.pkg) (Windows, Linux, FreeBSD, Haiku?)
- внешние модули (импорт внешней библиотеки, вроде SDL, приводит к правильным #include и link path и не должен заноситься непосредственно в рантайм)
- дополнение числовых типов цел8, цел16 и т.д.
- описание правил конверсии между типами (цел8 -> цел16 и т.д.)
- формирование языкового тестового набора (compliance test suite)
- соответственно, создание юнит-тестирования
- language server (мне не надо, но многие пользуются)
- плагин для OpenIDE
- плагин для VS code
- подсветка для Far Manager
- документация в виде HTML
- сайт (возможно на GitHub/SourceCraft?)
- составление перечня требуемых библиотек в рантайме (время, SHA-??, сеть?, ...) (некий базовый минимум, без которого совсем плохо)
- "песочница"/playground
- линтер?
- создание фреймворка для бенчмарков
- man pages
- подключение GC (MPS, Boehm, свой?)
- импорт Unicode Standard
3👍2🤔1
Лекция 2. Как разрабатывать языки программирования.

17.12.25, 19:00.

Будет две лекции на эту тему.
👍7