LINUX.ORG.RU

Только не TCL! (выбор встроенного языка проекта)


0

0

Обдумываю новый home project, что-то вроде специализированной CAD-системы, довольно навороченной - развитая система команд, импорт-экспорт различных текстовых данных, GUI... Какие встраиваемые языки сейчас в моде? TCL, ессно, не предлагать.

У меня душа лежит к CL или Scheme. Примеры работоспособных реализаций:

ECL - http://ecls.sourceforge.net

Guile - http://www.gnu.org/software/guile/guile.html

Будут какие-нибудь размышлизмы? ;)

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

> SBCL lacks threads on win32. That really annoys me. :( Had to switch to ECL.

Меня тоже. И перспектива очень призрачна. Но не менее призрачна перспектива "допиливания" до ума ECL и "поднятия" либ для него (а ждать оптимизации си-кода вообще не приходится). Да комьюнити у него мелковато. Хотя для "скриптинга" внутри сишных прог - "на ура". Т.е. "E" в данном случае определяет...

Эх, выкинуть бы нафиг оффтопик - куча проблем решилась бы... ;)

yyk ★★★★★
()

Питон! Он как встраиваемый довольно хорошо подойдет

anonymous
()

Ух как вы тут раздухарились =)

Всё-таки склоняюсь к guile пока. В меру консервативно, солидно, всё-таки gnu.org.

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

Лучше выбирай компилируемую реализацию Схемы. Guile староват и слабоват.

А сейчас я вообще ересь скажу: лучший встраиваемый скриптовый движок - это Mono. Выбор языков практически неограниченный, производительность близка к нативной, биндинги к Си пишутся тривиально, проще чем в Луа даже.

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

> А сейчас я вообще ересь скажу: лучший встраиваемый скриптовый движок - это Mono.

Бгг, а ведь интересная мысль. Сколько занимает минимальный Mono?

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

На диске или в памяти? В памяти - мегов 5, вроде бы. Совсем не много по нынешним меркам.

Кстати, Mono в Second Life так используют, в качестве скриптового движка.

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

Язык у них там вообще свой, что-то лиспообразное. И от рантайм-библиотек .net почти ничего не оставили.

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

Ну, значит, Лисп там сбоку был приделан. Те примеры из SL, что мне попадались, были на Лиспе.

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

> Тут про использование моно подробнее:

А opcodes ихней VM и вообще архитектуру, как под нее что-то делать есть уже какая-то документация? Или искать на микрохвосте?

anonymous
()

Tcl. в других предлагаемых языках (кроме LISP'ов) подводных камней куда как больше. позиция "только не tcl" вообще не понятна. что уж может быть проще и удобней для подобной задачи ?

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

> в других предлагаемых языках (кроме LISP'ов) подводных камней куда как больше

Здесь предложили штук 5 лиспов и схем, и что - ни в одном из них нет больше подводных камней, чем в тикле? Ты что, всех их пробовал встраивать? :D

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

> Меня тоже. И перспектива очень призрачна.

согласен :(

> Но не менее призрачна перспектива "допиливания" до ума ECL и "поднятия" либ для него (а ждать оптимизации си-кода вообще не приходится).

Видимо давно не смотрел на него. Community активно растет. Juan Jose, активно фиксит баги и оптимизирует. Некоторые вещи по тестам в 2-3 раза быстрее стали. CLOS оптимизируется тоже. Есть хотя бы native треды под win32. И по памяти не так жруч как SBCL. SLIME тоже пилят для ECL.

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

> Видимо давно не смотрел на него.

В сорцы - года не прошло. Думал поднять кодировки для системных вызовов (как в sbcl). Оказалось в sbcl это было на порядок легче... Или я так и не въехал до конца? Но рождаемый код меня коробил... Особенно когда вставляли приведение типов там где оно нафиг не надо было!

> Community активно растет.

Я подписан на эху. Особенного роста не наблюдается...

> Juan Jose, активно фиксит баги и оптимизирует.

Фиксит - да. Оптимизирует - может быть, не заметил. Но "комьюнити" с одним "коммитером" трудно назвать "очень активным" :)

> Некоторые вещи по тестам в 2-3 раза быстрее стали.

С какого времени? Это "на глаз" или есть какие данные? Я без наезда - действительно интересно.

> CLOS оптимизируется тоже. Есть хотя бы native треды под win32.

Угу, офтопичные треды - больное место в остальных свободных лиспах.

> И по памяти не так жруч как SBCL. SLIME тоже пилят для ECL.

Это он голый "не жруч". Как только загрузишь все либы (четырке? :) что идут с ним в поставке - по памяти догоняет sbcl.

Хотя надо будет глянуть - может что и исправилось...

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

>> Некоторые вещи по тестам в 2-3 раза быстрее стали.

>С какого времени? Это "на глаз" или есть какие данные? Я без наезда - действительно интересно.

check out ecls-list. there are many examples.

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

> check out ecls-list. there are many examples.

...а как красиво послал-то! :)

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

>Здесь предложили штук 5 лиспов и схем, и что - ни в одном из них нет больше подводных камней, чем в тикле? Ты что, всех их пробовал встраивать? :D

сужу исключительно в меру своей ограниченности. Tcl по сути своей (сказал бы - семантически, да заклюют) прост как валенок, но при этом очень хорошо расширяем - и проще я могу представить себе только LISP. а вообще я не специалист по LISP'ам (знаю только Scheme, и то в рамках SICP (R4RS, насколько я понимаю) и недописанного мною компилятора её же), так что это просто глас обиженного за любимый скриптовый язык

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

Mono лучше гораздо. Выбор языков больше. VM компактнее. К Си биндится влёт. С Java такого номера не выйдет.

А ms-ненавистников красноглазых - в печку. Ибо они придурки.

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

> Mono лучше гораздо. Выбор языков больше. VM компактнее. К Си биндится влёт. С Java такого номера не выйдет.

> А ms-ненавистников красноглазых - в печку. Ибо они придурки.

Устроить что-ли опрос - кто поверил этому анонимусу? :D

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

Варианты ответов:
- верю
- не верю
- знаю что моно лучше
- знаю что джава лучше
- знаю что и то и то - говно
- знаю что лучше, но не скажу
- не знаю
...

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

Вот и красноглазики смешные подтянулись.

Включение движка mono:

#include <mono/jit/jit.h>
#include <mono/metadata/object.h>
#include <mono/metadata/environment.h>
#include <mono/metadata/assembly.h>
#include <mono/metadata/debug-helpers.h>

...

	MonoDomain *domain;
	const char *file;
	int retval;

...	

	domain = mono_jit_init (file);

...

	retval = mono_environment_exitcode_get ();
	
	mono_jit_cleanup (domain);

 И всё.

 А теперь попробуй подумать (если умеешь), с каким геморроем 
встраивается JVM.

 Ну а про то, что .NET куда как больше языков поддерживает (и 
качественнее) и говорить не стоит, это очевидно.

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

> Вот и красноглазики смешные подтянулись.

ПНХ! Хоть смеясь, хоть молча.

> А теперь попробуй подумать (если умеешь), с каким геморроем встраивается JVM.

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

> Ну а про то, что .NET куда как больше языков поддерживает (и качественнее) и говорить не стоит, это очевидно.

"Качественная" поддержка функциональщины, декларативщины, динамики?... И про скорость не забудьте, только скорость не MS.NET, а именно моно...

И "очевидно" - это "ДА", ко времени и к месту. Очень было приятно...

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

>> Ну а про то, что .NET куда как больше языков поддерживает (и качественнее) и говорить не стоит, это очевидно.

> "Качественная" поддержка функциональщины,

F#

> декларативщины,

ХЗ. Это какие языки?

> динамики?

IronPython, да и Лиспы наверняка есть.

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

> > "Качественная" поддержка функциональщины,

> F#

Scala и то активней развивается...

> > декларативщины,

> ХЗ. Это какие языки?

прологи разные и проч...

> > динамики?

> IronPython, да и Лиспы наверняка есть.

Питон и под JVM есть. А уж лиспов всяких... На .net же показали только несколько жутких недоделок/конструкторов "допили сам".

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

> Но через мелкую динамическую либку можно подключить всё, что имеет FFI с "калбэками".

Ты не пальцЫ кидай, а конкретно - возьми и подключи. Причём дёргать тебе из этого FFI надо Pure C, а не C++. Кто с JNI работал, тот в цирке не смеётся, знаешь ли.

> "Качественная" поддержка функциональщины, декларативщины, динамики?...

Да. Качественная. Тот же F# летает, Nemerle летает, а аналогов на быдложабе нет и не будет. И не надо про Скалу, она убога и тормозна.

> И про скорость не забудьте, только скорость не MS.NET, а именно моно...

У Mono скорость хуже, чем у M$.NET, но лучше для таких языков, чем у JVM.

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

> Scala и то активней развивается...

Ты вообще в курсе, что с F# происходит? На список рассылки подписан?

Да и нельзя Скалу с ним сравнивать, в скале даже type inference приличного нет.

> прологи разные и проч...

Прологу от рантайма вообще ни хрена не надо. WAM и любые её расширения транслируются в IL и в JVM и во что угодно вообще тривиальнейшим образом. Я писал компиляторы WAM->JVM и WAM->IL, последний был несколько проще и эффективнее, но вообще принципиальной разницы нет, в отличии от функциональщины.

> А уж лиспов всяких...

Ага, тормозных и кривых. Уж лучше Bigloo под IL, чем ABCL под JVM.

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

> Да. Качественная. Тот же F# летает, Nemerle летает, а аналогов на быдложабе нет и не будет. И не надо про Скалу, она убога и тормозна.

Критерии убожества и тесты сравнения скорости?

> У Mono скорость хуже, чем у M$.NET, но лучше для таких языков, чем у JVM.

Ну так где?

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

> Ты вообще в курсе, что с F# происходит? На список рассылки подписан?

А месье точно так-же в курсе развития скалы?

> Да и нельзя Скалу с ним сравнивать, в скале даже type inference приличного нет.

есть CAL. А F# даже на shootout нет...

> Прологу от рантайма вообще ни хрена не надо. WAM и любые её расширения транслируются в IL и в JVM и во что угодно вообще тривиальнейшим образом. Я писал компиляторы WAM->JVM и WAM->IL, последний был несколько проще и эффективнее, но вообще принципиальной разницы нет, в отличии от функциональщины.

Т.е. готового и развивающегося нифига нет?

>> А уж лиспов всяких...

>Ага, тормозных и кривых. Уж лучше Bigloo под IL, чем ABCL под JVM.

Bigloo и для JVM неплохо код генерит. И на Bigloo и ABCL список не заканчивается, в отличие от .net-а.

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