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

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

★★★★

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

Да я больше к Lisp'у склоняюсь, по жизни... Потом, многие CADы используют Scheme или Lisp, некая традиция. Но если выбирать между Python и Ruby - Ruby.

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

> Да я больше к Lisp'у склоняюсь, по жизни...

Если проект "для себя" - конечно.

> Потом, многие CADы используют Scheme или Lisp

Про AutoCAD и Autolisp - знаю, про то, что там можно использовать и VBA - слышал :) Еще в каки CAD для расширения используется Lisp?

> Но если выбирать между Python и Ruby - Ruby.

Почему?

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

>Еще в каки CAD для расширения используется Lisp?

Во многих тулах от Synopsys.

Ruby просто больше нравится, при том, что они с Pythonом делят нишу. В частности, не приемлю "невидимых значащих символов" (по религиозным соображениям) :)

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

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

:)

Я с ним повозился уже, на предыдущей работе. Жуть. Яркий пример результата разработки при полном отсутствии проектирования. И, кстати, имеет "скрытые невидимые символы" - нельзя ставить '{' где хочешь.

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

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

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

Можешь попробовать Io, очень приятный язык...но опыта встраивания его не имею..хотя одна из целей его создания как раз это и есть.

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

Ты просто не въехал. Я замечал, что люди, рассматривающие тикль как язык программирования, в него въезжают плохо. А вот люди, рассматривающие тикль как своего рода шелл...

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

Не полностью соответствует стандарту, тормозной.

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

> Те, кто советуют Питон, заблуждаются. Scheme гораздо более простой и мощный язык.

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

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

проще схемы - только форт

но фанаты помеси бейсика с вайтспейсом (тм) будут упорствовать и здесь

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

> проще схемы - только форт

Я правильно понимаю - ты предлагаешь Форт на роль встроенного языка?

> но фанаты помеси бейсика с вайтспейсом (тм) будут упорствовать и здесь

...надеюсь, ты предлагаешь Color Forth

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

Forth мне нравился всегда, с незапамятных времён выхода книги Броуди. В принципе, вполне реализуемый вариант. Какая разница, как вызвать команду?

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

(analyze-region 0 0 100 100)

или

0 0 100 100 analyze-region

hbee ★★★★
() автор топика

Одно время смотрел на ECL, потом перестал... после того как стал активно залазить в сишный код который он генерит... Ну т.е. если скорость и память совсем не важны, а сугубо как "встраиваемый скрипт" - можно брать :) А то он по памяти жруч не менее Sbcl, только толку от этого - чуть... Ну и кроме _части_ самого CL там почти ничего нет (по сравнению с теми-же Sbcl или clisp)

P.S. Кстати тот-же clisp жрёт памяти меньше, а лёгким хаком (в его доке описывается) может вызываться из внешнего кода :)

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

Хорош змеюку позорную пиарить :) Если серьёзно, то питон, как язык а не как средство самоистязания - это не серьёзно.

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

> Хорош змеюку позорную пиарить :)

Да я уже вижу, что в этом топике к голосу разума не прислушиваются :)

> Если серьёзно, то питон, как язык а не как средство самоистязания - это не серьёзно.

Скажи это, например, Норвигу.

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

не могу, цуке зобанеле :(

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

> Да я уже вижу, что в этом топике к голосу разума не прислушиваются :)

Хоть человекам это и свойственно, но якшаться с позорной змеюкой - явный перебор.

> Скажи это, например, Норвигу.

Ладно, если увижу, скажу.

anonymous
()

в home проекте делайте что хотите, хоть на пехапе

но зачем же при упоминании python мастурбировать принародно на чтото другое

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

>> Но если выбирать между Python и Ruby - Ruby.

> Почему?

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

Да и корявый он страшно. 2 типа классов, 4 разных типа атрибутов класса, 2 типа строк. Ужоснахи с подчеркиваниями для приватных методов и атрибутов. Мне кажется для питона нужна кнопка подчеркивания возле пробела где-то и такая-же по размеру. Зоопарк стилей. То все camelCase, та snake_case. То классы большими буквами, то маленькими. Во все методы self явно передавай, наследуйся от Object или не наследуйся.

А еще в питоне жирное ООП. Он вообще весь такой оопешный, что половина функционала через функции, а другая через методы. Вот и думай, чтобы узнать размер строки, нужно вроде-бы метод вызвать, ан нет, есть мега-интуитивное и короткая функция len. И таких зачетных фич еще целый букет.

А сколько библиотек для Питона, просто несчеть. Бугага - даже нормальной библиотеки для json-а нету. Их сделано целых 4! В итоге с юникодом работают только две(а две понятно для неюникодных строк, вот она свобода выбора!). Притом из этих двух одна нормально парсит, а другая нормально сворачивает. Приходится использовать обе. Вобщем костыль на костыле и костылем поганяет.

Так что питон это глобально и надежно, потому что Норвиг так сказал. А он не хухры-мухры, а в гугле работает. А гугл это глобально и надежно, как яху. Там тоже свои норвиги на пхп все пишут еще глобальнее и надежнее.

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

По теме сам бы выбирал между Scheme и Lua. Возможно посмотрел бы на Io - зачетный язык. Смесь smalltalk, self и ruby. Очень компактный синтаксис получился. Плюс есть интересные новые идеи вроде futures-ов. Вроде он пока не шибко быстрый, но зато рассчитан на встраивание и размер VM небольшой.

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

Такое впечатление, что ты прогулял вводную лекцию по Питону, где большая часть твоего нытья^W^Wтвоих претензий разъяснялась.

> даже нормальной библиотеки для json-а нету.

Да, это веский недостаток языка Питон.

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

Ну разве что тебе лично.

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

>2 типа классов

Уже исправили.

>2 типа строк

Исправили.

>Зоопарк стилей

Читайте JEP. Там написано, как надо писать.

>сколько библиотек

Можно подумать, нет плохого кода на Ruby.

Про len, кстати, самому интересно: почему не сделали метод?

P.S. Приятно читать _аргументированный_ наезд.

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

> Такое впечатление, что ты прогулял вводную лекцию по Питону, где большая часть твоего нытья^W^Wтвоих претензий разъяснялась.

Мне очень нравятся отмазки питонистов. Они одинаковы. Всегда. Вместо того, чтобы признать что-то говном, меня отправляют читать отмазки гГвидо. Типа, вот тут мы завтыкали и поэтому прилепим вот такую-вот замазку. И питонисты радостно визжат - нет, это не говно, гГвидо же объяснил почему он так сделал и радостно хлопают в ладошки.

>> даже нормальной библиотеки для json-а нету.

> Да, это веский недостаток языка Питон.

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

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

>> Такое впечатление, что ты прогулял вводную лекцию по Питону, где большая часть твоего нытья^W^Wтвоих претензий разъяснялась.

>Мне очень нравятся отмазки питонистов. Они одинаковы. Всегда. Вместо того, чтобы признать что-то говном, меня отправляют читать отмазки гГвидо.

Тебя отправляют читать объяснения. Простые факты, что языку уже 17 лет, что за это время ломающих совместимость изменений не было, и поэтому в языке накопился старый мусор.

>>> даже нормальной библиотеки для json-а нету.

>> Да, это веский недостаток языка Питон.

> Вам нужно как-то собраться и согласовать фиче-лист питона.

Мне это не нужно.

> Потому что в каждом топике появляется yyk4rever с братвой

О, этот ужасный yk4ever. Кстати, я - не он, честно-честно.

> и радостно попердывают как много в питоне кльовых библиотек. Называя это фичей питона.

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

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

>> 2 типа классов

> Уже исправили.

>> 2 типа строк

> Исправили.

Исправили будет только после того, как Python3000 заменит Python2.x, а пока что "маемо те, що маемо" (c).

>> Зоопарк стилей

> Читайте JEP. Там написано, как надо писать.

Учитывая как Гвидо забил гвоздь с отступами, удивляюсь, почему он не догадался еще code-style вбить гвоздями. Наверное тогда еще не было языков, откуда можно было это взять, хотя это бы не помешало.

По сабжу, там где я работаю используют такой у*бищнейший code-style, что составителя этого стиля толпа фанатиков вздернула бы на суку. Например, все блоки заканчивают ключевым словом pass и методы тоже. После скобок в массиве и функциях пробелы:

hash[ 'name' ] = foo( 'text' )

И еще кучу такой же ереси, включая camelCase и т.п. CodeStyle составляли плюсовики...

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

> Тебя отправляют читать объяснения. Простые факты, что языку уже 17 лет, что за это время ломающих совместимость изменений не было, и поэтому в языке накопился старый мусор.

+1. Первый раз читаю такое простое объяснение. Если совместимость не ломается, значит не вопрос, костыли имеют право на существование.

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

>>> 2 типа классов

>> Уже исправили.

>>> 2 типа строк

>> Исправили.

> Исправили будет только после того, как Python3000 заменит Python2.x, а пока что "маемо те, що маемо" (c).

Может в Python3000 ещё уберут GIL и скорость выполнения байт-кода поднимут? Тогда это уже будет хоть что-то...

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

> CodeStyle составляли плюсовики...

Его составляли придурки.

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

> Может в Python3000 ещё уберут GIL и скорость выполнения байт-кода поднимут? Тогда это уже будет хоть что-то...

Кстати, а как оптимизируют лисповые машины? Вроде бы CL тоже некисло динамический язык, а работает довольно шустро судя по бенчмаркам.

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

> Если совместимость не ломается, значит не вопрос, костыли

знаменуют собой нездоровый дезигн ab initio. Пущай попробуют ещё раз с начала и опять приходят. Уверен, в другой раз получится намного луче.

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

> Кстати, а как оптимизируют лисповые машины? Вроде бы CL тоже некисло динамический язык, а работает довольно шустро судя по бенчмаркам.

CL-ей - "как собак нерезаных" :) И некоторые довольно даже тормозные. Из быстрых SBCL генерит сразу оптимизированный нативный код для хост-платформы, а опциональная (но рекомендуемая) типизация делает код очень даже быстрым, убирая "динамический" оверхед... Но в результате получаем не совсем "лёгкую" среду.

yyk ★★★★★
()

Есть и получше реализации, чем Guile.

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

> Вроде бы CL тоже некисло динамический язык, а работает довольно шустро судя по бенчмаркам.

Не очень то и динамический. Он опционально динамический, от динамизьма при желании можно отказаться.

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

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

> Простые факты, что языку уже 17 лет, что за это время ломающих совместимость изменений не было, и поэтому в языке накопился старый мусор.

Зато как поломать _все_ программы в версии 3.0, так это запросто :)

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