Size: a a a

Programming Offtop

2020 April 17

I

Igor in Programming Offtop
Dmitry Ponyatov
объектные графы (AST) с атрибутами вместо голых списков потеребить не хочешь?
Зачем?
источник

DP

Dmitry Ponyatov in Programming Offtop
Igor
Зачем?
мне кажется что языки на базе интерпретации AST недооценены, Лисп же прекрасно живет на S-выражениях (даже что-то там компилирует в динамике)
а объектные графы как расширение AST позволяют работать на более высоком уровне, и священная корова-вирус ООП оказывается не притянутой за уши, а бесшовно интегрируется — ну вот узел = объект, может любые именованные атрибуты иметь, в том числе и исполняемые = методы, может делать dispatch сообщений по имени = message passing programming
источник

DP

Dmitry Ponyatov in Programming Offtop
Dmitry Ponyatov
мне кажется что языки на базе интерпретации AST недооценены, Лисп же прекрасно живет на S-выражениях (даже что-то там компилирует в динамике)
а объектные графы как расширение AST позволяют работать на более высоком уровне, и священная корова-вирус ООП оказывается не притянутой за уши, а бесшовно интегрируется — ну вот узел = объект, может любые именованные атрибуты иметь, в том числе и исполняемые = методы, может делать dispatch сообщений по имени = message passing programming
если к графу добавить элемент декларативного программирования — трансформацию графов на наборам шаблонов, вроде бы появляется множество приятных фишек с метапрограммированием, типа трансформации частей программы в рантайме
(точнее смогу сказать, когда разгрызу как сделать унификацию с бэктрекингом на Python)
источник

I

Igor in Programming Offtop
Звучит как erlang
источник

DP

Dmitry Ponyatov in Programming Offtop
Dmitry Ponyatov
мне кажется что языки на базе интерпретации AST недооценены, Лисп же прекрасно живет на S-выражениях (даже что-то там компилирует в динамике)
а объектные графы как расширение AST позволяют работать на более высоком уровне, и священная корова-вирус ООП оказывается не притянутой за уши, а бесшовно интегрируется — ну вот узел = объект, может любые именованные атрибуты иметь, в том числе и исполняемые = методы, может делать dispatch сообщений по имени = message passing programming
и граф не дерево, можно ворочать сложные циклические рекурсивные структуры, как бы дополнительный уровень выразительности

самый прикол — как в ООП данные и методы инкапсулируются, в графе инкапсулируются данные и программы для из обработки, и программы = данные
источник

DP

Dmitry Ponyatov in Programming Offtop
Dmitry Ponyatov
и граф не дерево, можно ворочать сложные циклические рекурсивные структуры, как бы дополнительный уровень выразительности

самый прикол — как в ООП данные и методы инкапсулируются, в графе инкапсулируются данные и программы для из обработки, и программы = данные
в Лиспе такие же штуки можно (нужно) делать, но синтаксис слишком уж заточен на низкий уровень, почему пользователям не предоставить более привычный алголоподобный синтаксис для ввода программы, и потом с результатом парсинга уже работать явно?
источник

RU

Roman Ushakov in Programming Offtop
Переслано от Roman Ushakov
я тут придумал крутой синтаксис
if (doc.getDesc() != null desc) {
desc....
}
топ же, и не захламляет код
источник

RU

Roman Ushakov in Programming Offtop
Может есть джеп уже? Или есть кто против?
Хотя, конеш слишком слабо для джепа мб
Плюс можно и нафигачить чего-то такого
if (
service.getDoc != null doc
&& doc.getDesc != null desc
&& doc.getCoAuthor != null coauthor
) {
...
}

Что явно не всем понравится, хотя хз
источник

QH

Quantum Harmonizer in Programming Offtop
Roman Ushakov
Переслано от Roman Ushakov
я тут придумал крутой синтаксис
if (doc.getDesc() != null desc) {
desc....
}
топ же, и не захламляет код
doc.getDesc()?.let { desc ->
источник

QH

Quantum Harmonizer in Programming Offtop
а вообще, нахуй нуллы
источник

RU

Roman Ushakov in Programming Offtop
Ну у нас такой стэк:
java 8/11
freemarker (в перемешку с js, без расширений у файлов)
js (vue, react, angular)
odt
odt + freemarker
vaadin 7/8 (combability mode)
xml
источник

QH

Quantum Harmonizer in Programming Offtop
И шо? У меня Java 13, без нуллов пишу
источник

RU

Roman Ushakov in Programming Offtop
Как думаешь, если добавить сюда котлин, то кто кого похоронит? Этот стэк похоронит котлин или котлин даст нормально жить?
источник

VP

Vladimir Petrakovich in Programming Offtop
Roman Ushakov
Переслано от Roman Ushakov
я тут придумал крутой синтаксис
if (doc.getDesc() != null desc) {
desc....
}
топ же, и не захламляет код
Выглядит как недопатмат из свежей джавы
источник

RU

Roman Ushakov in Programming Offtop
Quantum Harmonizer
И шо? У меня Java 13, без нуллов пишу
я тоже без нуллов в основном пишу
источник

RU

Roman Ushakov in Programming Offtop
но то дело я, а другие?
источник

VP

Vladimir Petrakovich in Programming Offtop
Quantum Harmonizer
И шо? У меня Java 13, без нуллов пишу
Так в джаве с нулами жизни нет 😄
источник

RU

Roman Ushakov in Programming Offtop
Плюс котлин надо учить, для меня все концепции котлина простые, для других людей это может быть жёстко
источник

QH

Quantum Harmonizer in Programming Offtop
Roman Ushakov
Как думаешь, если добавить сюда котлин, то кто кого похоронит? Этот стэк похоронит котлин или котлин даст нормально жить?
А, собственно, зачем?
источник

RU

Roman Ushakov in Programming Offtop
Quantum Harmonizer
doc.getDesc()?.let { desc ->
ну это котлин, не?
источник