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 инструментирующий пошаговый отладчик - тредов не будет, уж извините.

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

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

ЯП сегодня как коммерциализировать?

Это не сегодня. Не думаю, что они много зарабатывают. Хотя да, написать такую заявку, наверное, можно. Но тогда нужно и открывать торговлю, иначе это будет обман государства. Честно поторговать, заработать 0 рублей и сказать «ой, у нас не получилось». Хотя может быть, что в российских реалиях это будет выглядеть по-другому. Блин. По идее надо над этим подумать...

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

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

Кстати, не факт, что 0. Предлагай компилятор (из командной строки) забесплатно, а clcon+отладчик+справку за небольшие деньги (я бы оценил в 1..5 тысяч рублей на рабочее место). Думаю, кто-нибудь купит.

И примеров маленьких программ на сайте, где продавать будешь, накидай.

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

Хм. Ну прямо даже не знаю, что подумать. Но для этого ведь нужно сделать полную версию. Если, допустим, я упрусь в это рогом и сделаю это быстро, то качественно не получится. Никаких тебе MULE, никаких тебе CSS. Заработаю 15 тыр на этом продукте. Т.е. да, будет что написать в отчёте: мы сделали, у нас не вышло, но заработали 15 тыр.

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

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

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

Тогда можно считать, что SQL тоже язык общего назначения. Ведь функции можно реализовывать на Си и таким образом выполнять любые действия.

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

Ну я это знаю. Сопоставимое по степени зрелости кто-нибудь продаёт? А лучше вообще напиши на мейл, т.к. я боюсь тут лишнего ляпнуть.

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

Ну, так скажем, SQL нужно ещё сильно допиливать, а в 1С всё основное уже есть. Тебе, конечно, виднее. Ты тоже считаешь, что 1С - это DSL? Вообще, кто может дать формальное определение DSL, чтобы можно было чётко отличить «ЯП общего назначения» от DSL?

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

Сопоставимое по степени зрелости кто-нибудь продаёт?

Про остальных я тебе не смогу доказать, что продаж много. Впрочем, какая разница? Твоё дело доказать чиновникам из Старта, что потенциально продавать IDE+компилятор можно (вот MSVS) и получить деньги на разработку.

А продвигать язык нынче можно только с крупными проектами: 1C, AutoCAD+AutoLisp, iOS+ObjectiveC, ...

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

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

Давай по почте обсуждать это, пожалуйста.

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

Ну, так скажем, SQL нужно ещё сильно допиливать, а в 1С всё основное уже есть.

SELECT call_ffi_func(); от ПодключитьВнешнююКомпоненту(«ffi») мало отличается.

Ты тоже считаешь, что 1С - это DSL?

Да. Если не использовать СУБД, то ущербность достаточно заметна. Нет доступа к звуку, нет доступа к рисованию, нет доступа к TCP, ...

Вообще, кто может дать формальное определение DSL, чтобы можно было чётко отличить «ЯП общего назначения» от DSL?

Думаю, DSL — «язык, который работает только в определённой области». А «язык общего назначения» — тот, на котором можно сделать всё, что можно сделать на каком-либо языке в этой ОС. Эдакая Тьюринг-полнота по отношению к системным библиотекам. Любой язык, который даёт доступ к POSIX или WinAPI является языком общего назначения. Любой язык, на котором для каждой функции POSIX/WinAPI придётся писать отдельную обёртку на другом языке, является DSL.

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

Да. open(«/dev/dsp»)

Разве что для дистрибутивов начала 2000-х.

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

А к рисованию?

connect(socket, getipa(«localhost», 6000), sizeof(struct sockaddr_in))

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

А к рисованию?

Или на крайний случай dlopen(«gtk»)

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