LINUX.ORG.RU

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

 


1

5

Я так понимаю это суждение относится к особенностям реализации а не к языку. Но есть же clisp, поддерживающий CFFI и имеющий свой FFI, который может перенять стратегию паразитизма python на C. Вполне годен для написания мелкой скриптоты, а там и до медиаплееров, жаббер-клиентов рукой подать. А через некоторое время стабилизируется поддержка многопоточности...

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

Из-за батареек?

Из-за синтаксиса.

Если говорить именно о батарейках, то колличество вопросов/ответов на stackoverflow мне представляется более существенным.

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

и социальные(т.н. эффект снежного кома).

Я такую забавную штуку наблюдаю: живые лисперы либо как-то связаны с лисповыми альма-матер типа MIT или CMU, либо вообще не программисты по образованию. У нас вот работают дядьки из CMU, electrical engineering, nuclear engineering и даже Ph.D по философии. Т.е. «реальный» программист, с университетом за плечами, один.

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

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

У нас вот работают дядьки из CMU, electrical engineering, nuclear engineering и даже Ph.D по философии.

Это те самый железячники/VHDLщики, которые начали изучать Лисп уже в вашей конторе? :)

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

Это те самый железячники/VHDLщики, которые начали изучать Лисп уже в вашей конторе? :)

Нет, хотя один железячник вообще молодец, на лиспе вполне прилично шпилит уже. А ещё он BPU Нехалема писал.

mv ★★★★★
()

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

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

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

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

т.е как всегда затруднение в нахождении и усовершенствовании способа выражения .

ps/ подобно функции акермана где перве значения это 0-добавление константы,1- умножение на константу,2 - константая степень, 3 - в стандартной натации нет записи поэтому и оперировать (ибо термин плохоизвестен) сложно - при этом если допустим сделать например индекс спереди сверху то - вуаля - так и язык - если относится лиспу как низкоуровневу ассемблеру каждый раз записываю всё разворачивая до базоваго уровня - то и засада . в отличии от языков с синтаксисом в лиспе это не обязательно.

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

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

Типичный бред человека, который лисп только на картинках видел.

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

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

obvious fix.

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

типичная защита.

если ты на лиспе пишеш не используя те фичи которые отличают его то в чём смысл его использования?

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

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

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

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

Типичный бред человека, который лисп только на картинках видел.

Пол Грэм тоже по картинка Лисп знает?

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

Пол Грэм тоже по картинка Лисп знает?

«по картинка»

qulinxao, залогинся-ка ты обратно и не смей больше сидеть под анинумосом, душегуб проклятый!

anonymous
()

Если Лисп - лучше и удобнее всех других языков, то почему на нём не пишут операционные системы, системы управления базами данных, сервера приложений, почтовые сервера, веб-сервера, сервера обмена мгновенными сообщениями, игры, браузеры, почтовые клиенты, клиенты обмена мгновенными сообщениями, CAD'ы, CASE'ы, CAM'ы, компиляторы, среды разработки, системы обработки аудио, системы обработки графики, системы обработки видео, системы 3D-моделирования и так далее?

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

Пол Грэм

Это тот горе-«лиспер», чья единственная заслуга - Yahoo Store, из которого всю упоротую скобкоту погнали ссаными тряпками при первом же случае и переписали на нормальный язык?

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

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

Архимаг на любом языке пишет, как на похопе. В том числе и на лиспе

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

Лол. Этот горе-лиспер заработал на горе-лиспе миллионы долларов и славу. А что ты сделал на своем C#?

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

лисп простой как полено.

Тебе напомнить, как ты на лиспе читал файл в память? Не хочешь, да? А я всё-таки напомню:

(deftype u32 () '(unsigned-byte 32))
(deftype non-negative-fixnum () '(integer 0 #.most-positive-fixnum))

(declaim (inline swap-u32-bytes))
(defun swap-u32-bytes (x)
  (declare (type u32 x))
  (logand
    #xffffffff
    (logior
      (ash (ldb (byte 8 24) x) 0)
      (ash (ldb (byte 8 0)  x) 24)
      (ash (ldb (byte 8 16) x) 8)
      (ash (ldb (byte 8 8)  x) 16))))

(defmacro with-array-data ((var array) &body body)
  "Binds ARRAY's data vector to VAR"
  #-sbcl
  (let ((a (gensym)))
    `(let* ((,a ,array)
            (,var (make-array (array-total-size ,a)
                    :element-type (array-element-type ,a)
                    :displaced-to ,a)))
       ,@body))
  #+sbcl
  (let ((start-var (gensym)) (end-var (gensym)))
    `(sb-kernel:with-array-data
         ((,var ,array) (,start-var) (,end-var) :force-inline t)
       (declare (ignore ,start-var ,end-var))
       ,@body)))

(deftype data-vector (type)
  `(#+sbcl simple-array #-sbcl array ,type (*)))

(defun read-u32-matrix (filename m n &optional reverse-endian)
  (declare (type (or pathname string) filename)
           (type non-negative-fixnum m n))
  (with-open-file (in filename :element-type 'u32)
    (if (= (file-length in) (* m n))
      (let* ((array (make-array (list m n) :element-type 'u32)))
        (declare (type (array u32 (* *)) array))
        (with-array-data (contents array)
          (declare (type (data-vector u32) contents))
          (read-sequence contents in)
          (when reverse-endian
            (map-into contents #'swap-u32-bytes contents))
          array))      
      (error "File size does not match requested matrix size"))))

Дооооо, простой, как полено. Куда там до него всяким б-гомерзким крестам с их fopen, fread и fclose.

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

Этот горе-лиспер заработал на горе-лиспе миллионы долларов

Пруф или пиздабол.

и славу

Славу упоротого неадеквата?

А что ты сделал на своем C#?

Си-шарпом я не интересуюсь. Моя компетенция — С/С++/Java.

Мы пишем операционные системы, которые работают везде — от смарт-карт, мобильников, DVD-проигрывателей до мощнейших кластеров, АЭС и космических аппаратов. Без нас твой компьютер был бы просто грудой железок. Мы обрабатываем аудио и видео и отрисовываем 3D-модели. Благодаря нам компьютеры сегодня находятся на службе у искусства. Мы моделируем, программируем, обсчитываем, анализируем физические, химические и биологические процессы. Без нас не было бы современной медицины и энергетики. Мы обрабатываем огромные массивы данных, обеспечивая логистику, бизнес, экономику и телеком. Без нас ты бы не сидел на ЛОРе и не писал бы чепухи. Мы обеспечиваем оборону. Без нас ты бы ходил в мечеть, носил бы бороду и восхвалял Аллаха. Если бы остался в живых.

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

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

Врать то зачем? Не надо преподность этот код как «просто прочитать файл». Он делает намного больше. Даже мне не-лисперу это понятно.

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

Это бред собачий.

Замечательная аргументация! Сразу нейтрализует все аргументы противника!!!

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

Ты хотя бы как минимум прочти про него в википедию.

(+ я не лиспер, пишу на Java и Python на работе), но ты так упоролся, что готов каждого назвать лиспером и наброситься на него с криками Алла^W, ну ты понял.

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

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

Как ты заебал одну и ту же хрень постить каждый раз.

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

Минимум 2/3 кода — это как раз чтение файла. С объявлением кучи костылей и использованием implementation-dependent хаков. И это всё против одного вызова fread() в Си. Мощный язык, ничего не скажешь, ага.

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

Как ты заебал одну и ту же хрень постить каждый раз.

Меня развлекает, как у вас каждый раз по-новой разворачивает пердак. Из-за того, что ответить нечего.

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

А у тебя какая была аргументация, когда ты сказал что Архимаг пишет на всех языках как на PHP? Никакой! Вот я и сказал, что ты несешь бред. СОБАЧИЙ БРЕД. Борозди просторы космоса дальше.

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

А у тебя какая была аргументация, когда ты сказал что Архимаг пишет на всех языках как на PHP? Никакой!

Для разумного и мыслящего оппонента в данном случае аргументация не нужна — достаточно взгляда на код.

Мне жаль, что Вы, как оказалось, к этой категории не относитесь.

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

Как я и говорил — по теме ответить нечего. Слив засчитан.

anonymous
()

Детский сад, младшая группа

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

Си-шарпом я не интересуюсь. Моя компетенция — С/С++/Java.

Быдлокодер. У программиста в компетенции - предметная область. В языках программист по определению разбираться должен.

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

Т.е. что делает код ты не понял?

В твою игру можно играть вдвоем, к примеру, я могу привести код JBoss и сказать, что оно ... плохо написано, так как на баше я мог бы написать сервер в одну строчку. У тебя именно такая детская аргументация. Ты не понимаешь, что делает весь код и приходишь к неправильным выводам.

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

Проекты архимага я смотрел и ничего ужасного там нет.

Собственно, приведите ссылку на любой файл, где по вашему мнению, у него ужасный php-код.

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

Извини, если спутал. Из диалога я решил, что это был ты. Возможно, что я ошибся.

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

Быдлокодер. У программиста в компетенции - предметная область.

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

Позвольте спросить: тогда на каком основании Вы считаете возможным Ваше участие в дискуссии на тему, в которой совершенно некомпетентны?

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

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

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

Не обращай на него внимания, это его любимая тема :)

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

Предметная область — компетенция постановщика и бизнес-аналитика. Программист же оперирует алгоритмами и структурами данных.

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

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

Куда там до него всяким б-гомерзким крестам с их fopen, fread и fclose.

Это не запись файлов, это сериализация матриц u32 с возможностью поменять endianes. Можете написать решение на крестах, чтобы посмеяться :)

На хаскеле, например, есть каноничное решение в виде binary:

import Data.Word
import Data.Array
import Data.Binary

type MatrixU32 = Array Int (Array Int Word32)

writeMatrixU32 :: FilePath -> MatrixU32 -> IO ()
writeMatrixU32 = encodeFile

readMatrixU32 :: FilePath -> IO MatrixU32
readMatrixU32 = decodeFile

т.е. писать нечего - binary уже умеет сериализацию чисел (в big-endian), массивов и всего остального. Другое дело, что любой тип можно научить сериализироваться в одну строчку, binary-derive умеет интроспективно смотреть на структуру данных и писать код сериализации. Вот лично мне в CL таких вещей не хватает - автоматических print-object, serialize и т.п. Конечно, тут это всё решается написанием соответствующих derive-* макросов (для serialize можно смотреть информацию о классах из MOP), но хочется проверенного и всеми используемого решения.

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

решение на крестах

Можно начать с with-open-file - заюзать RAII, определив открытие в конструкторе и закрытие в деструкторе (уже весело).

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

Это не запись файлов, это сериализация матриц u32 с возможностью поменять endianes

Это не сериализация, а десериализация (чтение).

Можете написать решение на крестах, чтобы посмеяться :)

Давай ты объяснишь, что _точно_ делает этот код. Думаю, будет смешно.

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

Можете написать решение на крестах, чтобы посмеяться :)

ifstream( fname, ios::binary ).read( buf, m * n * 4 );

для изменения endianess - аж целый цикл придется добавить для вызова bswap_32, оборжаться просто :)

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