LINUX.ORG.RU

Выход mocl

 , ,


7

8

mocl — набор инструментов для разработки на Common Lisp под мобильные платформы iOS и Android. По заверениям разработчиков получаемый код (используется LLVM) по производительности значительно превосходит аналогичный на Java/Dalvik.

В основе mocl лежит идея, заключающаяся в том, что логика приложения должна быть полностью описана на Лиспе, а пользовательский интерфейс — быть «родным» для платформы. Авторы проводят аналогию с Вэбом, когда логика серверного приложения описана на одном языке (например, на Лиспе), а представление — на другом (HTML + JavaScript).

Цена лицензии варьируется от $1299 для серьёзных компаний до $199 для индивидуальных разработчиков. Также предусмотрена «Source code license» для особых энтузиастов, доступ к которой, по-видимому, дают после обращения в службу поддержки.

Пример приложения на Github.

>>> Подробности

★★★★★

Проверено: mono ()
Последнее исправление: Dendy (всего исправлений: 4)

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

В случае «больших DSL» нужна как и всегда для построения абстракций - система с хорошей модульностью. CL в данном случае херовый ориентир.

Я ничего не понял. Что значит «система с хорошей модульностью»? Можно привести примеры таких систем? И как они позволяют (упрощают?) строить _абстракции_?

CL в данном случае херовый ориентир.

хз. А что хороший ориентир? Ничего не понятно. Что вы подразумеваете под «хорошей модульностью»?

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

кто-то из присутствующих уже «пощупал» этот mocl? поделитесь впечатлениями

Я не пощумал. Но на заметку взял. И вообщу у нас тут дикий оффтоп :-/

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

А можно ли логически доказать какой язык в этом плане лучше?

Было бы с чем сравнивать.

Tcl, Io. А вообще - формальные требования к языку с удобными макросами необходимо определить. Мало синтаксиса, гомогенность, модульность. Что еще?

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

Скорее подразумевается определение _новой_ семантики к sexpr'ам.

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

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

А что хороший ориентир? Ничего не понятно. Что вы подразумеваете под «хорошей модульностью»?

Модульность, относительно макросов, в моем представлении - это на данный момент, наверное, гигиена. Но этого тоже мало. Хотелось бы видеть какой-нибудь удобный фреймворк (и может быть выверенный синтаксис) для создания объемных макросов, которые потом легко читать и сопровождать.

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

Куда уж там до реальной практики использования Lisp.
реальной практики использования Lisp.
реальной практики

Ага-ага. Уберпродукты, написанные уберкодерами на уберязыке.

Даже в треде на ЛОРе лисперы sosnooley. Впрочем, как и всегда.

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

Tcl

Не вариант вообще.

Мало синтаксиса, гомогенность, ...

+ удобные средства для работы с AST. В случае с Lisp — sexprs с богатой функциональностью работы со списками + квазицитаты. Удобнее я ничего не встречал.

модульность

Если под модульностью понимается гегиена, то не думаю что это вообще важно. Меня полностью устраивает CL с гегиеной, которая легко наводится руками. Я вообще не считаю отсутствие принудительной гегиены недостатком. Скорее наоборот...

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

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

Да, может. Но скорее скажется не на саму возможность определения семантики, а на эффективное (в плане производительности) определение. Ну и сей факт никак не влияет на то, что синтаксис дело десятое.

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

Даже в треде на ЛОРе лисперы sosnooley. Впрочем, как и всегда. anonymous

Впрочем, как и всегда. anonymous

как и всегда. anonymous

Шёл бы ты отсюда...

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

всем включая тебя очевидно что как только ты покажешь 4 разных результата - сразу станет очевидным почему код «поломается» (за определением к BooBoo) при изменении входных данных.

Всем очевидно, что у тебя какое-то свое понимание термина «алгоритм». Или ты предлагаешь для каждого выходного значения свой персональный метод писать?

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

модульность

Если под модульностью понимается гегиена

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

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

Но скорее скажется не на саму возможность определения семантики, а на эффективное (в плане производительности) определение.

Ну как сказать, задай мне семантику lisp-1 в lisp-2, например.

Ну и сей факт никак не влияет на то, что синтаксис дело десятое.

loop vs iterate - вопрос синтаксиса или семантики?

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

loop vs iterate - вопрос синтаксиса или семантики?

Вопрос семантики и для loop и iterate в целом одинаков. Для loop же ещё и вопрос синтаксиса имеет место быть, и смысла в таком синтаксисе особого нет. Скорее наоборт, синтаксис loop только путает и раздражает, а профитов не даёт никаких.

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

Ну как сказать, задай мне семантику lisp-1 в lisp-2, например.

А есть дока какая-нибудь с отличиями lisp-1 от lisp-2?

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

Основное требование - нормальная совместимость со сторонними макросами, контролированное перекрытие (или не перекрытие)

Что под перектытием имеется ввиду?

удобный контроль захвата переменных

Чем контроль захвата переменных в CL не устраивает?

расширяемость

Что мешает в CL расширять макросы?

читабельность

Что-нибудь есть удобнее, чем квазицитатки и списки?

а это значит удобное написание макросов-кирпичиков для построения более сложных макросов.

Именно так сейчас дело и обстоит. Какие видишь неудобства?

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

Вопрос семантики и для loop и iterate в целом одинаков. Для loop же ещё и вопрос синтаксиса имеет место быть, и смысла в таком синтаксисе особого нет. Скорее наоборт, синтаксис loop только путает и раздражает, а профитов не даёт никаких.

Это я к тому, что синтаксис далеко не всегда 10-е место :)

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

Что под перектытием имеется ввиду?

Непреднамеренный захват.

Чем контроль захвата переменных в CL не устраивает?

Тем же самым - непреднамеренным захватом.

Что мешает в CL расширять макросы?

Посмотри на loop или тот же iterate - это страх и ненависть на лиспе, ну нафиг такое читать и поддерживать. Видимо, что-то же мешает, да? :)

Что-нибудь есть удобнее, чем квазицитатки и списки?

Пока такого не встречал.

а это значит удобное написание макросов-кирпичиков для построения более сложных макросов.

Именно так сейчас дело и обстоит. Какие видишь неудобства?

Все тот же захват переменных. На лоре уже обсуждалось. Ссылку дать или найдешь?

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

Непреднамеренный захват.

Тем же самым - непреднамеренным захватом.

Предотвратить непреднамеренный захват не так уж и сложно. Фактически вопрос самого первого элементарного опыта. Зато когда захват нужен проблем не возникает.

осмотри на loop или тот же iterate - это страх и ненависть на лиспе, ну нафиг такое читать и поддерживать. Видимо, что-то же мешает, да? :)

iterate смотрел. В целом хорошо написан и сопровождать можно. По крайней мере это лучшее что есть.

Пока такого не встречал.

Вот именно.

Все тот же захват переменных. На лоре уже обсуждалось. Ссылку дать или найдешь?

Спасибо. Уже нашёл и почитал. Но проблемой особо не проникся.

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

Все тот же захват переменных. На лоре уже обсуждалось. Ссылку дать или найдешь?

Хотя да. Можно ссылку? Возможно я не то читал.

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

кстати, годный тред тогда вышел

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

Всем очевидно, что у тебя какое-то свое понимание термина «алгоритм».

Всем очевидно что говорят за всех только люди которые не могут аргументировано изложить свою точку зрения, и потому призывают господа^Hвсех в свидетели.

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

x = f(y) - не алгоритм, без конкретизации области определения, области значений и отображения.

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

Всем очевидно

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

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

Спасибо. Почитал. Но опять же проблемой не проникся. Но тут нужно dive into ракетка. У меня на заметке :) Таки хорошо, что на ЛОР'е много лисперов.

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

Где ты тут увидел много лисперов, болезный?

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