LINUX.ORG.RU

[lisp] [work] [real] lisp'еры из последнего опроса - отзовитесь

 ,


0

7

Судя по последнему опросу на ЛОРе есть минимум 25 человек использующих LISP на работе.
Интересно узнать насколько это действительно/реально.
Т.е. узнать область применения, практичность использования именно для реальных рабочих задач, факт оплачиваемости использования этого ЯП для этих задач.
В 3-х страницах коментов под опросом LISP'еров не обнаружилось - только хобби-увлекающиеся.
Сам из активно практикующих на ЛОРе сейчас знаю только mv.
Там область ясна, практичность применения вопросов не вызывает (сам занимаюсь ПЛИС, есть понимание преимуществ их решения).
Неужели это только разовый пример и все настолько плачевно :)

P.S. Я не ищу работу себе, интересна именно реальная применимость языка.
Хочу не раздувая обсуждения эффективности узнать реальные примеры для субъективных выводов.

----------------------------------------------------
На сейчас выходит:
генерация vhdl
анализ кода
анализ генетических цепочек
человеческие языки (тоже явно анализ/генерация, на каком-то уровне)



Последнее исправление: elrprt (всего исправлений: 6)

1)Неужели программирование на LISP настолько приятное времяпрепровождение, что он стоит того, чтобы сломя голову бросать все и искать работу основным критерием которой будет он?

2)Голый программер на языке без знания предметной области — ноль. Неужели в случае Лиспа я неправ?

ttnl ★★★★★
()

ты еще забыл Архимага и Алекса Отта.

я по работе написал одну микроскопическую программку на Racket (собственно программой-то и назвать нельзя, гуек небольшой), ограничений на выбор языка не было, а питон я ниасилил =)

P.S. вариант, что я использую лисп на работе, в опросе не выбирал.

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

ух ты...

сломя голову бросать все и искать работу основным критерием которой будет он?

Ты это откуда взял из моего сообщения?

Голый программер на языке без знания предметной области — ноль.

Ты всегда приводишь общие высказывания к месту и не к месту?

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

Архимаг сруливал с лиспа в enterprise, насколько я помню.
Про Отта забыл. Кстати, его область интересно было бы узнать.

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

Я пишу систему по визуализации и некоторому анализу кода и текстовых данных. Десктопное приложение. Платформа - Vista/7, возможно XP тоже.

для стартапа, имхо, CL - идеальный вариант. Быстрая и динамичная разработка, метапрограммирование. Но есть один момент - часть стандартной библиотеки, связанной с I/O - для real-world приложений абсолютно непригодна. Приходится пилить своё I/O через FFI.

GUI тоже приходится юзать чистый виндовый, через FFI, потому что нормального GUI для лиспов нет, или они в коммерческих реализациях с неприятными лицензиями.

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

lovesan

anonymous
()

Пишу на CL, ПО для анализа генетических цепочек. Аля стартап, ушел из enterprise java.. Впечатляет скорость разработки, перед тем как начать работу, около 1.5 месяца тестировал различные языки.. Единственная проблема отсутствие толкового ГУИ фреймворка..

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

>используется gcc?

В каком плане?
Только для сборки SBCL из сорцов разве что :)

насколько удобно дотягиваться до виндового гуя?


Я бы сказал, удобнее чем из Си.

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

Анализ сложнее школьного решения цепочек?
Можешь в двух словах возможности рассказать (если не секрет), что бы представлять уровень решаемых ПО задач.

Единственная проблема отсутствие толкового ГУИ фреймворка

Да, об этом говорят все. Но никто не решает, похоже.

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

Тьфу, SBCL конечно. Замещение гештальтов в мозгу :)

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

> GUI тоже приходится юзать чистый виндовый, через FFI, потому что нормального GUI для лиспов нет, или они в коммерческих реализациях с неприятными лицензиями.

в Racket все нормально с GUI

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

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

Чё-то с языками (человеческими) связанное. И web на weblocks.

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

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

Мой проект пилотный, если ребятам понравится, то они будут искать под него деньги в США. На данный момент всего несколько фирм занимаются таким софтом, довольно специфично, но я думаю за биоинформатикой будущее. Если не взлетит, то хоть скилл прокачаю качественно. Лисп выбрал именно потому, что надо быстро писать...

Я читал мельком, в 80-х когда делали genera ос, использовали свой GUI фреймворк, с интересным подходом, для создания компонентов, потом когда lisp рынок рухнул, на это тоже забили.Думал как-то поискать, и все-таки написать простенький тулкит.

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

Да ну? А к этому GUI можно прилепить Direct3D?

А вообще, Racket мне сильно не нравится. Там компилятор в рантайме то есть? Только в байт-код поди. Оптимизировать его до уровня Си нельзя. А foreign thread callbacks? Без них на винде делать нечего, если ты не на дотнете. И это еще я не упомянул переусложенные до немерляабсурда макросы. Типичная, короче, схема - игрушечный язык, ставящий практичность на последнее место.

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

Хм... есть реальные перспективы в одиночку осилить эту задачу до хоть какого-то практически применимого результата быстрее чем за 4-5 лет?

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

Одному конечно тяжело, я не зря написал, что пилотный проект. Я уже один стартап запорол, когда начинал быстро людей в команду набирать.. Теперь более основательно подхожу к этому вопросу. Есть такой ученый американский Шон Эдди (Sean Eddy), у него есть похожая программа он уже ее 10 лет клепает на python. Фишка в том, чтобы создать продукт для ученых практиков, создаваемый не учеными теоретиками, а людьми которые разбираются в разработке ПО и будут его качественно поддерживать. У меня в США знакомый, который крутится в этой сфере, если результаты моей программы будут удовлетворительные, т.е не хуже того, чем пользуются уже, то будут деньги и будет команда набираться для дальнейшего развития..

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

Хм... есть реальные перспективы в одиночку осилить эту задачу до хоть какого-то практически применимого результата быстрее чем за 4-5 лет?

Если мат.аппарат готов, то склепать программу на CL можно очень быстро даже одному программисту. Если мат.аппарат не готов, то на CL очень удобно проводить исследования. Получается, что по сравнению с тем же С++ производительность программирования на CL возрастаешь просто бешенно. Особенно в тех случаях, когда программа превратилась в спагетти: на C++ даже костыль прикрутить бывает чрезвычайно сложно, а на CL костылестроение на ходу заложено идеоматически, взять хотя бы bottom-up подход.

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

Забыл, время у меня до конца января =), там будет ясно.

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

Я не спорю насчет преимуществ CL в этом вопросе.
Кроме того, всякий нетипичный анализ на нем можно хорошо визуально оформить синтаксисом, имхо.
Спрашивал только насколько реально одному человеку достичь весомого практического результата в такой задаче в обозримые сроки.
Т.к. мое мнение, это одно. А у человека, который этим занимается напрямую, мнение более аргументированно :)

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

Спрашивал только насколько реально одному человеку достичь весомого практического результата в такой задаче в обозримые сроки.

Для proof of concept не требуется production quality. Достаточно иметь что-то доказывающее работоспособность идеи, чтобы заказчик/инвестор заинтересовался и дал денег.

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

Собственно, да, это proof of concept. Для моих задач, ни Java, ни C++ c ООП нафик не сдалось. Собственно был выбор между С и lisp в финале. Лисповые макросы, сделали выбор однозначным..))

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

> Да ну? А к этому GUI можно прилепить Direct3D?

готового вроде нет, только OpenGL, а в чем проблема прикрутить? к CL уже прикрутили? или в CL появился нормальный опенсорсный гуй?

Там компилятор в рантайме то есть?

а зачем? как буд-то CL это помогло занять хоть какую-то заметную долю рынка

Оптимизировать его до уровня Си нельзя

да, мы видели заоптимизированный CL-код. да и зачем? есть же CFFI

А foreign thread callbacks?

не знаю, что это, расскажете — отвечу. или сами смотрите в документации

И это еще я не упомянул переусложенные до немерляабсурда макросы

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

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

вы типичный такой лавсан, ставящий белки и углеводы на последнее место

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

>к CL уже прикрутили?
Фактически.
Я просто беру HWND и передаю в Direct3D.

а зачем?

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

да, мы видели заоптимизированный CL-код. да и зачем? есть же CFFI

А при чем тут CFFI? CFFI это чтобы дергать например ОС за разные места(хотя лично у меня в проекте не CFFI, а упрощенная обертка над sb-alien и sb-sys). А для всего остального есть CL. У меня например в проекте запилена работа с перекодированием строк в байты и обратно. На CL это не тормозит, а со схемой что - тащить за собой iconv, и еще и тратить кучу времени на foreign-вызовы? Нафиг-нафиг.

не знаю, что это, расскажете — отвечу

Это когда лисповые коллбэки(лисповые функции, которые могут вызываться со стороны Си) могут нормально работать в тредах, создаваемых не лиспом, а операционной системой, к примеру, или сторонними библиотеками, то есть в тредах, изначально с лиспом не связанных.

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

Я по своему опыту сужу что нет. Ими пользоваться так же неудобно, как и немерлевыми макросами, или каким-нибудь System.CodeDom. Слишком много структуры.

anonymous
()

В подобных тредах я чаще всего предпочитаю быть наблюдателем: они не требуют вмешательства и более чем красноречиво расставляют все точки над «i». Хочу лишь напомнить, что где-то пару лет назад я заводил подобный тред, собравший, к моему удивлению, за тысячу комментариев. (Его тут недавно назвали «эталонным лиспосрачом», что, признаюсь честно, не может не льстить.) Тогда у меня не дошли руки подсчитать результаты, но я не сомневаюсь, что они были такими же, как и в этом треде - три с половиной калеки. И я уверен, что остальные отметившиеся 21.5 калек всего-навсего пару раз писали скрипты на AutoLISP, EMACS Lisp или Guile - не более того.

По-моему, это очень хорошо отражает текущее положение Лиспа как узкоспециализированного инструмента.

Kuka ★★
()

Я разработал IVR систему, полностью написанную на CL (LispWorks), минимальная прослойка-драйвер написана на C для интерфейса с железом и его рантаймом (Dialogic, NMS, TelcoBridges) + интеграция с TTS и ASR с использованием MRCPv2 клиента работающего с Nuance.

Все ядро и логика были написаны на CL, которые используют C-шные драйвера через FFI.

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

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

Кстати, Дим, раз уж ты здесь. Тут подумалось мне: а вдруг я действительно выживший из ума старпер и чего-то не понимаю? Вдруг всю жизнь ходил мимо невероятно мощного инструмента?

Поэтому хочу спросить: ты не против, если я погоняю твой парсер, сгенерированный для какой-нибудь простенькой грамматики (типа Java 5)? Можно без исходников, один FASL (sbcl 1.0.47 Linux x86), только тогда обязательно с документацией на способ вызова и на формат выходной структуры. Лучше бы, конечно, сам генератор - на случай, если захочется пощупать другую грамматику. Спасибо.

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

> Я читал мельком, в 80-х когда делали genera ос, использовали свой GUI фреймворк, с интересным подходом, для создания компонентов, потом когда lisp рынок рухнул, на это тоже забили.Думал как-то поискать, и все-таки написать простенький тулкит.

CLIM -> McCLIM?

http://common-lisp.net/project/mcclim/

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

> Я читал мельком, в 80-х когда делали genera ос, использовали свой GUI фреймворк, с интересным подходом, для создания компонентов,

Думал как-то поискать, и все-таки написать простенький тулкит.

Его писали по мотивам «Presentation based user interfaces» (AITR-794 в гугл), затем в 90-ых стандартизировали, сильно пределав, как CLIM. В несколько заброшеном виде присутсвует в Allegro и LispWorks. McClim открытая реализация которую с переменным успехом лет 10 писали разные люди, но внутри там все так переменчиво что появляется желание переписать большую часть нафиг.

Ссылки на стандарт и некоторые обзоры (большой частью бесполезные) можно найти на http://mcclim.cliki.net

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

Сам по себе CLIM это универсальная штука для описания UI (не только graphical) в контексте CL. И в этом смысле очень сильно упрощающая жизнь по сравнению с тем что называется GUI сейчас.

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

> и все-таки написать простенький тулкит

Будешь писать CLIM кинь мысли на lisper.ru. Я тоже по близкой к работе надобности этим занимаюсь, можеть быть две головы будет лучше.

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

> 21.5 калек всего-навсего пару раз писали скрипты на AutoLISP, EMACS Lisp или Guile

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

хорошо отражает текущее положение Лиспа как узкоспециализированного инструмента.

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

antares0 ★★★★
()

> факт оплачиваемости использования этого ЯП для этих задач.

На мой взгляд у этого ЯП нет факта оплачиваемости. Оплачивается лишь момент выполненой работы, решеных задач. Если ты можешь замеменить бригаду явистов, то ты забираешь их совокупную зарплату. Если нет, то это твои проблемы.

узнать область применения

Язык общего назначения, не?

antares0 ★★★★
()

Управленческий учет в широком смысле. Точнее стык управленческого учета и UI.

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

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

JFreeM ★★★☆
()

Сколько видел подобных тредов, в каждом появлялся Kuka и тонко троллил лисперов. И этот не исключение.
Истории успеха на сайте Franz inc. смотрел?
http://www.franz.com/

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

> Фактически.

Я просто беру HWND и передаю в Direct3D.

Ну и к Racket так же можно, тем более, что ffi там намного удобнее реализован, чем в CL.

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

То есть вопрос сводится, как я понял, к следующему: «можно ли в рантайме сгенерировать код ф-и, заевалить его, в результате чего получится машкод, и потом вызывать»? Да, можно.

На CL это не тормозит
а со схемой что - тащить за собой iconv, и еще и тратить кучу времени на foreign-вызовы? Нафиг-нафиг.

А чего бы и не потащить, если результат выйдет лучше, как с точки зрения производительности, так и с точки зрения качества кода?

Я по своему опыту сужу что нет. Ими пользоваться так же неудобно, как и немерлевыми макросами, или каким-нибудь System.CodeDom. Слишком много структуры.

90% макросов на CL полностью покрываются define-syntax-rule, который значительно удобнее defmacro за счет паттернов. В оставшихся 10% - общелисперам приходится писать ad hoc, informally-specified, bug-ridden, slow implementation of half of syntax-parse.

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

Никто не вспомнил коммон лисповский биндинг к gtk от dmitry_vk? Биндинг вполне рабочий, хотя сам дмитрий и «отошел от дел» в последний год

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

> Никто не вспомнил коммон лисповский биндинг к gtk от dmitry_vk? Биндинг вполне рабочий, хотя сам дмитрий и «отошел от дел» в последний год

все знают, как выглядит GTK под виндой и макосью, Racket'овый гуевый тулкит же выглядит под ними нативно

korvin_ ★★★★★
()

Судя по последнему опросу на ЛОРе есть минимум 25 человек использующих LISP на работе.

ну да, один им полы моет, другой на окно вешает, чтобы солнышко не светило, третий им воду в чайнике фильтрует, прям во время кипячения, через reflection... прикладной ЯП, чо

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

> Racket'овый гуевый тулкит же выглядит под ними нативно

он и есть нативный, так же как и wxWidgets, например

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

>...который значительно удобнее...

ты удобство (причём не только своё) уже можешь «исчислять» и «измерять»? Нет? Тогда какого хера надуваешься как индюк во время гона? Схемодрот охреневший...

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

> ты удобство (причём не только своё) уже можешь «исчислять» и «измерять»?

Чтобы сказать, что А удобнее Б - «исчислять» ничего не надо.

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

тогда ты неявно претендуешь на всеобщее удобство, что является ЛПП

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

глупости, и так понятно, что если некоторое сообщение пишет субъект А, то это мысли субъекта А (если специально не помечено обратное). Все, что говорит/пишет конкретный человек - априори субъективно.

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

> Сколько видел подобных тредов, в каждом появлялся Kuka и тонко троллил лисперов

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

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