LINUX.ORG.RU

Яр 0.4.0 разочаровывающий

 ,


2

4

Выложил очередной релиз Яра, «разочаровывающий». Дело идёт к заморозке проекта, работаю над ним до 1 февраля, а потом хлеб насущный буду зарабатывать. Найти спонсора за два года не удалось. Видимо, дело в недостаточной вере в успех, т.е. в отсутствии ощущения зрелости проекта, при которой можно называть сроки и нести за них ответственность.

Из последних конвульсий: теперь clcon поддерживает также CCL, а не только SBCL. Ну и Яр, соответственно, собирается и запускается под CCL под Linux и Windows. Зато я что-то сломал и образ SBCL под линуксом не сохраняется. С точностью до системы знаю. Впрочем, не суть важно.

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

Если вдруг кому интересно, за последние месяцы немного поразбирался в SBCL, и пришёл к тому выводу, что можно наляпать много нового и интересного, но поскольку там всё внутри черт-те в каком состоянии, причём хронически, то по сути дела работать ничего не будет. Красивую показуху сделать можно. Я сделал черновик иммутабельных хеш-таблиц и струтур с рассуждениями о типах в них, а также сильно улучшил пошаговую отладку. После этого я пообщался с одним из разработчиков и, оказывается, они тоже мечтают про отладчик а-ля Visual Basic, но сделать его быстро не могут, т.к. примитивы, на которых он должен быть построен, низкокачественные. Сейчас, судя по коммитам, они их начали исправлять. Дай Бог, чтобы у них получилось. Однако я не вижу причины, по которой не может существовать инструментирующий отладчик для CL. Более того, он уже существует и называется lispdebug-0.92 - жаль, что лицензия подкачала.

Также отчасти разобрался в работе вывода типов. Там есть два механизма - собственно type inference и constraint propagation. Если о первом я имею кое-какое представление, то второй - вообще тёмный лес. Потому и захотел отладчик, чтобы лазить туда не с голыми руками, а вооружившись удобным инструментом. Но - не склалось у меня с SBCL.

В итоге теперь у Яра нет отладчика и не на что опереться в плане вывода типов. Может быть, попробую сделать «Яр на базе Typescript», хотя при отсутствии материальных ресурсов думается на эту тему тяжело - ясно, что создать серьёзный ЯП с инфраструктурой - это достаточно трудоёмко. Более трудоёмко, чем казалось сначала по факту написание за две недели транслятора с 1С 7.7 в CL.

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

Просто по темпам развития понятно, что они меня съедят в любом случае. Ну и честно говоря, я ожидал, что меня будут смешивать с говном на форумах за идею русскоязычного языка программирования. Но то, что к этой идее окажутся холодны Росатом, ФПИ, Касперский, 1С и фонд «Русский Мир» - к этому я был морально несколько не готов. Такое чувство, что никто не догоняет, что за вытеснением из обихода «неэффективного» русского языка может произойти и вытеснение с территории и самого населения, говорящего на «неэффективном» языке. Вроде как и Казахстан уже на латиницу переходит, и на Украине черт-те что. Нет, Россия спит. Впрочем, в одном месте мне указали на соседний вход и сказали, что нужно обязательно писать заявку на грант, но почему-то моральных сил пока нет. Может быть, через некоторое время появятся.

Попробую за оставшиеся 10 дней сделать для CCL инструментирующий пошаговый отладчик - тредов не будет, уж извините.

★★★★★

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

Подозрительно. А не макофаг ли ты часом? У нас тут таких не любят :)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от den73

Я впечатлен вашей разносторонностью: вы являетесь фриком не только в программировании, но и в энергетике!

anonymous
()

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

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

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

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

зато выпилено все лишнее и запутывающее

тогда уж лучше хаскель взять.

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

Наверное, ты прав, но это решение нужно было принимать 2 года назад. Теперь у меня уже 1 мег исходников и 0 времени.

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

Но ни у кого не нашлось жалких 50 миллионов долларов на минимальную опытную установку. А это не только энергия, но и борьба с опустыниванием.

а меньшими расходами нельзя ли обойтись, поминимальнее? пускай и ваттами, но с понятным эффектом и подешевле в опытной модели?

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

Очевидно, что дельность идеи никак не связана с получением денег. Секрет в чём-то другом, но я пока не понимаю, в чём.

и эту идею в таком вот лисп-симуляторе на дельность проверить, вчёрне — до подробной реализации.

Секрет в чём-то другом, но я пока не понимаю, в чём. В России, Говорят, что секрет в интегрированности. А в мире - не знаю.

это как? типа disruptive vs. supportive technologies // Дилемма инноватора?

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

дело конечно твоё, что и как с этим дальше делать. и делать ли вообще.

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

а «юзерспейс» напилить в каком-то language workbench: MPS, Xtend/Xtext или вот Strageto/XT \ Spoofax, и отработать полезность для конечного пользователя его юзкейсов.

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

по крайней мере, выписать отдельно тезисами, + и - ядра и бекенда как реализации и юзерспейса, батареек и юзкейсов, вот этого вот всего.

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

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

для протокола.

как-то так могла бы эта программа — симулятор/физ. патенто пониматель и моделлер — быть написана.

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

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

Ведь Javascript не рынок продвинул, а административный ресурс. То же самое произошло с Си. Да и с CL в своё время это случилось - его сначала административно приняли, а потом административно же закопали. Рынок решает только для тех, у кого денег мало.

Ты всё перепутал. Рынок для того же си - есть следствие си, а не причина. Вот именно с CL такого не случилось. Хипстотота и идиоты пытались его впарить, и это даже по началу получилось, но время всё расставило на свои места. Мусор оказался в мусорке.

А js всё сложное. Действительно - его появление и распространение есть чистой воды «продвинул рынок», но. Этого мало.

Слишком много совпадений, что все «продвинутые рынком» - есть дети си. Весь топ - дети си. Даже как бы не пихали этот дерьмо-пистон везде и всюду, как бы школоте мозг из не лочили - оно никак не вплывёт.

а потом административно же закопали

Ты сам же и помножил ЦЛ на ноль. Попробуй закопать си. Закопалка сломается. А мусор всегда можно откопать, а потом закопать. И никто этого даже не заметит.

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

Ты одарён, но прогнулся под «на кириллице впарить проще», «я ведь не быдло, я одарён - поэтому я возьму цл». Как это называется? Это называется позерство. Как только у тебя появляются хоть какие-то намёки на «я не смотрю/слушаю/использую то, что используют все, всякое быдло и прочее» - ты потерян, ты расписываешься в собственной посредственности.

Почему тебя потянул на маргинальный мусор? Ты можешь это объяснить? Зачем нужен ЦЛ, зачем нужен вообще этот недоязык. Что он даёт по сравнению с нормальным языком? Я читаю твои рассуждения, но ни разу не видел даже намёка на ответ.

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

Вот ведь написал ты фигни всякой. Я взял CL за его достоинства, я про них писал достаточно много. Если ты не видел - это фильтр на твоей стороне, не могу ничем помочь.

А мусор всегда можно откопать, а потом закопать.

И потом снова откопать. Боцман воскликнул: «и так тоже так больше жить нельзя», и откопал стюардессу.

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

даёт гибкость, livecoding и REPL. фичи используются синергично, что доставляет. и заставляет и далее искать такие синергии и системные эффекты, искусственно их синтезировать.

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

Я взял CL за его достоинства

Нет.

я про них писал достаточно много.

Ретранслировать агитки много ума не надо. Я вижу твои изваяния, вижу, что это выглядит как дерьмо. Это я не вижу, либо ты не видишь? Я не понимаю.

Ещё одна проблема комнатных гениев. Да, ты можешь делать отсылки к тому, что «быдлу не понять» и всё такое, но. Это твоя задача доказать нужность, а не отмазываться тем, что «я не могу тебе объяснить», «ты сам виноват, что не понял».

И потом снова откопать. Боцман воскликнул: «и так тоже так больше жить нельзя», и откопал стюардессу.

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

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

Я задам ещё раз свой любимый вопрос. Ты можешь мне показать конкретный пример. Не базворды, не лозунги, а именно «вот есть фича и она даёт то-то, а другие такого не могут»? Я всю свою жизнь задаю этот вопрос, и знаешь что? Ни разу на него не получил ответ. Может ты это исправишь.

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

Что до продукции компании Apple, то что-то не могу припомнить, чтобы Apple была знаменита своими именно софтверными разработками

имеется ввиду Apple Research/ Apple Cambridge

Apple Cambridge: Dylan, Kaleida ScriptX, Newton NewtonScript, ThinkPascal/ ObjectPascal, Apple Pascal (UCSD fork), HyperCard и HyperTalk, и т.п. NeXT: Objective C, NeXTSTEP, OpenStep,WebObjects,..., CoreData , FileMaker (Apple Subsidiary)

AppleScript, наконец :))

A/UX, и Bullshit language[/rul], и MAE :)

кодеварриор форева :)

энджой ёр ]энлайтмент

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

Всё, Зин, на грубость нарываешься, всё, Зин, обидеть норовишь :) Давненько я никого не добавлял в игнор-лист :)

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

Я тебя не обижаю. Пойми простую вещь - если ты определял себя за «выше» - ты должен соответствовать. Если ты ноешь, игнорируешь и мажешься - ты слабак, а значит ты явно что-то перепутал.

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

Если ты тряпка - ты жертва, и всегда ею будешь. Как ты всем докажешь, что лисп нужен, кириллица нужна? Заигноришь всех? Будешь ныть «меня обижают»? Что за глупости.

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

ОК, вот тебе несколько фич:

1. Образ лиспа есть фреймовая сеть, база знаний символов и символьных вычислений. Хочешь функцию интерпретированную? бери символ, находи исходный код этого символа и его интерпретируй. Хочешь скомпилированную? бери свойство символа со скомпилированным кодом, и напрямую исполняй.

образ процесса сишечки — мёртвый, и даже если присоединиться отладчиком — после стирания типов компилятором если символов нет, без тайпинфо сильно не попляшешь. но даже если edit & continue получится, язык не гибкий и перезапустить такой код сильно не получится, см. далее.

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

2. Объектная модель CLOS и «Art of MetaObject Protocol». Методы не принадлежат классам, в итоге нету проблемы «хрупкий базовый класс». Это не методы класса, а специализация родовых, обобщённых функций. Наиболее специфичный метод, поиском которого, диспетчеризацией можно управлять. Отсюда простота написания before/after/around — предусловия, постусловия, инварианты или свой предикат для комбинатора методов.

2.5. CLOS больше похожа на фреймовую сеть, упрощённую в чём-то. как и прототипное ООП в JS фреймы гибче чистого ООП в чём-то, в чём-то хуже.

3. Объектная модель CLOS, MOP. Метод Change-class позволяет у экземпляра класса, инстанса сменить владельца (например, при миграции данных в ООСУБД изменился предок, переназначили предком теперь другой класс).

есть метаклассы же.

4. Объектная модель CLOS, рефлексия и интроспекция. Лёгкость написания например сериализации по метаданным интроспекции и интерцессии.

5. Объектная модель CLOS, интерфейсы высшего порядка статья на эту тему от François-René Rideau fare https://github.com/fare/lil-ilc2012 https://github.com/fare/lil-ilc2012/ https://github.com/fare/lisp-interface-library/

6. Сигнальный протокол ошибок. Исключения / ошибки error не разматывают стек, поэтому стратегия condition и реализация обработки ошибок разделены. Их возможно комбинировать, перезапускать с возвратами, починить в отладчике и перезапустить.

7. Макросы которые пишут макросы которые пишут макросы. compiler-macro для оптимизации. лёгкость метапрограммирования.

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

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

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

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

P.S. поэтому всё же побудь пока в игноре и остынь :)

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

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

в одном языке эти фичи одни, архитектура «системы свойств» такая и композабельность свойств — такая-то. в другом — другая, и нужна целая технология, процесс, методика как сделать всё тоже самое, чтобы не сломать системные свойства.

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

другой вопрос про практически полезные юзкейзы, и контекст этих юзкейзов.

если в альтернативе проблема не возникает — эта проблема решена на метауровне.

ты не пытаешься доказать по отдельным фичам, или целиком: технология Х нужна, Y — тоже. просто в целом такая комбинация фич приводит к тому, что на этом наборе фич что-то гибкое сделать просто, а в отсутствие таких фич либо их композабельности — сложно.

или пытаться повторить тоже самое --- нужно больше шпайса ресурсов, экстенсивно. а не более гибкая/грамотная архитектура --- интенсивно.

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

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

Это идентично для любого недоязычка. Лисп тут неприделах.

Всё это работает в рамках лабы, но лисп никогда и не выходил за эти рамки.

Плюс - это лишь твои инсинуации на тему. Для меня твои рассуждения про «мёртвый», «живой» и прочее - ничего не значат. Ты пытаешься выдать это за какие-то объективные плюсы, но это не так. Ты не можешь напрямую сравнивать недоязычок для лабы и си, ведь ты не можешь написать и сотую долю от того, что написано на си( и я говорю не про кол-во кода).

2. Объектная модель CLOS и «Art of MetaObject Protocol». Методы не принадлежат классам, в итоге нету проблемы «хрупкий базовый класс». Это не методы класса, а специализация родовых, обобщённых функций. Наиболее специфичный метод, поиском которого, диспетчеризацией можно управлять. Отсюда простота написания before/after/around — предусловия, постусловия, инварианты или свой предикат для комбинатора методов.

Опять же, мне не нужна агитка. Мне нужен пример. Что именно это даёт. Проблемы, которые существуют в фантазиях адептов - для меня проблемами не являются.

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

2.5. CLOS больше похожа на фреймовую сеть, упрощённую в чём-то. как и прототипное ООП в JS фреймы гибче чистого ООП в чём-то, в чём-то хуже.

Это всё лозунги. Меня мало волнуют всякие фентезийные «лучше». Лучше - приведи пример. Не можешь - лозунги.

Я могу тебе привести миллиарды примеров сравнения жс и С++, чем С++ лучше. Мне достаточно назвать одно - статическая типизация, при этом существующая не где-то так, а на уровне близком к уровню синтаксиса. От этого я получаю миллионы фишек, в частности - статические инструменты обеспечивающие мне удобную работу с кодом. За примерами далеко ходить не надо - комплишн, статическая валидация кода, инвариантов, я могу описывать инварианты на уровне типов и прочее.

3. Объектная модель CLOS, MOP. Метод Change-class позволяет у экземпляра класса, инстанса сменить владельца (например, при миграции данных в ООСУБД изменился предок, переназначили предком теперь другой класс).

Опять лозунги. Конкретный пример и описание того, что он даёт. Ты этого не сделал.

4. Объектная модель CLOS, рефлексия и интроспекция. Лёгкость написания например сериализации по метаданным интроспекции и интерцессии.

Колхоз убогий. Никому не интересен подобный колхоз. Он реализует на чём угодно.

Язык отличается от колхоза тем, что у меня всё имеет отражение на уровне языка, на уровне кода. Динамический колхоз - никому не интересен. И он есть в любом недоязычке - это прямое следствие его убогости. Это не плюс лиспа.

И опять же - лозунги есть, примеров нет.

5. Объектная модель CLOS, интерфейсы высшего порядка статья на эту тему от François-René Rideau fare https://github.com/fare/lil-ilc2012 https://github.com/fare/lil-ilc2012/ https://github.com/fare/lisp-interface-library/

Меня мало волнует этот мусор. Меня интересует одно. Вот, что нам нужно сделать. Вот, как мы можем сделать это на лиспе. Чёткие примеры, лучше в сравнение с другими, но это даже не нужно - ведь они всё равно будут дерьмом.

Зачем ты мне даёшь ссылки на какую-то мусорную макулатуру? Я у тебя это просил? Нет.

6. Сигнальный протокол ошибок. Исключения / ошибки error не разматывают стек, поэтому стратегия condition и реализация обработки ошибок разделены. Их возможно комбинировать, перезапускать с возвратами, починить в отладчике и перезапустить.

Опять лозунги, а нужны примеры.

7. Макросы которые пишут макросы которые пишут макросы. compiler-macro для оптимизации. лёгкость метапрограммирования.

Я тебе ещё в прошлом пункте хотел написал, но сдержался. Сейчас не буду. Меня мало интересует рассуждения колхозников об какой-то оптимизации. Когда мир увидит хоть одно конкурентоспособное творение на лиспе - тогда приходи, и вещать мне тут о том, что они где-то есть - не нужно. Если что-то есть - оно имеет отражение везде, а если везде нет, а в твоих фантазиях есть, то ты явно перепутал реальность.

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

У меня уже седалище полыхает - я не могу сдерживаться. Это уже 7 пункт и все являются лозунгами, хотя я этого не просил, а просил совершенно иного.

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

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

Я не знаю ты или не ты там выше был, но пациент смог за 7 пунктов сделать хоть одну отсылку к реальности - отладку, но это не имеет смысла. Сравнивает он жопу и палец, а значит манипулирует. Так же, разговор о чём-то в отрыве от реальности - глупость. Удобнее, проще, лучше - где проявления всего этого в реальности?

Вот есть лозунг «статическая типизация лучше», и мы видим проявление этого в реальности. Не существует ни одной значимой поделки на динамическом языке, вернее может они и есть, но их никто не видел. А даже если и видел, то их единицы.

И так со всем. Всё имеет отражение, всё имеет применение. Если это действительно есть, если ты действительно понимаешь - что и зачем нужно, то ты видишь эти отражения, видишь эти применения. И ты можешь о них поведать.

А городить портянки абстрактной муры - её будут слушать только сектанты. Они такое любят.

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

При чём тут выше, ниже, это ты всё пытаешься вывести меня на эти категории, видно, тебе нужно с кем-то померяться у кого длиннее.

Неверно. Это ты пытаешься себя оправдать.

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

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

И это не «померяться». Это банальная необходимость.

Вообще, нет ничего глупее, чем пытаться что-то доказать всем.

Вот опять, ты либо манипулируешь, либо уже попал в ловушку.

Ты приписываешь мне левые слова(«всем»). Ты подменяешь понятия. Доказательство не должны принимать все, доказательство - это не есть заставить всех. Доказательство существует отдельно от принятия этого кем-то.

Миру не нужен лисп. Что ты можешь делать? Принять, либо доказать обратное. Но доказать ты сможешь что-то только тогда, когда это действительно так. Все остальные случаи - насаждение, но у тебя нет на это ресурсов.

И так происходит всегда. Люди имеют какие-то идеи. Они идут в мир и мир их не принимает. У тебя есть несколько путей. Убедить себя в том, что «ты не должен» и не думать ни о чём. Подумать, может действительно твои идеи несостоятельны. И уже потом, если это действительно так - доказать это. Другого пути нет.

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

Нет, ты просто оправдываешься. Оправдания - следствие слабости, что противоречит твоим определениям себя. Либо им соответствуй, либо ты просто шизофреник.

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

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

Ну ты и долбоеб.

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

вот тебе конкретный пример: ООСУБД GOODS Константина Книжника. писалось как диссер на С++. однако, он применил АОП для чего построил МОП в С++ (по образу МОП из CLOS). далее на этом МОП он изобразил рефлексию для сериализации, а АОП применил для стратегий управления транзакциями и многопоточностью. у него всё получилось, и на С++ с помощью нескольких хаков.

но в CLOS этот принцип появился изначально, и если бы он писал подобную ООСУБД на CL — получилось бы без хаков и стройнее.

вывод: МОП и его принципы полезно знать, даже если в твоём языке (например, С++) его нет. польза очевидна.

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

Для меня твои рассуждения про «мёртвый», «живой» и прочее - ничего не значат.

потому что ты не пробовал оба подхода, и не знаешь разницы. и сравниваешь жопу с пальцем.

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

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

а в том, какой класс ошибок на нём в принципе не возникает. из-за продуманности технологии и системной архитектуры.

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

Зачем ты мне даёшь ссылки на какую-то мусорную макулатуру?

чтобы ты её читал, думал и понимал, лол. а не тупо «смотрим в книгу, видим фигу».

Вот, что нам нужно сделать. Вот, как мы можем сделать это на лиспе. Чёткие примеры, лучше в сравнение с другими, но это даже не нужно

-- ведь ты эти примеры не читал, не уловил и тебе они не понятны.

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

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

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

Миру не нужен лисп. Что ты можешь делать? Принять, либо доказать обратное.

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

предположение «не, я не пил водку по утрам, и поэтому твой вопрос не имеет смысла» — жалкие отмазки сектантов, ниасиливших в логику контрарные и контрадикторные утверждения. 1111!!!

ты почему-то думаешь, что можно рассуждать за всю сеть весь мир, нужно ему или не нужно. а нужно или не нужно — тебе. потому что ты умеешь или не умеешь это применять.

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

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

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

и решать эти задачи — невозбранно достигнув желаемого, ага. и если на другом языке это выглядит долго и мучительно — сменить инструмент, а не скакать на дохлой лошади.

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

Зачем ты пытаешься мне пастить агитки и давать ссылки на какой-то мусор.Это талмуд для тебя, а для меня - мусор.

Зачем мне читать лабы каких-то колхозников? Я не понимаю.

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

Чётко, вот у меня было так на С++, а стало так на лиспе. Всё это на базе конкретных примеров.

вывод: МОП и его принципы полезно знать, даже если в твоём языке (например, С++) его нет. польза очевидна.

Вывод. Ничего вразумительного нет. Агитки мне ретранслировать не нужно - я тебя об этом не просил. Я просил тебя что? Примеры. Ты их показал? Нет. Попытайся показать, либо признай, что их нет, либо ты не можешь их показать. И я буду искать другого.

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

потому что ты не пробовал оба подхода, и не знаешь разницы. и сравниваешь жопу с пальцем.

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

Все эти «не попробуешь - не узнаешь» - это типичные сектантские повадки. «а если не узнаешь, то ты плохо пробовал» - дальше будет это.

а в том, какой класс ошибок на нём в принципе не возникает. из-за продуманности технологии и системной архитектуры.

У нас есть реальность. Есть си - на котором возникают все классы ошибок и нет гибкости, и есть весь мир на нём. Есть лисп, который гибкий, без многих ошибок, но на нём ничего нет.

И тут два варианта. Либо вы все - бездарные, либо всё это - ваши фантазии. Хотя как бездарность может выбрать правильную сторону - мне неясно. Т.е. вариант на самом деле один.

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

чтобы ты её читал, думал и понимал, лол. а не тупо «смотрим в книгу, видим фигу».

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

-- ведь ты эти примеры не читал, не уловил и тебе они не понятны.

Ога, любимая песня сектантов. «вы просто не поняли, вы просто недостойны». Я ни о чём тебя не просил, кроме как о примерах. Не надо рекламировать свою веру, не надо давать мне определения - нужны только примеры.

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

Я просил тебя что? Примеры. Ты их показал?

да.

смотри в гугл, читай диссер того же Книжника Константина про GOODS. там есть обзор для понимания контекста (опорная модель системы, функциональный объект как «чёрный ящик») — как реализовать ООСУБД, и принципиальной схемы, подхода к реализации. смотри исходники GOODS, для понимания того как он эти принципы применил. для понимания конструкционной модели системы, конкретный, принципиальный объект как «белый ящик».

чёрный ящик (что?) и белый ящик (как?) вместе составляют описание архитектуры.

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

знание некоторых принципов облегчает незнание многих фактов — некоторые факты можно из этих принципов вывести.

поэтому нет смысла изучать конкретный код и конкретные факты — нужно проектировать архитектуру достаточно надёжно, чтобы задача и подход хорошо, «композабельно» :) подходили друг к другу.

если подумать головой, как что-то подобное GOODS писалось бы на CL, и взять пример какой-то ООСУБД на CL для иллюстрации. то можно увидеть, где эти корявости С++ в CL реализации бы просто отсутствовали.

но да, ты же не осилил в архитектурное проектирование. так и скажи.

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

Все эти «не попробуешь - не узнаешь» - это типичные сектантские повадки. «а если не узнаешь, то ты плохо пробовал» - дальше будет это.

ппц какой-то. вот опять же, если подумать головой? как можно было бы реализовать livecoding или тот же REPL на C?

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

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

что делать, если в С++ брошено исключение в деструкторе, лол?

выходит — ничего не поделаешь — стек уже размотан и исправить и перезапустить далее по ЖЦ объекта нельзя, указатели стали недействительными и т.п.

с рестартами и сигнальным протоколом ошибок такой фигни не возникает.

и Fragile Base Class problem тоже не возникает.

потому что архитектура более гибкая, и базовые концепции языка (символы и условия/ошибки с рестартами, generic методы и наиболее специфичный метод) — приводят к более гибкой архитектуре решений на CL, где всё это есть, чем на С/С++, где всего этого нет.

что приводит к нормально работающей (ну почти, для нормальной нужны модули) инкрементальной разработке «в образе».

тебе просто не с чем сравнить разницу в ощущениях если ты не пробовал это в CL или SmallTalk. если ощущений нет.

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

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

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

предположение «не, я не пил водку по утрам, и поэтому твой вопрос не имеет смысла» — жалкие отмазки сектантов, ниасиливших в логику контрарные и контрадикторные утверждения. 1111!!!

Ты пытаешься ретранслировать ахинею, думая, что раз это какие-то «общепринятые примеры», то их крыть нечем -нет. Крыть их не могут только идиоты.

Да и мне даже не надо их крыть - я просто попрошу тебя описать то, как ты вывел из моей цитаты свою ахинею. И ты обделаешься.

Ах да, я и не начинал, чтобы что-то переставать.

ты почему-то думаешь, что можно рассуждать за всю сеть весь мир, нужно ему или не нужно. а нужно или не нужно — тебе. потому что ты умеешь или не умеешь это применять.

Ты можешь меня опровергнуть - вперёд. Я могу тебе привести тысячи примеров, а ты нет.

Где ОС на лиспе? Где броузер на лиспе? Где крузис на лиспе? А что можешь ты? Пердеть.

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

Меня это мало волнует. Сектанты часто живут в своих фентезийных мирках, только вот меня это волновать не должно.

Я рассуждаю в рамках объективной реальности, а не в рамках твоих фантазий.

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

О боже, ну это просто финиш. Пошли самые убогие сектантские потуги, а именно «у всех своя правда». Нет, правда она одна.

Покажи примеры. Почему я могу это сделать, а ты нет? Ты особенный? Либо примеры с лиспом работают только, если ты веришь? И без веры их не увидишь?

и решать эти задачи — невозбранно достигнув желаемого, ага. и если на другом языке это выглядит долго и мучительно — сменить инструмент, а не скакать на дохлой лошади.

Опять же, с чего ты решил, что кто-то должен принимать твою сектантскую лексику? В реальности нет никаких инструментов, лошадей, никаких «под задач» и прочее. Есть только классификация по уровню доступности.

Именно поэтому примеров у тебя и нет, а всё сводится «твоя сишка недоступна колхозникам», но это не объективно. В рамках объективного сравнения никто не учитывает колхозников.

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

Я ни о чём тебя не просил, кроме как о примерах. Не надо рекламировать свою веру, не надо давать мне определения - нужны только примеры.

ну так скачай PDF того же fare, про композабельные интерфейсы, про трансформацию интерфейсов, Interface Passing Style, Context-L из списка литературы, вот это вот всё.

там полно примеров на тему аспектно-ориентированного программирования, контекстно-ориентированного и трансформаций таких аспектов и контекстов.

показывающих как это можно практически применить. вручную, полуавтоматически и автоматически.

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

Я тебе дал определение примера. Твои потуги определению не соответствуют. Финиш.

если подумать головой, как что-то подобное GOODS писалось бы на CL, и взять пример какой-то ООСУБД на CL для иллюстрации. то можно увидеть, где эти корявости С++ в CL реализации бы просто отсутствовали.

Продемонстрируй хоть один пример.

И ты не забывай Вася, что я ещё с тобой играюсь. Я могу просто определить твою говногос за мусор и ты никогда не докажешь обратного. Ведь любые рассуждения на базе ненужности делают их ненужными.

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

ну так скачай PDF того же fare, про композабельные интерфейсы, про трансформацию интерфейсов, Interface Passing Style, Context-L из списка литературы, вот это вот всё.

Примеры в студию. Меня не интересуют потуги колхозников с помойки, как их базворды.

Конкретно. Вот есть пример, нам нужна такая конструкция - она нужна для того, и потому. Вот, на крестах её сделать нельзя, а на лиспе можно. Всё.

Потуги детсадовцев меня не интересует. Ссылки на макулатуру сектантов то же. Апелляция к лексике сектантов меня так же не интересует.

Ссылки на какое-то «полно» меня так же не интересует. Полно - ты их покажешь, а не можешь - их нету.

показывающих как это можно практически применить. вручную, полуавтоматически и автоматически.

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

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

Я рассуждаю в рамках объективной реальности, а не в рамках твоих фантазий.

хватит проецировать на меня свои фантазии и своё недопонимание.

осиль уже хотя бы логику.

Почему я могу это сделать, а ты нет?

не можешь. ты не видишь потому что не смотришь. не понимаешь, а не понимаешь потому что не стараешься понять. все эти штуки про контекст, концепцию, опорную и принципиальную схему, применение, эффективность применения.

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

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

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

С чего ты решил, что я тебе позволю подменить контекст?

это ты подменяешь контекст, проецируя своё недопонимание. потому что для понимания слов в смыслы нужно приложить усилия, а для тебя эти слова — баззворды. потому что нету у тебя референтного опыта.

ты подменяешь контекст, когда думаешь, что кто-то тебе что-то должен доказывать, в чём-то тебя убеждать. не должен.

у кого-то получилось решить задачу, потому что есть понимание задачи: контекстов и принципов.

у тебя не получилось даже её сформулировать. потому что нету понимания.

устранять твоё недопонимание — это твоя работа, а не моя.

делай свою работу самостоятельно — думай головой. накапливай референтный опыт, и опять думай.

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

ппц какой-то. вот опять же, если подумать головой? как можно было бы реализовать livecoding или тот же REPL на C?

Меня мало интересует сектантские поверья. Твой мусорокодинг, мусорорепл и прочее дерьмо.

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

Для пацанов. Тут колхозник пытается применить банальную манипуляцию. Допустим, я говорю с адептов детка с неба «зачем мне верить», а он мне «а как ты себя спасёшь без веры», т.е. он просто привязал нужность веры в другой ненужности, и вопрос просто формулируется заново. Зачем мне спасаться? И так буде до бесконечности.

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

С чего ты взял, что перевод стрелок на какую-то ахинею - тебя спасёт? Нет, не спасёт. Ты мне расскажи о том, с чего у меня должно что-то меняться и зачем мне это нужно. Твоя ахинея и твои проблемы - являются твоими проблемами, а не моими.

что делать, если в С++ брошено исключение в деструкторе, лол?

С чего оно там должно быть брошено?

выходит — ничего не поделаешь — стек уже размотан и исправить и перезапустить далее по ЖЦ объекта нельзя, указатели стали недействительными и т.п.

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

с рестартами и сигнальным протоколом ошибок такой фигни не возникает.

Таких ошибок итак не возникнет. Возникнут они только в твоих фантазиях.

тебе просто не с чем сравнить разницу в ощущениях если ты не пробовал это в CL или SmallTalk. если ощущений нет.

Понимаешь, я вижу твой уровень, вижу уровень потуг твоих братьев по вере. Вижу, что никто не может показать мне хотя-бы один пример. ОДИН.

А вера для идиотов - меня мало интересует. Если ты настолько слаб и веришь, то тут скорее дело в твоей слабости, а не силе твоей религии. Это банальный вывод, а большего и не нужно.

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

отучаемся говорить за всю сеть

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

Доказательство существует отдельно от принятия этого кем-то.

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

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

не можешь.

Как так не могу? Я беру какой-нибудь недоязычок, открываю ide жму контрл+пробел и получаю результат, вернее как - в недоязычке я его не получаю. На этом уже можно закончить.

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

Почему я могу, а ты не можешь?

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

Не сравнивай меня с собой. Да и не надо мне тренслировать эту сектантскую ахинею. Я не спрашивал тебя про понимание твоей веры - я просил тебе примеры.

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

это ты подменяешь контекст, проецируя своё недопонимание. потому что для понимания слов в смыслы нужно приложить усилия, а для тебя эти слова — баззворды. потому что нету у тебя референтного опыта.

Очередная сектантская логика. Каждый сектант мне рассказывает, что мне нужна практика в его учении, а все его «священные книги» - для меня талмудистика, которая ничего не стоит.

ты подменяешь контекст, когда думаешь, что кто-то тебе что-то должен доказывать, в чём-то тебя убеждать. не должен.

Я ничего не подменяю. Я просил примеры, но примеры я не получил.

у кого-то получилось решить задачу, потому что есть понимание задачи: контекстов и принципов.

Ога, каждый сектант всё решил. Другое дело, что решение ненужность == отсутствие полезного решения, а значит в результате ноль.

у тебя не получилось даже её сформулировать. потому что нету понимания.

Меня и не волнует это. Ты не можешь показать примеры, а всё остальное мне неважно. Меня не интересует твоя вера, повторюсь уже в 10раз.

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

Это и отличается сектантов от вменяемых людей. В рамках своего учения, руководствуясь собственными догматами, системой ценности и оценки - ты можешь доказать что угодно. Другое дело, что цена этим докзательствам ноль.

делай свою работу самостоятельно — думай головой. накапливай референтный опыт, и опять думай.

Ты думал? Почему ты такой слабый. Если ты слабый, то с чего ты решил, что «твой» выбор - есть выбор, а не есть слабость? Почему ты не задал этот вопрос себе?

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

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

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

Твои выводы - есть следствие твоей слабости. В реальности - ничего из этого из моей цитаты не следует.

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

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

Язык. Но не язык программирования.

Читаю тред и волосы дыбом.

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