LINUX.ORG.RU
Ответ на: комментарий от anonymous

Под record имею в виду тип данных, компактно размещающийся в памяти и имеющий несколько полей. В C он делается при помощи слова struct.

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

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

Про такие слова в своей жизни слышал:

tomcat, application server, eclipse, BEA, Oracle, мультиплатформенные программы наконец, нет?

Java не только в браузере, еще кой-какие применения имеются. У компутеров кроме запуска FF, Mplayer и AmaroK другие применения есть.

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

Спасибо!

www.jsoftware.org - к сожалению, сайт не открывается.

www.kx.com - буду смотреть. Но реляционная база данных в моем случае врядли подойдет.

www.ocaml.org - неделю назад изучал. Хорошая штука, но foreign function interface какой-то страшноватый, скорость сравнимая с С достигается только при использовании императивных конструкций. Замены кода в realtime похоже тоже нет.

rtvd ★★★★★
()
Ответ на: комментарий от Sun-ch

>Совсем недавно наблюдал как тупо зависает CentOS при нехватке памяти, и никакие ООМ килеры не спасают.

Не верю. Если ты написал скрипт, который порождает жрущие память, _разные_ процессы, и пустил его от рута, может быть. В реальных ситуациях, OOM килер отстрелит плохое приложение в течение нескольких минут.

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

>Если не java для коммерческого программирования, то что?

И действительно! Больше нечего! JAVA и SWING! Ура! Даешь офисы и экселы на java! Тогда и память жрать небудет и работать будет в 100 раз быстрее чем уродские поделки на С++! Пуст санки переделают Java VM на java - чтоб скорость была и память нежрало! А то невозможно! Ну неначем коммерческое программирование осуществлять!

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

>Про такие слова в своей жизни слышал: tomcat, application server, eclipse, BEA, Oracle, мультиплатформенные программы наконец, нет?

А, еще вы забыли упомянуть VB, VBscript и .NET - на них тоже программы написаны, и некоторые даже работают наверное, ну и что? Обойтись без них нельзя разве? Всему вышеперечисленному вами есть достойные альтернативы.

>Java не только в браузере, еще кой-какие применения имеются. У компутеров кроме запуска FF, Mplayer и AmaroK другие применения есть.

Спасибо вам! Теперь буду знать!

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

>И по ним получалось что Lisp ну очень сильно любит кушать память.

В свете флейма про жаба такие комментарии видеть нескольно забавно. ПАМЯТЬ НЫНЧЕ ДЕШЕВА! КУПИ СЕБЕ 10 ГИГОВ ЗА КОПЕЙКИ ИЛИ УДАВИСЬ!

>Кроме того, сомневаюсь что он позволяет эффективно работать с данными типа record.

Используй жаба - она позволяет!

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

Это ПЕРЛ МЛЯ! Действительно - жаба и памяти не жрет и со структурами работает на ура. ВОЗЬМИ ЖАБА! (она рулит)

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

> (defstruct my-struct color size shape position weight) > > (setq my-object (make-my-struct > :size 'small > :color 'red > :weight 10 > :shape 'square))

Я может быть неправ, но есть такое ощущение что LISP при этом создаст нехилую древовидную структуру. И при любом обращении к какому либо из полей он будет ходить по списку и искать нужный участок. Это иногда допустимо. Но когда есть порядка 1000 - 100 000 таких вот объектов, то без компактного размещения они отъедят кучу памяти. А если надо очень быстро делать итерацию за итерацией, где на каждой итерации создается массив точно таких же объектов но состояние которых зависит от состояния предыдущего массива, но тут и GC загнется. В общем, я сейчас ищу наиболее подходящий язык для моделирования искусственной жизни. :-)

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

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

>А, еще вы забыли упомянуть VB, VBscript и .NET - на них тоже программы написаны, и некоторые даже работают наверное, ну и что? Обойтись без них нельзя разве? Всему вышеперечисленному вами есть достойные альтернативы.

За версией 0.001. С одним разработчиком.

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

>Inferno + Limbo :) и никакой Java

И где это применяется? Нигде. Мечтаем дальше. Нет все Ок, только страшно далеки Вы от народа.

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

>для моделирования искусственной жизни. :-)

Уважаю такие дела, это не говнокод на жабке для коммерсов лабать.

Some say God used Lisp to create the universe, others think the universe (including God) is Lisp.

Sun-ch
()
Ответ на: комментарий от rtvd

> Сам сейчас ищу лучший инструмент для одной задачи. Нужно: 1. высокоуровневый язык 2. эффективная работа с данными типа record 3. желателен контроль типов 4. желательная возможность изменения в runtime (как REPL в Scheme) 5. кроссплатформенность 6. интегрируемость с C/C++ 7. очень желательно чтобы он был функциональным а не императивным

Однозначно erlang.
http://www.erlang.org/
Подходит по всем параметрам, да и отлично зарекомендовал себя например при разработке ejabberd.

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

Не Microsoft, а некоторые безответственные подрядчики. И вообще, не фиг гадюшник-rsdn читать.

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

Памяти большинство Лиспов кушают довольно таки мало, в сравнении с убогими JVM и .NET. Туплы всякие в Лиспе тоже довольно эффективно реализованы, не с Жабкой сравнивать.

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

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

>gcj вполне себе взрослый

ХА. ХА. ХА.!!!

вызывающе неверная информация, между прочим.

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

>ранить те же данные например в родных LISPу списках как минимум расточительно.

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

Подробности по ссылке http://www.cs.umbc.edu/331/resources/papers/Evolution-of-Lisp.pdf

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

и kx.com - это не реляционная база данных. база это kdb, написанная на k. а вот k как раз _очень_легко_ линкуется со всем чем можно.

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

Зачэм списки? Юзаем векторный тип, или непосредственно record.

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

FFI довольно тривиален. Генерить код в runtime можно в байткодовой версии. Но вообще таки да, если нужна динамика и рефлексия, то лучше Common Lisp никого нет. И с памятью он неплохо дружит.

Кстати, компромиссный вариант - ABCL, Kawa, Bigloo/JVM или даже SISC. Собственно, так и живём-с.

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

>OpenOffice: вроде программа свободная, но для расширения возможностей требуется Java. Ситуаций когда для работы программы с открытыми исходниками требуется несвободный "кастыль" быть недолжно

Вот возьми и перепиши куски OO которые зависят от Java. Или Столлман будет переписывать? Если это глупо, то никто не будет этим заниматься, как бы Столлману не хотелось

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

Ощущение ложное. Это будет компактный вектор. Ничуть не менее эффективно чем сишные структуры или тем более жабьи классы.

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

Ты странный. Зайди на /. их и счас там полно, коболовцев, получают свои 200k/year и не жужжат, просто они тихие. Не пиарят свой кобол как Руби, а спокойно поддерживают и получают денежку. В РФ такие же длинные рубли получают те, кто поддерживают всякую муру на Clipper. Переписать некогда, выкинуть жалко а спецов мало и они живут припеваючи. Конечно, если массы знают только PHP, толкового спеца Clipper найти трудно, соответственно он и запросит много

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

Считать себя всем человечеством --- что это, если не признак мании величия. Увы Вам.

guardian
()
Ответ на: комментарий от Sun-ch

>Любую свободу надо защищать. Про это еще команданте Че говорил, а RMS как раз из того времени.

Вот именно, что свободу - нужно защишщать. Это мой выбор, который не ущемляет ничьи права, использовать Java. И какое, в таком случае, право, бородатый самодур имеет указывать мне что использовать, а что- нет? Это _мой_ выбор, использовать что-то или нет. А он, в свете _свободы_ имеет право только давать или не давать советы.

А так - прямо "Скотный двор" Оруэлла выходит :D

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

Считать себя всем человечеством --- что это, если не признак мании величия. Увы Вам.

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

>Вот именно, что свободу - нужно защишщать. Это мой выбор, который не ущемляет ничьи права, использовать Java. И какое, в таком случае, право, бородатый самодур имеет указывать мне что использовать, а что- нет?

Существуют же независимые от тоталитарных сект люди. Есть надежда.

+1

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

>2) Почему свободный .NET есть и активно используется, а свободная реализация более старой технологии Java все еще в ползунках сидит?

Потому что кто-то активно вкачивает в него деньги, не удивлюсь, если дочерние фирмы мертвософта, кому-то надо показать, что Microsoft и .NET это не монополия, дескать есть сторонние реализации. Вот и пиарят везде и всюду. А GNU/Classpath реально никому не нужен, потому что есть Sun JRE работающая везде, даже уже под FreeBSD. Ну и нахера колесо Harmony, Classpath изобретать? А как только Иказу перестанут спонсировать активно, Mono загнется, потому как это пиар. Больше пишут на Python, PHP, Ruby чем на Mono

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

>Сам сейчас ищу лучший инструмент для одной задачи. Нужно: 1.
высокоуровневый язык 2. эффективная работа с данными типа record 3.
желателен контроль типов 4. желательная возможность изменения в runtime
(как REPL в Scheme) 5. кроссплатформенность 6. интегрируемость с C/C++
7. очень желательно чтобы он был функциональным а не императивным

Тебе нужен XSLT. Только не задирай нос сразу, и не умничай, а хорошенько погугли

1. Высокоуровневый дальше некуда
2. Эффективен
3. XML Scheme
4. XSLT реально генерировать в Run-Time
5. Кроссплатформен
6. Либ для C/C++ горы
7. Функциональный

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

ugoday, ничего личного, но вы видимо до сих пор из пеленок не вышли, так как снова идете на войну с ветряными мельницами. Точно так же как в топике про OpenOffice.org.

Я не утверждал что массивов, record'ов и т.п. в LISP нет. Вопрос в том, насколько эффективно они реализованы. Известно, что с C они реализованы здорово, так как C знает сколько занимают те или иные данные и компактно их размещает. Плюс гарантируется очень быстрый доступ. Что до LISP, то есть _ПОДОЗРЕНИЕ_, что там это сделано несколько расточительно либо недостаточно гибко. Например, в Scheme нельзя сделать массив произвольных объектов (либо по крайней мере он не будет поддерживаться на уровне FFI). А в AWK массивы сделаны через hash map (что тоже не самый экономичный список).

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

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

ЗЫ

Пойду пивка попью, водочки уже принял, релакс необходим ;)

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

> Он к libc отношения имеет не больше чем я.

... --- сказал Ульрих Дреппер и грязно выругался в адрес Майкла Микса...

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

>Но лучше всего конечно OCaml. И до памяти совсем не жадный, и туплы правильные.

OCaml конечно отличная штука. Ему бы еще динамическую загрузку модулей (не байткода а нативных) зделали и юникод ... В мета это все есть, но больно уж сырой этот мета ...

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

>>Не верю. Если ты написал скрипт, который порождает жрущие память, _разные_ процессы, и пустил его от рута, может быть. В реальных ситуациях, OOM килер отстрелит плохое приложение в течение нескольких минут.

Не верь - но факт. если в системе заканчивается память + своп = 2.6 ядра и 2.4 с портированым из 2.6 VM - тупо виснут или кидают панику. Хорошим примером является httpd на нагруженном web сервере ;-)

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

>А где ява применяется? У меня нет ни одной жабопрограммы.
а меня нет автомобиля! нах авто!

отполирую и с разхона разобью
ее под окнами отеля Метрополь!
(С) ВВ

головой думать иногда полезно.

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

Ну есть типа

(declaim (type (unsigned-byte 32) a b c)) - директива компилятору

Доступ к сишным структурам

struct c_struct
     {
       int x;
       char *s;
     };

((define-alien-type nil
         (struct c-struct
                 (x int)
                 (s c-string)))

(setf (slot c-struct 'x) 20)
(setf (slot c-struct 's) "a Lisp string"

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