metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-01-26 09:42 am

Кстати, насчет "биндингов"

В дискуссиях о GUI для всяких эзотерических и не очень языков постоянно всплывает тема "биндингов" к ним для QT, GTK и прочего.

Так вот, мое имхо состоит в том, что язык, у которого нет собственной GUI библиотеки - неполноцен в принципе. Вот, к примеру, захочу я расширить функциональность некоего GUIшного контрола или написать свой. Или просто разобраться в тонкостях его работы, типа "когда вызывается такое-то событие". Если GUIшная либа писана на том же языке на котором я работаю, мне не нужно переключать мозг на чужеродный язык и его стиль, чтобы работать с ней. А если нет - начинается всякая хрень, типа самого это биндинга, единственное назначение которого - гонять туда-сюда вызовы между одним и вторым языком.

Оно конечно полезно, знать несколько языков. Но вот для работы эти переключения между языками не сильно полезны.

PS: Вообще эта идея меня посетила, когда я думал насчет того, как наиболее естественным образом выглядел бы GUI для Хаскеля. Вообще, проблема сама по себе более общая, чем GUI - я ее для себя сформулировал так "Как хранить/обрабатывать в языке общего назначения некую структуру данных, если этот язык для нее плохо подходит". Обычно делают отдельные структуры/языки для разных предметных областей - SQL для баз, декларативные иерархические описания для всяких GUI-шных и прочих форм, для них отдельные редакторы-дизайнеры.
Вот именно "отдельность" мне и не нравится - что-то раздражает переключать контекст мышления, когда надо к программе приделать GUI, взаимодействие с БД, или печатную форму.
Да и вообще работа с GUI может выражаться в языке каким-нибудь другим, гораздо более естественным для него способом, нежели последовательное создание контролов и чтение/запись их свойств. Тот же Хаскель, по моему мнению, вообще GUI должен генерировать автоматически при компиляции, исходя из информации о типах.
ext_659950: (Default)

[identity profile] perplexed-bear.livejournal.com 2009-01-26 09:15 am (UTC)(link)
С этим можно поспорить. Т.е. к примеру в том же Линуксе GTK и QT стали настолько привычными, что де-факто воспринимаются как часть системы, и биндинги к ним рассматриваются именно как интерфейс к ОС.

Что касается возможности написать граф.библиотеку, непосредственно работающую с ОС, то
    возможность
      есть у всех. А вот
        написанные
          библиотеки - не у всех. Тем не менее, язык - полноценный, нет?
ext_659950: (Default)

[identity profile] perplexed-bear.livejournal.com 2009-01-26 09:16 am (UTC)(link)
Ой, что это за жуть получилась с форматированием...

[identity profile] atzkey.livejournal.com 2009-01-26 09:28 am (UTC)(link)
[прилетел маяковский и отформатировал этот комментарий]

Толпы лінупсоідов по религиозным причинам стараются избавится от gtk или от qt или от обеих библиотек. И вообще не стоит их как важную часть ОС рассматривать.

[identity profile] metaclass.livejournal.com 2009-01-26 09:32 am (UTC)(link)
Вот судя по всему - нет возможности, раз не пишут, а вместо этого используют другие библиотеки.
ext_659950: (Default)

[identity profile] perplexed-bear.livejournal.com 2009-01-26 09:39 am (UTC)(link)
Ну так действует принцип лени и повторного использования - зачем писать, если можно заюзать.
(deleted comment)

[identity profile] wildman.livejournal.com 2009-01-28 06:15 am (UTC)(link)
http://eric-ide.python-projects.org/