Здравствуйте, Ikemefula, Вы писали:
I>То есть, ты хочешь уровень привязать к инструментам ? Эдак окажется, что машинный код это самый высокоуровневй язык, потому что для него наверное пару миллионов инструментов, ну вот например декомпилер, линкер и тд и тд.
Нет, речь не про такие инструменты. А например про UML и ещё множество других из этой же области.
I>В общем случае если мы сделаем АПИ для этого фремворка в разных языках, внезапно, будет разница в том, что как эффективно использовать и где за каким деталями придется следить. I>Вот в С++ ты точно не сможешь избавиться от указателей, инстанцирований, деклараций шаблонов, указания типов и тд и тд и тд I>А в Хаскеле — запросто.
Ну вот простой пример. Надо нам написать Блокнот, скажем под виндой (типа дефолтного).
Попробуем в начале без всяких мощных фреймворков. Естественно при этом будет гора кода с функциями, классами (хотя не обязательно) и т.п.
На чистом C++ будет естественно жуть, т.к. WinAPI.
На чистом Python'е будет дважды жуть. Т.к. и WinAPI и ещё надо до него добраться (внешний вызов).
На чистом Haskell'e будет трижды жуть. Т.к. и WinAPI и внешние вызовы и всё это будет внутри монадного кода.
Теперь возьмём какую-нибудь мощную библиотечку. Например wxWidgets или Qt (к ним есть биндинги отовсюду).
На C++ весь код превратился в одну страницу, причём там код простейший, представляющий собой исключительно вызовы функций библиотечки.
На Python'e будет буквально такой же код, как и на C++. Т.е. с точностью до замены скобочек на отступы.
На Haskell'е ситуация будет чуть хуже за счёт монадного мусора, но если приравнять его к своеобразному аналогу скобочек, то снова получится буквально такой же код.
I>DSL как правило это небольшая, очень узкая область математики