LINUX.ORG.RU

Помогите выбрать язык.


0

2

Но этот тред не из разряда «мне нехер делать, подскажите чем помаятся?» — «ЛNСП!».

Мне нужен скриптовый язык с более-менее рабочими bindings к gtk, glib, cairo.

Также мне необходима работа под виндой и возможность встраивания в приложение (на C).

Что первое пришло на ум, так это Python. Всё бы неплохо, но встраивание выглядит немного вырвиглазно. Да и сам язык не всем устраивает.

Подошёл бы Lua, который гораздо более лаконичный и приятный в этом отношении, да и возможностей для создания песочницы (переопределение функций экспорта/импорта модулей, любую функцию можно просто затереть сделав f=nil). Гораздо больше подходящий как язык для расширения приложения.

Есть binding lgob, но там нет некоторых возможностей: нельзя объявлять новые GObject классы в lua-коде, нет привязки к GIO (а очень пригодилось бы).

Что ещё есть? Может я что-то упустил?

Ответ на: комментарий от annoynimous

> Guile

Также мне необходима работа под виндой

?

Я помню искал бинарник под винды, так и не нашёл.

vladimir-vg ★★ ()

> Python. Всё бы неплохо, но встраивание выглядит немного вырвиглазно

Да нормально он встраивается, как раз разберёшься немного с внутренностями, это полезно.

archimag ★★★ ()
Ответ на: комментарий от elipse

> наверное gnocl + tcl ?

Я поглядел, но опасаюсь пользоваться. (Учить новый язык + разбираться со встраиванием). А если учесть что это Lisp on Drugs... Опасаюсь. Может позже, когда будет больше времени.

Да нормально он встраивается, как раз разберёшься немного с внутренностями, это полезно.

А как быть с песочницей? Мне необходимо грузить скрипты написанные неизвестно кем.

vladimir-vg ★★ ()
Ответ на: комментарий от vladimir-vg

> А если учесть что это Lisp on Drugs.

Откуда все эту херню берете ? Убить мало ...

А как быть с песочницей? Мне необходимо грузить скрипты написанные неизвестно кем.


в tcl есть защищенные интерпретаторы
И вообще, для браузеров есть даже живой плагин на tcl ))

elipse ★★★ ()
Ответ на: комментарий от baverman

а кто им доктор ?

с 2001 года существует gnocl и не в лесу живут там.

elipse ★★★ ()

Похоже что Python — единственно верное решение. Все менее популярные языки имеют менее качественные привязки.

Всем спасибо.

vladimir-vg ★★ ()
Ответ на: комментарий от vladimir-vg

> Все менее популярные языки имеют менее качественные привязки.

это как уже связана популярка с качеством ?
с идиотами - да, связана, тут согласен.

elipse ★★★ ()
Ответ на: комментарий от elipse

> это как уже связана популярка с качеством ?

Дык речь идёт о связке. Чем чаще пользуются, тем меньше отставание от связываемой библиотеки. Да и больше шансов что возможности будут поддерживаться наиболее полно, т.к. большему кол-ву людей они понадобились (с разными потребностями).

Разве нет?

vladimir-vg ★★ ()
Ответ на: комментарий от vladimir-vg

> Разве нет?

нет

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


gnocl на поледней весии gtk работает и очень активно пилится

ps:пакеты для debian у меня почти готовы и рабочие

elipse ★★★ ()

Ну CL можно для этой цели использовать, че.
Берешь ECL, берешь cl-gtk2, и другие библиотеки, компилируешь в DLL, встраиваешь.
Под виндой я ни один из т.н. скриптовых языков, включая Python, в юзабельности(по крайней мере, «из коробки») обвинить не могу.

Love5an ()
Ответ на: комментарий от vladimir-vg

А как быть с песочницей?

Откровенно говоря, в питоне, с песочницей дела обстоят более чем грустно.

baverman ★★★ ()
Ответ на: комментарий от elipse

> gnocl на поледней весии gtk работает и очень активно пилится

good. Но был нужен не только gtk, но и glib со своим GObject а также GIO. Большей частью мне нужная была готовая система управления событиями. Раз уж я пользуюсь gtk, что дублировать.

offtopic:

Я по постам видел, ты очень любишь свой tcl. За что любишь?

Как я понял, там есть метапрограмминг, с той лишь разницей что вместо s-exp's просто строки. Так?

vladimir-vg ★★ ()
Ответ на: комментарий от vladimir-vg

> Я по постам видел, ты очень любишь свой tcl. За что любишь?

За качество и отточенность в деталях, хороший api и дизайн.
Можно сказать «Сделано на небесах» ))

А tcl не мой, а в СНГ (и с СНГ) банально Tcl не повезло.
Это язык для инженеров, а пик популярности Tcl ТАМ , ТУТ пришелся на
на период «выколупывания окурков из урн» у ИТР.



elipse ★★★ ()
Ответ на: комментарий от vladimir-vg

> Большей частью мне нужная была готовая система управления событиями. Раз уж я пользуюсь gtk, что дублировать.

Ну , собственно, в сам tcl она есть уже давно.

Раз уж я пользуюсь gtk, что дублировать.


Эмм, я бы «следствие и причину» не переставлял бы местами.

elipse ★★★ ()
Ответ на: комментарий от Love5an

>Под виндой я ни один из т.н. скриптовых языков, включая Python, в юзабельности(по крайней мере, «из коробки») обвинить не могу.

Вам теперь будет сложно доказать мне свою адекватность.

elipse ★★★ ()

Согласен с elipse.

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

Tcl - мощный скриптовый язык, тем более раз вам надо под Win - у него есть прекрасная реализация от ActiveState. Так есть возможность откомпилировать его в .ехе при необходимости.

В обучении Tcl не сложнее пистона. Писать работоспособные программы на нем можно через пару дней. Есть множество туториалов по данному языку, в том числе и на русском.

Про то что «тикль» это «лисп на наркотиках» и да и нет. С лиспом его сравнивают часто по причине сильно развитой в обоих языках метты (чего нет в том же пистоне). Большинство нехороших мифов вокруг него - это работа Столлмана, который по каким-то причинам в решил потопить тикль и засунуть везде свой любимый лисп.

Meerkat ()

берите тот язык который хорошо знаете. И к этому посоветую http://www.gtk-server.org/ - реализация простого клиент-серверного протокола с графикой gtk, для любых языков

p.s. по принципу «всяк кулик своё болото хвалит», также присоеденюсь к ораторам за Tcl.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от Love5an

Зачем врунишкам что-то еще объяснять ?
Все одно все переврут.
Ведь все языки созданы по причине неработающих предыдущих языков и патологической нехватки быстродействия и жуткого неудобства. Ога.

elipse ★★★ ()
Ответ на: комментарий от elipse

Нет, я не понимаю, зачем нужен tcl, если можно скриптовать на CL.
Причина может быть в том, что некий программист знаком с tcl, но не с CL.
Тогда смысла учить последний для скриптования нет. Но тут автор треда не знаком ни с тем, ни с другим. Почему бы сразу не выучить более технологически продвинутый и удобный язык?

Love5an ()
Ответ на: комментарий от Love5an

если можно скриптовать на CL.

Кстати, а какие есть годные реализации. То есть чтобы для встраивания, с песочницей и под винду?

baverman ★★★ ()
Ответ на: комментарий от baverman

> Кстати, а какие есть годные реализации. То есть чтобы для

встраивания, с песочницей и под винду?


Есть ECL, но из ключевых слов «годные, для встраивания, с песочницей, под винду» он удовлетворяет, пожалуй, только половине - «под винду» и «для встраивания». Зато, конечно, там есть макросы, а значит всё прочее не существенно ;)

archimag ★★★ ()
Ответ на: комментарий от Love5an



Нет, я не понимаю, зачем нужен tcl, если можно скриптовать на CL.


Как минмум, Тcl нужен что-бы не скриптовать на CL и не задавать потом такие дурные вопросы.


Причина может быть в том, что некий программист знаком с tcl, но не с CL.

Тогда смысла учить последний для скриптования нет.



Возможно и так, что CL смысла учить уже и нет.))
Где надо быстро - есть си, а где надо не пудрить мозги - есть tcl , perl, ruby , lua, ...


elipse ★★★ ()
Ответ на: комментарий от anonymous

вполне стыкуется, если не писать «однострочные бутылки»

elipse ★★★ ()
Ответ на: комментарий от vertexua

> не уменьшает его достоинств

rolling program language ? ))

elipse ★★★ ()

Tcl. Даже не очень понятно зачем в этом случае GTK и GLib нужны будут, но тебе виднее.

undet ()

Посоветую TCL, сам недели две назад сел за его изучение. В принципе не плохой, и вполне годный язык. Да плюс ещё и кроссплатформенность. Есть реализация и под Win mobile.

pavel38 ()
Ответ на: комментарий от elipse

>Как минмум, Тcl нужен что-бы не скриптовать на CL и не задавать потом такие дурные вопросы.

Ты хотя бы строчек 100 на CL написать, чтобы так умничать?
Я вот на tcl написал. И поэтому его не переношу, и использую нормальные языки.

Возможно и так, что CL смысла учить уже и нет.))


Тем, у кого мозгов хватает только на tcl - пожалуй.

Love5an ()
Ответ на: комментарий от elipse

>Где надо быстро - есть си,
Кстати, CL быстрый. По крайней мере, настолько, чтобы не пудрить мозги приблудами на сях.

Love5an ()

Незаслуженно забыт JavaScript.

> Мне нужен скриптовый язык с более-менее рабочими bindings к gtk, glib, cairo.

Существуют два варианта JS-движков для этих целей: Seed (на базе JavaScriptCore из WebKit) и GJS (на основе Mozilla SpiderMonkey). Оба движка используют GObjectIntrospection, так что полнота охвата binding'ов эквивалентна полноте самого GObjectIntrospection, а там есть и GLib, и GTK+, и Cairo, и Clutter, и много чего другого.

Оба механизма располагают весьма приличными и даже относительно кроссплатформенными JIT-компиляторами.

> Также мне необходима работа под виндой...

Увы, под виндой использовать это хозяйство не доводилось, но, возможно, придется в скором времени. Контакты в профайле, стукнитесь, если интересно.

> ...и возможность встраивания в приложение (на C).

Обе реализации содержат как standalone JS-интерпретатор, так и механизм встраивания в программы на C.

Бонусы по сравнению с Python: нормальный JIT (привет, камрад tailgunner! ;) сдается мне, дл ТСа будет оверкиллом тащить под венду PyPy или тот же Psyco); более традиционный по синтаксису и не уступающий (IMHO) по возможностям язык; относительно легковесная платформа. Минусы - более бедная стандартная библиотека, но это нивелируется доступом ко всей G*-платформе с ее «батарейками».

Рекомендую также посетить страницу с перечислением языковых байндингов, использующих GObjectIntrospection. Там есть даже два варианта Scheme, но они, похоже, компилируемые.

Kuka ★★ ()
Ответ на: комментарий от Love5an


Умник, прочитай свой пост еще раз и внимательно:

Причина может быть в том, что некий программист знаком с tcl, но не с CL. Тогда смысла учить последний для скриптования нет.

elipse ★★★ ()
Ответ на: комментарий от Love5an

> Кстати, CL быстрый. По крайней мере, настолько, чтобы не пудрить мозги приблудами на сях.

Та ладно, «быстрый», а ассемблер еще быстрее.
Основная масса скриптовых языков появилась при быстродействии компов
на порядки ниже чем ныне.
И существование тогда СL никого не остановило,а тем более не остановит и сейчас. Меняй пластинку уже.

elipse ★★★ ()
Ответ на: комментарий от elipse

> «Название «JavaScript» является зарегистрированным товарным

знаком компании Oracle Corporation»


И что?

archimag ★★★ ()
Ответ на: комментарий от Love5an

> Ну CL можно для этой цели использовать, че.

Вроде бы ТС четко дал понять, что ему надо дело делать, а не дрочить?

А совать язык, единственной фичей которого являются макросы и метапрограммирование (про инкрементальную конпеляцию говорить не приходится, т.к. ECL - интерпретатор байт-кода) туда, где нужна простота, песочница и качественные binding'и - это, извиняюсь, самая настоящая суходрочка. Ну что им там метапрограммировать? <trollface>А ни в чем другом CL не превосходит вышеперечисленные языки.</trollface>

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

Kuka ★★ ()
Ответ на: комментарий от archimag

> Поддерживаю, как я сам то про него забыл (

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

Но свято место пусто не бывает...

Kuka ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.