LINUX.ORG.RU

Clojure - lisp для JVM


0

0

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

По сути это диалект лиспа, компилируемый прямо в JVM bytecode, оставаясь прои этом полностью динамическим языком.

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



Проверено: Shaman007 ()

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

Тут уже кто-то говорил про сто строк, точнее опровергал (саныч каж-ся).

http://www.linux.org.ru/view-message.jsp?msgid=2207356#2208540

И не говори про кривые руки. Что, на других ОС будет лучше собираться? Сомневаюсь. И уж тем более не говори про "нативный запуск линуксовых проложений". Это немного медленнее и ненативно. Может тогда сразу объявить Linux быдломашиной вместо жабы и писать LinuxVM?

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

>А вот второе ... я вот лично вижу моЩЩный трэнд засунуть все в vmWare/XEN/хреналысого виртуальную машину а не в .net/jvm ....

Я за. Долой слоеные пироги!

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

Вообще-то лицензия - ничто, по сравнению со стоимостью оборудования (железа) с которым мы работаем.

anonymous
()

Заипали придумывать диалекты Lisp'a. Лучше бы довели до ума CLOS в ABCL и привязали к нему MOP, или хотя бы помогли SISC или Kawa.

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

> Так что ГЦЦ используют бомжи, быдлы и lsocket-извращенцы.

О, я Вас, кажется, узнал! Это на Вы дегустировали вино 1830 года?

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

>> Вы прямо-таки даже в "Hello, world" используете рефлексию? Она же не всегда нужна...

> А кого интересуют средства разработки, которые позволяют сделать ТОЛЬКО hello world? И кто будет тратить на них деньги? ОО язык без рефлексии идет фтопку сразу и быстро.

А потому что не для всех задач нужны ОО-языки. И, соответственно, компилировать их в код Java-машины - стрельба из пушки по воробьям.

gaa ★★
()

А вот как мне например, с помощью Лисповских замыканий распарсить эту http://www.linux.org.ru/jump-message.jsp?msgid=2210262&page=1 страницу и получить List текстов всех сообщений на странице? Дайте пример кода

А еще лучше в сравнении с аналогичным кодом на java. Чтобы понять преимущества синтаксиса Clojure

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

> А вот как мне например, с помощью Лисповских замыканий распарсить эту http://www.linux.org.ru/jump-message.jsp?msgid=2210262&page=1 страницу и получить List текстов всех сообщений на странице? Дайте пример кода

Мысль вслух: а не лучше ли для парсинга использовать tcl или perl? Просто там это уж очень хорошо пишется...

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

>> А вот как мне например, с помощью Лисповских замыканий распарсить эту http://www.linux.org.ru/jump-message.jsp?msgid=2210262&page=1 страницу и получить List текстов всех сообщений на странице? Дайте пример кода

>Мысль вслух: а не лучше ли для парсинга использовать tcl или perl? Просто там это уж очень хорошо пишется...

RegExp и в яве есть.

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

Разговор не о том, где он есть, а в том насколько удобно его использовать. А так он везде есть.

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

>> Мысль вслух: а не лучше ли для парсинга использовать tcl или perl? Просто там это уж очень хорошо пишется...

> RegExp и в яве есть.

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

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

А что, регэкспы это уникальный способ распарсивать Html-поток? Другим образом невозможно? Вот тут http://www.sql.ru/forum/actualthread.aspx?tid=484715 тоже html parser спрашивают, наверняка в Java должен быть встроенный класс. Я уверен, что в .NET Framework System.* должно чтото быть для работы с Html. Неужели в Java только регэкспами это делают? Ведь это медленно

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

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

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

на перловых регэкспах быстро писать только наколенные интерпретаторы. Более-менее серьёзные языки требуют LALR парсера, который удобно генерируется из декларативного описания, которое к перлу уже не имеет никакого отношения.

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

>А потому что не для всех задач нужны ОО-языки. И, соответственно, компилировать их в код Java-машины - стрельба из пушки по воробьям.

Да. Но есть люди (точнее нелюди) хотящие нас туда засунуть насильно, и мнения нашего спрашивать не будут. Обидно, что их грязная пропаганда и зомбирование даже линуксойдов свела с ума. Хотя один раз они проговорились - .Net создана для того, чтобы использовать специфику Виндоус. Я лично слышал это на быдлоконференции. А эти балбесы все продолжают писать на своем mono. Сразу говорю - сидите на Висте. Вас сюда никто не тащит. И фреймворк там не отстает на 2 major версии, и работает в 5 раз быстрее. Радуйтесь жизни, вам никто не мешает.

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

>А FreePascal/Lazarus? Фтопку это быдло поделие (тормозное к тому же)

А как ты под виндой из под лазаруса к базе данных, той же MSSQL или DB2 подключаться будешь? Есть только JDBC драйверы кроссплатформенные, других способов нет. Или ты данные в плоских файлах, а не в БД хранишь?

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

> на перловых регэкспах быстро писать только наколенные интерпретаторы.

в исходной задаче как раз и требовался наколенный парсер вот это самой странички, на которой мы свои мысли излагаем

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

>Вообще-то лицензия - ничто, по сравнению со стоимостью оборудования (железа) с которым мы работаем.

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

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

> А как ты под виндой из под лазаруса к базе данных, той же MSSQL или DB2 подключаться будешь?

не знаю как с DB2, а вот к MSSQL в винде я через ODBC подключался. правда из qt-шной проги через qt-шный драйвер. но написать враппер вроде труда составить не должно

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

Ты долбоёб. Из того, что ты назвал - Ява - самое кроссплатформенное.

А FreePascal/Lazarus - стошнило от одного упоминания этого быдлоповторения быдлоТурбоПаскаКАЛа и быдлоДелфятины.

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

>Ты долбоёб. Из того, что ты назвал - Ява - самое кроссплатформенное.

А самый кроссплатформенный конечно .NET

Absurd ★★★
()

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

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

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

Портированных куда?

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

туда куда нужно, но явно не в жопу Столмана.

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

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

Не позорься. Java разрабатывалась в то время, когда остро стало понятно, что "Компьютер - это сеть". Тогда еще интернета в его нынешнем состоянии можно сказать что не было. Теперь мы уже дожили до времени, когда "Компьютер - это сеть" стало реальностью. Теперь объясни мне, как твой linux-бокс запустит программу, если загруженный им бинарь будет оканчиваться на .exe? А Java-бинари я своим Windows-box могу загрузить с OS/390 или Linux машины и они запустятся на моей Windows тачке и точно те же самые .class бинари запустятся у соседа на MacOSX тачке. Просто нужно использовать WebStart и апплеты.

Тогда даже можно Linux.org.ru переписать грамотно, так, что не придется грузить 50 сообщений на клиента при каждом обоновлении страницы, а только последние появившиеся 5-10 сообщений, а остальные 50 держать в кэше браузера и рендерить страницу из кэша. Web 2.0 слышал? Так вот это пытаются сейчас написать на JavaScript то, что давно можно было бы создать, если бы Microsoft не пошла поперек Sun и не вставляла бы палки в колеса сановским апплетам. Правда, тогда вендекапецъ настал бы году так в 2002-2003-м, и она бы не дотянула до Висты. ;=) Достаточно, чтобы броузеры качественно поддерживали JVM plugin и апплеты, но поскольку IExplorer основной браузер, и апплеты он поддерживает плохо, поэтому сайты стараются писать на чем угодно вплоть до JavaScriptа, только не на жабе. А тем временем Microsoft "в очередной раз заново изобрела" апплеты в виде Silverlight

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

ну и на хер это говно. Особенно убило VB.NET via Grasshoper. Щас прям перехожу. Да мне эта кроссплатформенность на хер усралась. У меня клиенты на винде сидят.

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

Ты дурак. Перечитай обсуждение заново.

А как твой мозг осилит это:

FreePascal/Lazarus:

The following operating systems are supported: Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, Win64, WinCE, OS/2, Netware (libc and classic) and MorphOS.

============================================ Qt is available for the following platforms:

* Qt/Windows (Microsoft Windows Vista™, Server 2003, XP, 2000, NT 4, Me/98) * Qt/Mac (Mac® OS X, 10.3 and 10.4) * Qt/X11 (Linux®, Solaris®, HP-UX, IRIX, AIX, many other Unix variants) * Qtopia Core - Learn more about the embedded Linux port of Qt. ============================================ GCC:

DEC-OSF, DOS, FreeBSD, HP-UX, Linux, SCO, Solaris, AIX, IRIX, Darwin, NetBSD, OpenBSD, ULTRIX, Windows, OS/2 ============================================

И твоя любимая JRE:

Solaris, Windows, Linux и Mac OS X (Apple версия)

Отс**и

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

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

C++.NET сужается до подмножества C#.NET при компиляции.

И вообще, зачем нужны этимногия языки под .NET договорились здесь http://www.sql.ru/forum/actualthread.aspx?tid=438874&pg=1

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

Ну и че ты привел эту херню. Хер кто проверял работает ли FreePascal под ULTRIX. А на мобилниках стоит Ява. Программы для них пишутся на Ява, а не на FreePascal.

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

>А как твой мозг осилит это: FreePascal/Lazarus: *Lots of Bullshit*

>И твоя любимая JRE: Solaris, Windows, Linux и Mac OS X (Apple версия)

Только не говори мне что при разработке на Паскале никто не использует Platform-Dependent вещи и не тянет специфические зависимости. Не верю.

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

>не знаю как с DB2, а вот к MSSQL в винде я через ODBC подключался. правда из qt-шной проги через qt-шный драйвер. но написать враппер вроде труда составить не должно

Обидно, ты наверное не знаешь, но ODBC драйверы в Windows не работают. Во всяком случае для Windows x64 не подходят обычные ODBCдрайверы, да и для Vista наверняка и в таком разе как портировать это QTшное г-но на новую Windows?

anonymous
()

VB.NET via Grasshopper

C# via Grasshopper

Все на дот-нете держится. Главное преимущество дот-нета преед жабой, в том, что дот-нет сначала компилирует код в памяти и исполняется уже родной код для конкретной архитектуры, а ява интерпритирует байт-код, транслируя в родной код на лету.
ява должна умереть в аццких муках.

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

Ну конечно .НЕТ рулит. Но ты написал полный бред, .NET и Ява все генерируют нативный код на лету (JIT-компиляторы). В отличие от быдло-пидона, который в 50 раз медленне Жабы.

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

>Главное преимущество дот-нета преед жабой, в том, что дот-нет сначала компилирует код в памяти и исполняется уже родной код для конкретной архитектуры, а ява интерпритирует байт-код, транслируя в родной код на лету.

Ну и в чем конкретное приемущество данной оптимизации? В динамике узкие места видны лучше и как оптимизировать понятно лучше. Какого хрена оптимизировать функцию которая выполняется раз в час?

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

да не парься, в теории оно всё переносимо, и си, и с++, и паскаль. А на практике - ifdef-ами всё утыкано. Как и джава на могильниках - там тоже препроцессор по полной пользуется.

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

>Ну конечно .НЕТ рулит. Но ты написал полный бред, .NET и Ява все генерируют нативный код на лету (JIT-компиляторы). В отличие от быдло-пидона, который в 50 раз медленне Жабы.

Это ты пишешь полный бред. .NET не генерирует натив на лету, у него AOT Ahead Of Time компилятор, т.е. он просто тупо компилирует exeшники, т.к. тупо знает, что все равно будет исполнять их под виндой.

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

>в таком разе как портировать это QTшное г-но на новую Windows?

Новая windows вообще в сраном красногалазом third-party быдлософте софте не нуждается. Майкрософт напишет все.

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

> Все на дот-нете держится. Главное преимущество дот-нета преед жабой, в том, что дот-нет сначала компилирует код в памяти и исполняется уже родной код для конкретной архитектуры, а ява интерпритирует байт-код, транслируя в родной код на лету.

Ктулху, ты проснулся и ешь наш моск? Долго же ты спал!

> ява должна умереть в аццких муках.

В ацких муках (кстати язык Ада - крутая штуковина) должны умереть ниасилившие матчасть, которые пытаются рассуждать на незнакомые им темы. Да ещё и темы рвут.

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

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

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

>В Джаве данные друг на друга не налезают - гарантировано архитектурой.

А что, в c++ использовать stl вас в школе не научили?

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

>MFC? Насмешил. Ты бы еще про блокнот сказал.

Перестань кормить, пусть подохнет с голоду.

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

>Просто для пользователя exe удобней чем кучка .class-ов, а так это одно и тоже

Да все серьезные проекты имеют в комплекте exe с кодом типа 'CreateProcess("javaw -jar ./prog.jar",...)' и .sh файл для менее дегенератских систем.

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

>>В Джаве данные друг на друга не налезают - гарантировано архитектурой.

>А что, в c++ использовать stl вас в школе не научили?

БУГАГАГАГА я плачу. Возьми Скотта Мейерса "Effective STL" и найди там примеры кода из 3-5 строчек, доказывающие необходимость использования отладочной версии stl. Попытайся там найти кариес чисто визуально. После того как найдешь - проэкстраполируй это на типичный угробищный С++ проект размером в пару мегабайт исходников.

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