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 07:58 am (UTC)(link)
И что у нас в итоге остаётся?
C
C++
C#
Java
Pascal (Delphi, Lazarus)
Visual Basic
Python
Perl
TCL/TK

И фффсё?

[identity profile] familom.livejournal.com 2009-01-26 08:01 am (UTC)(link)
Если под "неполноценностью" понимать "не general-purpose", то да.

[identity profile] ugenk.livejournal.com 2009-01-26 08:04 am (UTC)(link)
А xlib - это собственная C'шная библиотека? :)

[identity profile] raydac.livejournal.com 2009-01-26 08:13 am (UTC)(link)
человек вообще неполноценное существо, у него нет разъема для подключения монитора

[identity profile] atzkey.livejournal.com 2009-01-26 08:29 am (UTC)(link)
Да! Надо больше gui-библиотек! Чтобы больше сумасшедших программистов рисовало сумасшедшие интерфейсы!
http://atzkey.livejournal.com/76372.html?thread=162132#t162132


Неполноценны языки, которые не способны взаимодействовать с другими языками. (Представилась библиотека для Piet, написанная на Brainfuck)

[identity profile] kiryl.livejournal.com 2009-01-26 08:56 am (UTC)(link)
Помимо гуйни есть масса других задач.

[identity profile] volodymir-k.livejournal.com 2009-01-26 09:47 am (UTC)(link)
Неубедительный креотифф. Смешано требование по чтению старого кода, способы компоновки, наличие компонентов, какой-то "собственный", "биндинг". Чё вообще надо? В чём проблема-то?

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

[identity profile] gds.livejournal.com 2009-01-26 09:55 am (UTC)(link)
"нет гуи библиотеки" может быть как из-за неполноценности языка, так и из-за того, что всех всё устраивает (например, биндинги работают нормально). Поэтому, если всё работает, зачем усложнять и без того сложную жизнь и плодить какие-то гуёвые библиотеки, единственной целью существования которых будет факт того, что они написаны на языке Xxx.

[identity profile] mr-aleph.livejournal.com 2009-01-26 10:05 am (UTC)(link)
я не помню, когда я последний раз делал гуй.


[identity profile] zamotivator.livejournal.com 2009-01-26 10:07 am (UTC)(link)
Я так и не понял, какой категории относится С++ и Qt =)

[identity profile] mibori.livejournal.com 2009-01-26 11:13 am (UTC)(link)
русский не совершенный

[identity profile] divine-assass1n.livejournal.com 2009-01-26 03:59 pm (UTC)(link)
От современной веб-разработки Вы бы сошли с ума с такой установкой :)

Между тем проблема не в количестве языков, а в предоставленном Application Programming Interface. Хороший продуманный API не усложнит проект и не создаст проблем с поддержкой, разве что если инженеры имбецилы.