LINUX.ORG.RU

Юбилей у SBCL - 10 лет!

 , ,


0

1

Замечательной реализации Common Lisp'a SBCL исполняется 10 лет.

10 лет назад, 14 декабря 1999 года, в рассылке Common Lisp реализации CMU CL, было анонсировано, что William Harold'у удалось собрать CMU CL систему, имея лишь одну из ANSI-систем для кросс-компиляции. Также было заявлено о внутренних изменениях в реализации и уход от некоторых внешних компонентов и библиотек, отсутствовавших в стандарте Common Lisp. Это позволило уменьшить ядро Common Lisp и портировать его на другие операционные системы.

Все эти наработки дали старт новой ветке развития Common Lisp реализации, названной Steel Bank Common Lisp (SBCL). В то время, как SBCL работал только на Linux (2.х.х) для х86 архитектуры, была начата работа по портированию на FreeBSD.

SBCL's 10th Anniversary Workshop

SBCL official website

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



Проверено: anonymous_incognito ()
Последнее исправление: shahid (всего исправлений: 2)

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

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

Это как его...франчайзинг! А! Не! Вендор локин!

r ★★★★★
()

А по моему стрелок троллит. Что значит не нужна математика? Да конечно не только математика нужна, но практически одну страницу он отрицал это. Потом для ясности сказал, что отрицал не необходимость математики, а её достаточность.

Признаю не достаточна она, но необходима.

Пройдет еще 10 лет и мы будем по горло стоять в 1С программистах (и ПХП кстати тоже).

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

Только вчера общался с человеком который заявил, что он понял, что еу всеравно на чем программировать, он мол уже пробовал PHP и C# и понял, что все ЯП одинаковы. Что такое Лисп он не слышал.

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

А по моему стрелок троллит. Что значит не нужна математика?

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

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

Что такое Лисп он не слышал.

Лисп - это такой кусочек от ghc 6.11 :)

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

Пройдет еще 10 лет и мы будем по горло стоять в 1С программистах (и ПХП кстати тоже).

К стати - ну и что? ЛУговский может сколько угодно распинаться про стейджинговые компиляторы и быдловебпрограмминг - но он сам ваять сайты по стобаксоф не будет, а рынок этот есть. Когда появился первый делфи вполне успешно народ, который только касается программирование (например препод информатики местного дворца пионеров) вполне успешно обеспечили мордами к парадоксу различные бухгалтерии и прочие органы местной власти. А на моей первой работе в банке стоял софт написаны девочкой с экономического факультета на фокспро и был впоне успешно пользуем. А этот рынок нефига не готов платить деньги чтобы этим занимались крутые дядьки пишущие стеджинговые компиляторы, да и дядьки скорее удавятся за любые деньги, а если предложить таки достаточно - все равно начнут писать стеджинговые компиляторы для автоматизации домашней бухгалтерии:))

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

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

Да там яичницу делали под всеми видами наркоты. /me в попытках понять, что авторы пытались донести через псевдокод, разорвал шаблон несколько раз и почти схватил батхерт. Для лулзов почитать забавно, но не более того.

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

> Да там яичницу делали под всеми видами наркоты. /me в попытках понять, что авторы пытались донести через псевдокод, разорвал шаблон несколько раз и почти схватил батхерт.

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

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

Да-да. А еще, как обычно, выясняли, о чем первым делом думает человек: как разбить яйца или зачем их разбивать :) Это тоже поможет прояснить ту самую разницу.

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

>>>а того, кто придумал термин «бизнес-логика» следовало бы медленно и мучительно убить, потом воскресить, и убить снова.

Не, нужен ржавый лобзик и вдоль, вдоль ... 8)

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

Программы живут и развиваются.

Программы работают и их развивают. (Да, знаю, есть еще genetic-like фенечки...)

Не обязаны? нуль_ноль

Да. Попробуй абстрагироваться от текущего момента - N лет назад наверняка были иные требования к ПО, и через M лет тоже будут другие требования. Смотри относительно недавнюю историю даже с ооп: наверняка можно выделить период «до GoF» и «после GoF» :)

Нахрена нужен код

В контексте жизненного цикла по он практически не нужен. Когда в нем возникает необходимость? Только когда ПО «сырое» (нужно вносить изменения, перестраивать что-то где-то, оптимизировать) - это те 10% жизненного цикла в стадии разработки, или в исключительных ситуациях (ошибки) - по времени вообще мизер.

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

> А еще, как обычно, выясняли, о чем первым делом думает человек: как разбить яйца или зачем их разбивать :)

...или кому их разбить %)

P.S. вам что, сегодня на работу не нужно? O_o

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

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

Ты «Coders at work» не читал. У Кена Томпсона, например, с математикой туго было.

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

>но он сам ваять сайты по стобаксоф не будет, а рынок этот есть.

Бред это, а не рынок. Потом такие сайты требуют IE6 их нельзя посмотреть с мобилы, у них сплошной SQL Injection и прочая прочая.

Если есть рынок сайт за 100$ То надо взять 1000 клиентов и сделать для них конструктор и брать по 10$ в месяц с каждого.

То же и про ФоксПро. Я 3 раза в неделю обновляю нашу систему на ФоксПро. Я готов удушить её создателей. Вы рассказываете про какую, то гипотетическую девочку, а я вижу как год за годом мы едим этот кактус. И я не хочу что бы про меня кто, то так говорил. А еще я хочу при поиске работы, имея диплом программиста хоть чем, то отличаться от пейсателя веб морд. (Во многих моделях рынка информация о работнике получаемая работодателем ограничивается только тем, что говорит сам работник. И поверьте мордописатель на словах мегакрут)

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

Потом такие сайты требуют IE6 их нельзя посмотреть с мобилы, у них сплошной SQL Injection и прочая прочая.

А что ты хотел за стобаксаф?

То надо взять 1000 клиентов и сделать для них конструктор и брать по 10$ в месяц с каждого.

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

гипотетическую девочку

Видел бы ты какие у нее шикарные ноги.

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

Этот процесс неизбежен. Когда-то кузнец был мегачудаком в селении. А теперь.... Так и тут - все профессии движутся от владения избраными к попсе.

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

Какую роль математика играет в проектировании?

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

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

>ты походу тоже математик Есть... немного :) Но те математики, про которых ты писал «ужоснах», ни про GoF, ни про xp или rup, конечно, не слыхади - в принципе с тобой я здесь согласен, как и про важность читабельного и структурированного кода... Правда, мне кажется, что последнее - все-таки временное. Читабельность и структура - они ж на «наслаиваются» друг на друга, не «обрастают» требованиями и ограничениями, а как-то «рывками» образуются, под веяния «моды» кодирования (структурное, объектно-ориентированное, функциональное, итд итд итд), я бы даже сказал :)

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

> Ты «Coders at work» не читал. У Кена Томпсона, например, с математикой туго было.

А как он получил магистра в Беркли за год и с какой именно математикой у него было туго?

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

> Да там яичницу делали под всеми видами наркоты. /me в попытках понять, что авторы пытались донести через псевдокод, разорвал шаблон несколько раз и почти схватил батхерт. Для лулзов почитать забавно, но не более того.

Ну а для чего ещё читать ЛОР? :) Для пользы лучше почитать LtU.

Хотя если б не пламенные выступления Луговского на ЛОРе, я б не стал интересоваться функциональным программированием.

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

> Нахрена нужен код, если для его использования обязательно присуствие автора?

Ну, автору он точно нужен... сойдёт вместо пенсии....

sv75 ★★★★★
()

Удивили. «Программирование = Математика». Утверждение столь ложное, что даже затруднительно сказать где оно хотя бы частично верно. Поэтому просто посмотрим на математику как таковую. Так вот в математике (чтобы это не было) существуют разные типы восприятия математических объектов и их связи друг с другом. Вот к примеру такое деление: Style A: Visual (or thinking in pictures, often dynamic) Style B: Analytic (or thinking symbolically, formalistically) Style C: Conceptual (thinking in ideas, classifying) http://sixwingedseraph.wordpress.com/2009/10/27/three-kinds-of-mathematical-t... А значит каждому типу мышления соответствует разный тип построения модели и как следствие разные люди чувствуют себя различно в разных языковых парадигмах. Да вы еще забыли о лингвистах, которые, к примеру, не математики. То есть занимаются языком с гуманитарной стороны. Вот по моим наблюдениям именно эти люди очень хорошо себя чувствуют в Лиспе. Поэтому каждому гуманитарию я сразу рекомендую Лисп как основной язык и именно SBCL.

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

> Там решался философский вопрос - являются ли разбитые яйца теми же самыми яйцами, что и не разбитые.

Объекты могут быть мутабельными (это те самые яйца), немутабельными (которые Всегда Были, Есть И Будут Неизменны, а-ля платон, тоже полезны), и есть еще третий промежуточный вариант (который я правда на всеобщее обсуждение не вынес), который ИМХО сгодится как мутабельное решение известной задачи «квадрат это прямоугольник»

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

> Да-да. А еще, как обычно, выясняли, о чем первым делом думает человек: как разбить яйца или зачем их разбивать :) Это тоже поможет прояснить ту самую разницу.

А вот тебя я не понял. (У разных людей опыт общения с разными — мутабельными или немутабельными — объектами?)

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

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

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

> Юбилейный лиспосрач предлагаю считать открытым. :)

По ЛОРовской традиции необходима какая-либо попытка найти дефект языка. Я попробую.

Допустим, мне нужен быстрый генератор псевдослучайных чисел, например x+=x<<2 (и дальше берем старшие байты х)

Можно ли в лиспе сделать х глобальной переменной и указать ей тип, чтобы:

1. переполнение при сложении и сдвиге не проверялось (нужна скорость)

2. операции боксинга-разбоксинга не осуществлялись (нужна скорость)

Мешает ли сделать так что-либо в каком-то из стандартов лиспа, или это недопиленные реализации?

х предполагается 32 или 64 битной, и для ее сдвига и сложения имеются соответсвующие команды, команд «сложение с учетом боксинга» (или сдвиг) в нашей архитектуре ЦПУ нет  — мы не на спарках, где оно по слухам есть :-)

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

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

не обязательно перечитывать, может у тебя по той теме сформировалось некоторое понимание (как у меня про 3 вида объектов)

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

> а как правильно?

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

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

> он мол уже пробовал PHP и C# и понял, что все ЯП одинаковы

он просто не осилил C#

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

> Да и не надо напрягаться.

надо

там совсем рядом есть один важный филосовский вопрос

итак, мне очень симпатична идея «То Уже Было, Есть И Всегда Будет Таким Же»

однако, при попытке применить это, например рассмотреть «множество всех множеств», получаем жестокий облом

этот облом ведет либо к странным костылям, просто препятствующим построению «множества всех множеств»,

либо к конструктивным идеям «мы можем только строить из того что есть, а изначально у нас есть zero и succ»

при этом доказательства становятся неоправдано сложными, и упускается из виду, что НЕ ТОЛЬКО МЫ строим, а есть еще и некоторая физическая реальность, которая неплохо подходит под «Была, Есть И Всегда Будет Такой Же» хотя бы в некоторых асектах

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

спасибо, видимо пропустил мимо внимания

грубо говоря, можно воспринимать проектирование имитационно - перебирать возможные паттерны (не GoF, а в более общем смысле), и исследовать полученную систему; а можно строить архитектуру формально, исходя из описания предметной области и области решений. второй вариант является вполне себе математическим (во всяком случае, в моём понимании того, чем является математика)

по сути это ведь оптимизационная задача: построить модель, удовлетворяющую некоторым критериям, и минимизированную по некоторым параметрам (например, по количеству сущностей). разве нет?

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

однако, при попытке применить это, например рассмотреть «множество всех множеств», получаем жестокий облом

рассмотри множество всех множеств данного универсума ;)

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

если б не пламенные выступления Луговского на ЛОРе, я б не стал интересоваться функциональным программированием

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

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

> когда ты достиг чего ты хотел, ты уже не тот человек который этого хотел, а сейчас ты уже этого не хочешь:)

Это подтверждает истинность утверждения о «немутабельности» :)

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

>> Там решался философский вопрос - являются ли разбитые яйца теми же самыми яйцами, что и не разбитые.

Объекты могут быть мутабельными (это те самые яйца), немутабельными (которые Всегда Были, Есть И Будут Неизменны, а-ля платон, тоже полезны), и есть еще третий промежуточный вариант (который я правда на всеобщее обсуждение не вынес), который ИМХО сгодится как мутабельное решение известной задачи «квадрат это прямоугольник»


Народ, вы явно не схватываете суть. Посмотрите, как у Кнута в самом начале первого тома описывается вычислительный процесс.

***

... Формально определим метод вычислений как четвёрку (Q, I, Omega, f), где:
I, Omega \subset Q
f :: Q -> Q
forall q | f(q) = q, q \in Q

(Q, I, Omega, f) = (состояние, ввод, вывод, алгоритм)

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

Посмотрите, как у Кнута в самом начале первого тома описывается вычислительный процесс.

Посмотрел. Императивный вычислительный процесс.

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

> Народ, вы явно не схватываете суть. Посмотрите, как у Кнута в самом начале первого тома описывается вычислительный процесс.

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

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

> Я вижу людей которые таки настроены жарить этого гуся.....

нафиг гуся

давай обсудим оптимальные непротиворечивые решения задачи «квадрат это прямоугольник»

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

> рассмотри множество всех множеств данного универсума ;)

c подсказки jtootf нашел вот это:

http://math.boisestate.edu/~holmes/holmes/setbiblio.html#Naive

и там же:

Zermelo-Fraenkel set theory, the most widely studied set theory, does not have a universal set.

так что универсум это не просто :-) а мне надо образовываться...

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

давай обсудим оптимальные непротиворечивые решения задачи «квадрат это прямоугольник»

Поподробнее.

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

> Ты не улавливаешь. Вопрос в том, что нынешние программы - они больше не про вычисление, а про управление (записать в файл, вывести на дисплей и прочее), т.е. побочные эффекты - это их самая суть, попытка от совсем них избавиться на мой взгляд ошибка.

Ну так а я что выше привёл? Вы, кажется, не понимаете смысла словосочетания «побочный эффект». И ещё, неважно, вычисление там, управление, или ещё что-то: всё равно это будет выглядеть как S1 -> S2, где S1 - состояние до выполнения команды, S2 - после. Просто в императивных языках это подразумевается неявно в виде регистров и памяти. По сути программирование на языках ассемблера и есть вот такое _явное_ изменение состояния одной инструкцией, а в императивных языках высокого уровня группа таких изменений оборачивается в statement (если не учитывать оптимизацию).

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

Императивный вычислительный процесс.

К стати когдато я учил одну девочку С++ (вот на такие курсы она пошла в свободное время:)). Так вот обяснить циклический процесс было охренеть как сложно - пришлось буквально раскладывать на спичках.

Это я к этому Кнутовскому «переприсваеваем переменные и возвращаемся к шагу E1».

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

> К стати когдато я учил одну девочку С++ (вот на такие курсы она пошла в свободное время:)). Так вот обяснить циклический процесс было охренеть как сложно - пришлось буквально раскладывать на спичках.

Это я к этому Кнутовскому «переприсваеваем переменные и возвращаемся к шагу E1».

Ну так вот оно :) Кнут как раз математически корректно и описал императивный вычислительный процесс: каждый раз x - это новый x, а старого x уже нет (что не исключает возможности x == x', как это обычно и бывает с «нетронутыми» переменными).

И если уж начинать объяснять такие вещи, то именно так.

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

: всё равно это будет выглядеть как S1 -> S2, где S1 - состояние до выполнения команды, S2 - после.

Пример реализации этого алгоритма сформалированного не по Кнутовски, который так не выглядит.

http://ru.wikibooks.org/wiki/Примеры_реализации_алгоритма_Евклида#Haskell

К стати сам он пишет что «у эвклида этот алгоритмсформулирован не так»

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

> Пример реализации этого алгоритма сформалированного не по Кнутовски, который так не выглядит.

Ну разумеется, я имел ввиду только императивный выч. процесс. В математике и ФП можно часто обходиться без этого.

Кстати, всё это очень похоже на монады State и IO с RealWorld в Haskell:

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