Pull to refresh

Comments 18

Представьте себе сервак, с огроменной вычислительной мощностью, который обслуживает алгоритм, написанный под железо 30-ти летней давности, с низкой производительностью (Математический сопроцессор? — Не, не слышал). И масштабировать его можно только тупым наращиванием мощности. Потому что сам код дописывался вручную на протяжении десятилетий.


Представил. Это — кошмар вселенского масштаба, от которого надо уходить любой ценой. Постепенно, модуль за модулем переписывая код, обкладывая каждый старый и новый модуль тысячами самых заковыристых Unit-тестов. Потому что ситуация, при которой древняя программа принимает решения за людей, которые не понимают, как она работает — классический сюжет для фильма в жанре «техногенный апокалипсис».
UFO landed and left these words here
приоритеты другие

Они могут внезапно и резко измениться :)
Хуже того, это не только «сюжет для фильма в жанре «техногенный апокалипсис»», а ситуация, которая уже происходила в истории, и не поручусь, что сейчас где-то что-то подобное не происходит или не будет происходить. Именно о ситуации «программа принимает решения за людей, которые не понимают, как она работает» Вейценбаум писал в своей (очень, кстати, поучительной) книжке:

Чтобы дополнить поучительную историю, рассказанную Моррисоном, нет нужды обращаться к системам, которые появятся в будущем. Во время войны США с Вьетнамом вычислительные машины, используемые офицерами, не имевшими ни малейшего понятия о том, что происходит внутри этих машин, фактически определяли, какие деревни должны подвергнуться бомбардировке и в каких зонах концентрация вьетконговцев достаточна для того, чтобы «имелись основания» объявить их «зонами стрельбы без предупреждения», т. е. в обширных географических районах летчики наделялись «правом» убивать любое живое существо.
Что-то я не понял смысла последнего раздела про древний проект на лиспе: сначала ода языку ушедшему вперёд задолго до мейнстримов, а в последних абзацах пример того, как проект с лиспа переписали на C#. Какой-то разрыв шаблона или я что-то не понял.
Я так понимаю, речь о том, что Lisp — красивый академический язык. Интересно спроектированный, академически выверенный и т.д. К которому постепенно стремятся остальные языки/платформы.

Но тем не менее широкой поддержки не снискавший, а прикладные вещи проще писать и поддерживать на широко распространённых платформах, т.к. поддерживать проще — да банально людей на рынке больше и они дешевле.
Что, простите? Лисп красив академически с какой стороны? Мы ведь про CL говорим? У него куча совсем не академических, и тем более не выверенных особенностей типа системы рестартов или мутабельность структурок для производительности, подсказок компилятору и прочего.

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

Снова про «Покайтесь, грешники!» «Восславим же!» «О Аллилуйя!» ибо…
ибо
Ибо воистину. Первый Язык, жемчужина посреди простых камней, и нет языков кроме Него. Скобки, в которых пустота — тело Его, мистическое двуединство кода и данных — дух Его, божественная рекурсия — сердце Его. Истинно говорю вам, избегающий света Его есть безумец, вот, свершается кара над главой его, и убогостью отмечены поделия его, подобные пустым глиняным горшкам рядом с хрустальным сосудом благодати Его. Принявший же и постигший истинный свет Его подобен прямой и отточенной стреле, чисты помыслы его и крепка рука его, и благословенны творения его, дарующие радость и утоляющие печали, ибо одухотворены духом Его и отмечены благодатью Его.

В этой статье автор подробно описывает, почему переписал Реддит с Лиспа на Питон. Делает анализ, описывает плюсы и минусы. У вас же последний раздел ни о чем — ну переписали, и что с того.
Сам последнее время вынужден писать на C# 6, но только что бы содержать семью. Но вот никак не могу взять в толк зачем переносить с Lisp на C# когда есть F#?
А чтение во время выполнения позволяет программам общаться посредством S-выражений, что не так давно было заново изобретено как XML.

Объясните кто-нибудь, при чём тут XML, как наличие функции типа «eval()» (а я так понимаю, речь идёт о ней?) помогает читать XML?
Возможно, в оригинале речь шла о JSON или чём-то подобном?
Ааа, подмена синтаксиса lisp под синтаксис xml… Забавно, но в продуктив такое же не пустишь — это ж будет огромная дырень в безопасности…
Да и не очень понятно, при чём тут именно XML, так наверное можно любой текстовый формат читать… А теоретически и не только текстовый…
Не подмена, а переизобретение интерпретации в разных применениях где это удобно. Про дырень в безопасности — это зависит от многих факторов, запуск кода в безопасном окружении никто не отменял. Плюс не обязательно именно любой исполняемый код разрешать — можно его и валидировать и что угодно делать, зависит от требований, времени и фантазии.
Причина перехода — использовался старый компилятор Lisp, который не давал высокой производительности.

Так а в чем была проблема просто взять новый, современный, быстрый компилятор типа SBCL? Хочется подробностей.
Надо было переписывать на Clojure — вот про такой опыт было бы интересно почитать!
Сейчас есть куча компиляторов разных Lispов под разные платформы (в том числе и .net). Не понятно, почему понадобилось переписывать именно на C#?
Only those users with full accounts are able to leave comments. Log in, please.