LINUX.ORG.RU

newLISP - 8.4.0 - Новый Лисп


0

0

В свете недавнего выхода newLISP 8.4.0 хотелось бы обратить внимание общественности на этот интересный язык. Являясь диалектом LISP, newLISP в первую очередь оптимизирован для _быстрого_ написания современных Web-ориентированных приложений, а также приложений общего назначения.

Сайт проекта: http://newlisp.org Автор: Луц Мюллер (Lutz Mueller) Страница Download: http://newlisp.org/index.cgi?page=Dow...

Отличительные черты: 1) Эффективность и быстрота исполнения кода. Здесь: http://newlisp.org/benchmarks/ можно посмотреть бенчмарки - сравнивался newLISP, Perl и Python на 25 примерах задач. Также обратите внимания на размер исходников. 2) компактность. В 300кб (бинарный пакет под Slackware) входит сам newLISP, документация, готовые модули для работы с CGI,FTP,POP3,SMTP,MySQL,SQLite,ODBC,XML- RPC, а также newlisp-tk (для написания GUI Tcl/Tk newLISP приложений). 3) кроссплатформенность: GNU/LINUX, FreeBSD, Mac OSX, Solaris, CYGWIN and Win32 (EXE or DLL)/ есть версия newLISP с поддержкой unicode/UTF-8 4) легкость добавления новых модулей. Для примера кросс-платформенная версия OpenGL демки glut ( трехмерный чайник, вращающийся мышкой), работающая через SDL и OpenGL весит около 7кб с учетом импорта функций из внешних библиотек SDL/OpenGL. 5) большое количество интересных приложений и образцов кода по которым можно изучить язык, например: http сервер (http://newlisp.org/httpd.txt) , чат-скрипты, TCP/UDP порт сканнер, RSS-ticker (http://www.nodep.nl/newlisp/index.html) , простенькая IDE (http://newlisp.org/downloads/newlisp-...), а также Wiki написанная на newLISP: http://newlisp.org/wiki и многое другое...

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



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

> Покажите Hello world на нём плииз.

Кстати да. Видимо не дорос еще до продакшна этот язык, не готов к серьезным применениям, раз helloworld на нем не пишут.

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

Анонимус , если ты серьезно могу выслать ( так уж и быть , 60 страниц pdf)

kryl
()

Писал я раз на Лиспе программу (построение графиков в Autocad 10) - впечатления остались на всю жизнь.

gggg
()

просветите тёмного: там везде где не лень надо скобки тыкать?

З.Ы. ... будет чем заняться в ближайшее время :)

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

> (println "Hello World!")
Hello World!
" World!
> _

Уууупсс :))

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

Смотрел я эту реализацию... Что-то вроде гибрида Lisp и Scheme. Так ничего, для работы годится. Я тут даже скриптик на нем постил, чуть посложнее helloworld'а: http://www.linux.org.ru/profile/hbee/view-message.jsp?msgid=726918

Но есть у него могучий конкурент - guile. Более зрелая реализация, и ближе к стандартной Scheme.

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

вместо defmacro есть define-macro но разница между ними есть.

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

еще в newLISP можно из готового кода сделать standalone бинарник под любую поддерживаемую ось (Linux, Windows etc), и этот бинарник будет иметь довольно небольшие размеры. Та же OpenGL демка - 150кб бинарный файл (внутри - сам newLISP + код). Как с этим у guile и прочих?

m8
() автор топика

Если честно, то я не понимаю где именно имеет смысл применять функциоальные языки программирования. Понятно, что для определенных мат. задач. а где еще? И на кой на них гуй писать?

P.S. Плз воздеритесь от флейма. Я серьезно спрашиваю.

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

1) Лисп - ни разу не функциональный язык. Это мультипарадигмный метаязык.

2) Функциональные языки идеальны там, где нужно БЫСТРО разработать сложную систему, и получить надёжный и более-менее качественный по производительности результат.

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

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

GUI на функциональных языках пишется существенно компактнее и изящнее, чем на, к примеру, ООПных. Смотреть на то, как это выглядит, надо на примере Fudgets.

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

мультипарадигмный метаязык включает в себя и функциональный язык, так что говорить, что Lisp - не функциональный язык, неверно. Та где нужно (а нужно часто), применяется функциональный подход.

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

Не бывает осетрины второй свежести. Или язык функциональный, то есть - полностью может быть отображен на лямбду, или он только с элементами ФП. А в Лиспе даже частичного приложения нормального нет. Так что ни фига он не функциональный.

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

Я не скажу о всех функциональных языках, но конкретно о Лисп: его применять удобно в тех проектах, где (ИМХО):

1. планируется постоянное обновление, добавление функций уже после окончания работы над проектом и запуском его в "жизнь". 2. на стадии проектирования/разработки не совсем ясна или неопределена конечная цель проекта. Лисп позволяет довольно легко "перекроить" уже готовую систему. Обеспечивается это стилем программирования "снизу-вверх", когда вистема строится "по кирпичикам", как конструктор, от простого - к сложному. В результате получается некий "метаязык", который представляет собой законченные функциональные "блоки" из которых и "лепится" весь проект. Благодаря хорошей оптимизации по скорости вызовов функций/методов (см. бенчмарки), большее количество таких "кирпичиков" ( по сравнению с количеством функций в проектах на традиционных языках C/Perl etc) не сильно сказывается на производительности.

m8
() автор топика

Ну вот, и у этого GC с изъяном... Зацикленные структуры не держит...

Да и что-то загнались они - якобы, кроме Mark&Sweep и подсчёта ссылок ничего и не бывает. Как минимум stop and copy забыли...

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

Гм... гладко излагаешь, как будто только что Пола Грэма прочитал :-) А примеры полезных приложений, построенных "снизу вверх" существуют?

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

Когда надо реализовать даже оченно строго специфицированный язык - Лисп тоже неплохо сгодится. Именно за счёт того, что он - метаязык, и может быть задёшево превращён в любой другой язык.

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

>Чем это лучше, чем

> #!/usr/bin/guile

очевидно тем, что не нужен /usr/bin/guile

У всех под Windows/Linux есть guile? а на WinCE устройствах?

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

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

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

Ребята так язык рекламируют что аж самому интересно стало. Индустрия програмирования эволюционирует (причем достаточно быстро) - на мой взгляд в сторону питона (например yield в C#, лямбда опять-же и т.д.).

В сторону фанов лиспа: А поезд к сожалению прошел... Если он настолько удобен (в смысле скоросли разработки, надежности) - почему нет такого пиара как в Жабе, Си-шарп и т.д. Где ?! По-моему у него больше недостатков чем плюсов и все его плюсы просто меркнут в сравнении с ними (Любой здравомыслящий человек взглянув на исходник Лиспа и сравнив скажем с Джавой скажет что читается последняя горрраздо проще). Люди не разговаривают языком функций :)

мои 10 копеек

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

Дык те же яйцца - не у всех будет та же версия libGL, с которой этот бинарь соберётся... Нет смысла в бинарниках под лялихом, увы...

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

Да кто ж тебе мешает? Удаляй! define-macro, и вперёд! Из Лиспа с истинными макрами можно сделать ЛЮБОЙ язык. Именно по этой причине Лисп вообще ни с какими языками сравнивать нельзя (надо же, тут блин нашлись олухи, которые с ЖАБОЙ (!!!!) сравнили) - Лисп содержит в себе ВСЕ свойства ВСЕХ других языков. Он - общий. Другие - частные.

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

Фанам Лиспа работать надо, а не пиарить. От того, что пишущих на Лиспе станет больше им самим лучше не станет. Так они сейчас занимают привилегированное положение, соответствующим образом оплачиваемое - а если вдруг лисперов станет больше, то придётся вкусным пирогом делиться. Эта тема хорошо описана была недавно в comp.lang.lisp - рекомендую почитать, там вообще весело.

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

> Любой здравомыслящий человек взглянув на исходник Лиспа и сравнив скажем с Джавой скажет что читается последняя горрраздо проще). Люди не разговаривают языком функций :)

LOL! Люди разговаривают языком классов и методов? Лисп как раз позволяет максимально приблизиться к предметной области за счет прекрасной поддержки метапрограммирования. В Java этого вообще нет!

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

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

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

Moridin (24.01.2005 21:40:49):

> Нет смысла в бинарниках под лялихом, увы...

Отнюдь!

Кроме libc, все можно влинковать статически. И libc можно, если немного пошаманить. И получившаяся пара мегабайт вполне влезает в современный наладонник.

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

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

Это в какой же такой модернизации "нуждался" тот же Common Lisp, не подскажете? (только не надо про скобки и префиксную запись) Да, может быть, пока что несколько маловато библиотек - но этот недочёт сейчас активно восполняется - http://www.cliki.net/ А так - чего не хватает Лиспу по сравнением с перлом или пайтоном?

> выкрутасы типа метапрограммирования в скриптах и приложениях с небольшой концентрацией сложности ни к чему.. для вещей посложнее может и будет интересным решением, время покажет что на нём будет написано..

А мне почему-то казалось, что удачная библиотека Lisp macros может существенно упростить написание скриптов и приложений с небольшой концентрацией сложности - вплоть до того, что многие из таких скриптов/приложений сведутся к 1-10 строчкам кода вместо 200-2000...

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

2anonymous (*) (24.01.2005 23:58:47)

> А мне почему-то казалось, что удачная библиотека Lisp macros может > существенно упростить написание скриптов и приложений с небольшой > концентрацией сложности - вплоть до того, что многие из таких > скриптов/приложений сведутся к 1-10 строчкам кода вместо 200-2000...

Знаете батенька, если убрать слова Lisp macros то получится невероятно общее, сильное и точное высказывание. Любой язык, если у нему добавить достаточно мощную библиотеку в некоторой предметной области, может стать очень удобным для написания скриптов и приложений в данной предметной области. На том же Visual Basic столько разного софта наваяли - а почему? потому что всяких там ActiveX компонент и прочих библиотек под него создано немеряно, поэтому конторы там при необходимости нужные компоненты закупают (а у нас просто $#% $3 за диск) и ваяют что нужно под заказчика за пару недель. Тут вам и суперское повторное использование кода, и модульный подход к проектированию и т.д. А высоколобые вещи типа чистой функциональности, лямбда-исчисление и проч. - это так, в форуме потрепаться :) Реально, lisp до сих пор силен в очень немногих специальных областях, и опять же, благодаря традициям и наработанным библиотекам - AI и CAD (точнее, Autocad). Ну есть еще субкультура Emacs. Новых областей он не завоюет, к счастью (потому что синтаксис "шепелявый" :) ) или к сожалению (потому что симпатичный язык). Можно вспомнить еще пару языков, гораздо менее элегантных и вроде свое отживших, но уверенно держащихся в своих нишах: Фортран в HPC & Кобол в финансах - и опять же из-за библиотек и традиций.

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

python многое хорошее перенял у лиспа, но простите, на лиспе писать что то серъёзное уже слишком поздно. не удивлюсь если emacs перейдёт не питона

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

> не удивлюсь если emacs перейдёт не питона

Не перейдет: уж очень у питона синтаксис мусорный. "reduce(int.__add__, (1, 2, 3))", "exec('y=0\nfor i in (1,2,3):\n\ty+=i\nprint y')" - кошмар.

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

> да, поезд ушел, Если и ушел, то недалеко ;-). ИМХО - вскоре еще вернется. Ушел, потому что раньше проблема была зачастую в недостаточной мощности железа под лисп-машины. Сейчас таких проблем нет. ИМХО Рынок снова заставит обратиться к таким языкам как Лисп.

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

>Знаете батенька, если убрать слова Lisp macros то получится невероятно
общее, сильное и точное высказывание. Любой язык, если у нему добавить
достаточно мощную библиотеку в некоторой предметной области, может стать
очень удобным для написания скриптов и приложений в данной предметной области. 

А как насчёт вот такого, например:

(do-select ((CustomerName CustomerEmail)
            :from Customers
            :where (> CustomerAge 100))
  (send-email CustomerEmail
              :subject "Congratulations!"
              :body (format nil
                            "Dear ~A, you won a prize! Call ~A."
                            CustomerName company-phone)))

Прошу заметить, это реализуемо безо всяких косорылых Embedded SQL препроцессоров. А как такого рода интеграцию с SQL реализовать без Лисповых макросов, интересно знать?

По поводу применений Лиспа - посмотрите, например, http://home.comcast.net/~bc19191/blog/040128.html

То, что Лисп "чуть не забыли", связано не с недостатками языка. http://c2.com/cgi/wiki?AiWinter

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

> python многое хорошее перенял у лиспа, но простите, на лиспе писать что то серъёзное уже слишком поздно.

Интересно, почему?

> не удивлюсь если emacs перейдёт не питона

Если Emacs на что-нибудь и перейдёт, то только на Common Lisp. Даже проект уже есть соответствующий, правда название, мягко скажем, не вполне удачное - Climacs (Common Lisp, CLIM, Emacs ;-) Пытался людей на #lisp убедить, что надо как-нибудь по-другому назвать - но мне возразили, что "Putin" тоже мол по-французски означает что-то неприличное, так что мол не надо тут...

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

Не путай. Библиотека в любом отсталом языке - это просто библиотека. Ничего в язык не добавляющая. А библиотека макр в Лиспе - это просто новый язык. Не функции или там классы, заточенные под предметную область, а ЯЗЫК.

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

Есть и более удачно названный проект аналогичной тематики - J. ;)

То бишь, он же - ABCL (Armed Bear Common Lisp).

Moridin
()

Я признаться так и не понял зачем она реально то была нужна, но за-то посмотрел я её ещё с первого релиза :-)

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

>(do-select ((CustomerName CustomerEmail)
>            :from Customers
>            :where (> CustomerAge 100))
>  (send-email CustomerEmail
>              :subject "Congratulations!"
>              :body (format nil
>                            "Dear ~A, you won a prize! Call ~A."
>                            CustomerName company-phone)))

ШЕДЕВРАЛЬНО!!!

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