balu: (Default)
[personal profile] balu
Я всегда неровно дышал ко всяким там LISP-ам. К сожалению это не самое популярное семейство языков. В связи с этим с библиотеками как бы напряг. Но недавно появился язык программирования Clojure, который является динамически типизируемым и компилируемым языком общего назначения для JVM и CLR. На НГ автор языка решил сделать подарок и выпустил новую версию. Теперь кроме прочего там есть поддержка примитивных массивов, chunked-последовательности, futures, предназначенные для асинхронных вычислений, promises для обмена данными между тредами, pre- и post условия для функций, продолжения (futures) и много другого
Из свободно распространяемых обучалок есть порт PCL на Clojure и скринкасты про новые возможности.
И вот нашлись 2 очччччччень интересные книжки по этой тематике:
Clojure in Action

и только что анонсированная The Joy of Clojure. Но самая интересная для меня оказалась вот эта красота:

Вот теперь и трясусь - и от того, что жаба, и от того, что некогда... Но, наверное, до лета я на 28 баксов расколюсь. Эх... жалко НГ закончился

Date: 2010-01-12 12:58 pm (UTC)
From: [identity profile] roman_sharp.livejournal.com
Мосье знает толк в извращениях :)

Date: 2010-01-12 01:11 pm (UTC)
From: [identity profile] b-al-u.livejournal.com
Мсье может аргументировать? По пунктам, плиз.

Date: 2010-01-12 01:13 pm (UTC)
From: [identity profile] roman_sharp.livejournal.com
Не ;) Эт так, зубоскальство.

Date: 2010-01-12 01:28 pm (UTC)
From: [identity profile] b-al-u.livejournal.com
А... А то я уже на лиспосрач настроился. У многих он вызывает странную реакцию, переходящюю в ненависть. Как Линух у виндузятников.

Date: 2010-01-12 05:15 pm (UTC)
From: [identity profile] roman_sharp.livejournal.com
Ну чё, можем устроить. Я вообще не понимаю, зачем нужен Лисп ;)

Date: 2010-01-13 08:08 am (UTC)
From: [identity profile] b-al-u.livejournal.com
Не имеет смысла:
1) Пока у человека нет задач, под которые приходится подбирать соответствующие инструменты ему очень сложно объяснить в чем профит. Отсюда твое, и не только твое, непонимание, чем монолит (тот же Делфи) хуже модульной системы, например.
2) Для того, что бы о чем-то спорить надо иметь о том мнение. А у тебя по поводу Лиспа его быть не может.

Для общего просвещения можешь почитать (http://vshabanov-ru.blogspot.com/2007/03/sicp.html) о знаменитом учебнике MIT для первокурсников. И можешь посмотреть замечательные лекции этого курса как от МIT, так и от Беркли. Учти, что этому курсу очень много лет. Плюс у меня есть очень впечатлительные примеры использования Лиспа.
А теперь, в сочетании с Java это инструмент, который смело можно использовать у себя.

Date: 2010-01-13 09:20 am (UTC)
From: [identity profile] roman_sharp.livejournal.com
1) Я очень хорошо понимаю, чем монолит хуже модульной системы (на примере Опера/Файрфокс). Однако у модульной системы тоже должна быть "коробка", рабочая, со всеми основными функциональными возможностями (к каковым развращенный я отношу и дизайнер ГУИ). Модульная система из трех модулей проблемной совместимости версий, разбросанных по разным сайтам - уже сильный гемор.
2) Я как не понимал, зачем он нужен, так и не понимаю :)

Date: 2010-01-13 09:58 am (UTC)
From: [identity profile] b-al-u.livejournal.com
Однако у модульной системы тоже должна быть "коробка", рабочая, со всеми основными функциональными возможностями (к каковым развращенный я отношу и дизайнер ГУИ).
Операционная система, чем не коробка (http://www.ozon.ru/context/detail/id/1398573/)?
А гуевый дизайнер отрываемым быть обязан. А по хорошему, не программиста это дело.
2) Я как не понимал, зачем он нужен, так и не понимаю :)
Для того, что и все остальные ЯП. С той разницей, что Лисп с производными несколько другую концепцию имеет, очень мощную.

Date: 2010-01-13 08:20 am (UTC)
From: [identity profile] b-al-u.livejournal.com
И по твоему вопросу о wxPython. Я тебе не рекомендую (http://community.livejournal.com/ru_python/269128.html?thread=2468168#t2468168) его использовать. Python неплох и от него есть профит, но сейчас есть горааааздо более интересные/перспективные/простые языки общего назначения. Например, F#. Поищи, в инете есть свежие учебники по нему и он войдет в новую студию из коробки, хотя уже сейчас его можно прикрутить к ней плагинами. Если бы он работал надежно на моно 4 года назад, я бы не писал так много на питоне.

Date: 2010-01-13 09:22 am (UTC)
From: [identity profile] roman_sharp.livejournal.com
Меня тут народ просветил насчет Джавки, что в коробку NetBeans вкрутили какой-то вижуал дезигнер, да и в премудром Эклипсе вроде тоже что-то такое модульное есть.

Отсюда появились мысли склониться ко Джаве.

Date: 2010-01-13 10:01 am (UTC)
From: [identity profile] b-al-u.livejournal.com
Джава хороша для Ынтерпрайза. А для ГУЯ она не шибко, мягко говоря. Несмотря на конструктор. И ублюдочна очень даже. Но инфраструктура вокруг нее очень неплоха, а с появлением нормальных языков под нее, стало можно свободней дышать.

В твоем случае, я бы склонился к дотнету

Date: 2010-01-13 10:04 am (UTC)
From: [identity profile] roman_sharp.livejournal.com
Нет, нет и еще раз нет. Только не это порождение MS. Не хочу подсаживаться на этот вариант совершенно.

Date: 2010-01-13 10:17 am (UTC)
From: [identity profile] b-al-u.livejournal.com
1) Это как раз одно из самых лучших творений МС. Это действительно очень хороший продукт. При всей своей нелюбви к этой конторе говорю.
2) Есть свободный вариант - Mono. Очень живой и кроссплатформенный, совместимый с оригиналом.

Date: 2010-01-13 10:09 am (UTC)
From: [identity profile] roman_sharp.livejournal.com
Вообще мой идеал - даже нечто универсальное, способное компилиться в "родные" исполняемые, без необходимости таскать за собой икс-VM, "коробка", возможность создания как командной строки, так и ГУИ.

Как один из вариантов, xornot предложил QT Creator с IDE и прочими наворотами.

Date: 2010-01-13 10:22 am (UTC)
From: [identity profile] b-al-u.livejournal.com
Вообще мой идеал - даже нечто универсальное, способное компилиться в "родные" исполняемые,

Значит ты пока не пришел к необходимости ВМ. Снимает массу головной боли натива и легаси.

QT Creator

QT Creator - это С++ со всеми его подлыми минусами.

Date: 2010-01-13 10:35 am (UTC)
From: [identity profile] roman_sharp.livejournal.com
Я понимаю, что снимает - с одной стороны, но с другой - утяжеляет для конечного пользователя. tradeoff. Кроме того, у меня большие, такие большие сомнения, что command line через VM эффективнее работает. Хотя ХЗ.

QT Creator - это С++ со всеми его подлыми минусами.

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

Вот так и мечешься.

Date: 2010-01-13 11:04 am (UTC)
From: [identity profile] b-al-u.livejournal.com
Кроме того, у меня большие, такие большие сомнения, что command line через VM эффективнее работает.
Конечно, т.к. неизбежны затраты на старт ВМ.

но под них инфраструктуры нет и неизвестно, будет ли,

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

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

Date: 2010-01-13 11:08 am (UTC)
From: [identity profile] roman_sharp.livejournal.com
2) Юникс вэю не достает понимания удобства и нужности ГУИ для пользователя. Я сначала долго не мог понять, почему каптча так мучает моих читателей и не мучает меня. Потом дошло: они ж слепой английской раскладки, в отличие от меня, не знают.

1) Ну вот это одна из причин, по которой я склоняюсь к Джаве. Ты там Джитон какой-то вспоминал, и другие компиляции в Джаву.

Date: 2010-01-13 11:31 am (UTC)
From: [identity profile] b-al-u.livejournal.com
2) Юникс вэю не достает понимания удобства и нужности ГУИ для пользователя.

далеко не всегда. для решения задачи нужон гуй. Есть чисто гуевые задачи, никто не спорит. А вот функционал туда дергать ч-з ЮВ вполне нормальное решение.

Мне, кстати капча тоже проблема. Я часто не могу разобрать ее... Наверное я бот.

Ты там Джитон какой-то вспоминал, и другие компиляции в Джаву.

С жабой мы страдаем от:
1) ВМ Жабы заточена только под один довольно таки ублюдочный язык - жабу.
2) Отсутствия хвостовой рекурсии, каждый вызов по определению потребляет стек.
3) Тормозной и неправильный GC. При ровно той же семантике VM можно было сделать лучше. Жабский GC не приспособлен к ситуации, когда огромное количество мелких объектиков выделяется и сразу же теряет актуальность.
4) Отсутствие чего либо аналогичного .NET-овским делегатам. Для такой простой (и часто нужной) вещи, как передать указатель на метод, требуется плодить отдельный класс. При традиционном подходе к программированию на самой Жабке - не проблема, при реализации других языков - геморрой.
5) Сам язык Жаба: отсутствие замыканий, отсутствие даже минимальных возможностей метапрограммирования, отсутствие нормальных и удобных контейнеров (ну что мешало сделать для списков и хэш-таблиц синтаксический сахар, чем они хуже массивов?), анонимных функций, нормальных генериков. Если все эти претензии разрешить, то Жаба зарулит нипадеццки. А пока, когда есть возможность выбора инструмента для очередного языка, я или натив сразу делал бы, или .NET. Сейчас ситуация чуть получше стала, можно и попробовать, тем более, что все интересные мне языки можно запустить не только под жабу, а и под дотнет.
В частности Житон генерит крайне неэффективный байткод, в отличие от дотнетовского варианта. Хорошие реализации для жабы - это Scala и Clojure. Но это исключения больше. Есть еще JRuby, но он тормоз, как и Jython.

Date: 2010-01-12 02:53 pm (UTC)
From: [identity profile] udpn.livejournal.com
Не путайте futures с продолжениями (continuations).

Date: 2010-01-13 08:11 am (UTC)
From: [identity profile] b-al-u.livejournal.com
Я знаю. Но не подобрал лучшего перевода. Потому в скобках и указал оригинал

Date: 2010-01-20 08:55 am (UTC)
From: [identity profile] astoon.livejournal.com
жаль время не резиновое.

Date: 2010-01-20 02:14 pm (UTC)
From: [identity profile] b-al-u.livejournal.com
Только сегодня почитал ваш пост о кложуре. Я в ближайшие дни напишу, как я прикручивал его к емаксу и каких граблей надо опасаться.

Profile

balu: (Default)
от. Михайло

April 2026

S M T W T F S
   1234
5678910 11
12131415161718
19202122232425
2627282930  

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 15th, 2026 01:07 am
Powered by Dreamwidth Studios