LINUX.ORG.RU

Язык программирования Картарика.

 картарика, ,


2

1

Решил открыть отдельную ветку на эту тему, так как возникло много вопросов по этой теме в другой ветке. Поэтому обсуждаем здесь.

Язык программирования Картарика или Картарский язык является строго-типизированным объектно-ориентированным языком с обязательной инициализацией переменных с ограниченным сборщиком мусора и запретом кольцевых зависимостей.

Создается на основе русской раскладки клавиатуры. С открытым исходным кодом. Разрабатывается на языке C.



Последнее исправление: zx_90 (всего исправлений: 1)

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

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

Основная проблема — ломаются все инструменты работы с текстом. От просмотра на гитхабе до текстовых редакторов.

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

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

Разум разрушает культурный иммунитет.

Это называется «рефлексии на вербальный отчет о переживаниях».

Если просто и без доказательств (бесполезных здесь отсылок в читальный зал), то любая культура неизбежно «саморазрушается». Ни одно впечатление невозможно пережить дважды. Эмоциональный отклик (ориентировочный рефлекс) от любого обычного (не невротического) впечатления затухает за несколько переживаний.

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

Параллельно с процессом «саморазрушения» культуры может идти и процесс её «регенерации». В случае ориентировочного рефлекса, если даже немного изменить параметры раздражителя непредсказуемым образом, то ориентировочный рефлекс восстанавливается. «Накачивая» восприятие новизной, можно поддерживать её в «живом» состоянии. И весь вопрос тут в том, где взять источник новизны с такими параметрами, которые перезапускали бы О.Р. Задача эта, на самом деле, вычислительно очень трудоемкая. Т.е. она непростая во всех смыслах. И если говорить в более экономическом ключе — вот, что стоило бы «майнить» вместо тупого обращения хэш-функций.

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

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

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

Основная проблема — ломаются все инструменты работы с текстом. От просмотра на гитхабе до текстовых редакторов.

А чего мы к тексту так привязались-то? Как священная корова какая-то. Третья декада 21-го века на дворе.

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

Это называется «рефлексии на вербальный отчет о переживаниях».

По-моему, или я тебя не понял или ты меня…

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

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

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

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

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

Ещё одна ссылка в тему: Карантин.

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

Раскроешь мысль?)

Язык программирования Картарика. (комментарий)

Защита культуры означает её применение при возможности, а не уклонение от такового. Положительные примеры применения РЯ в ИТ есть (1С, не говоря о советском периоде). Значит, надо просто брать и использовать.

О том и речь, что это всё в конечном итоге энергетически невыгодно. :)

Ну вот ты умный, мысль простая. Допустим, есть организация X, в ней работает 10 русскоязычных программистов. Всего в мире есть 15 млн программистов, знающих английский язык, и 1 млн русскоязычных. Цифры по порядку величины примерно такие. Ради общения с 14 млн нерусскоязычных 1 млн русскоязычных жрут кактус. Притом надо составить граф коммуникаций (включая чтение доков), навесить на ребро вес, учитывающий интенсивность, и весьма может выйти, что русскоязычные программисты в основном общаются в своём кругу, поэтому им энергетически выгоднее поддерживать такой перевод. Да, если вот идти путём Картарики, которая живёт в уже сложившейся ИТ-инфраструктуре, от которой никуда не деться, то да, такой оверлей чисто технически неизбежен, т.к. в планы не входит всё форкать. Но я таким путём не иду, потому что мой данный проект является попыткой поставить на повестку дня вопрос о замене Линукса из соображений кибербезопасности. И эта замена должна быть сделана в России. Т.е. мне вообще особо нет нужды в этом проекте общаться с 14 млн нерусскоязычных, и оверлей здесь не нужен. Он существует по той простой причине, что модификация ЯОС является длительным процессом и работоспособность должна быть обеспечена в любой момент времени по ходу переделки. Нашлёпка в виде двухъязычного интерфейса служит ровно этому.

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

А чего мы к тексту так привязались-то?

Так совместимость же. И та самая «культура». Чтобы сменить основной формат текстового представления, надо чтобы, например, vim умел с ним работать.

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

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

Товарищ выдвинул тезисы в форме, как будто это факт, а потом стал объяснять, что не имел в виду, что это факт, суть именно в этом. Однако вместо того, чтобы поправить необоснованный тезис, пошли ссылки на интеллектуальность дискуссии. И что оказывается спрашивать доказательства - это невежливо и манипуляция. И более того, стал говорить, «я это не буду доказывать, потому что доказывать слишком трудоёмко». Всё это и есть как такая достаточно оригинальная подача пропаганды и явно тут попытка эксплуатации легковерности людей, которые склонны верить повторяемому, «ложь, повторённая 100 раз, становится правдой». Просто обычно по-другому уходят от доказательства, например, накидывают ещё 50 таких же утверждений, а потом обычно на личности переходят, потому что я в последнее время начала цепляться за первое такое утверждение и не отставать, пока чел не докажет, не отречётся от своего тезиса или не взорвётся. Это в целом работает, особенно, если сказана какая-то глупость и против неё приведён хороший контраргумент. А тут товарищ ещё и ведёт себя неагрессивно и как-то жалко к нему этот вариант применять.

Если речь идёт об «общепринятых» вещах, например, не принято какать посреди улицы, то да, их не доказывают, а принимают. Но здесь не та ситуация.

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

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

Молодец, намного лучше всяких мёртвопрогов. Для успеха в твоей идем самое важное - стилизация, фонетика. Задача тяжелая, но решаемая. «\н» или «\нл» или «\н.л», кар.

shpinog ★★★
()

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

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

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

Ну это же неправда. Я создаю произведение на русском языке. Создавать произведение - это не отгораживание, а стимулирование. Притом в произведении есть оригинальные мысли и я поэтому даже разработку закрыл, кстати, @hobbit, ты боялся не зря, но нет смысла в открытости проекта, если к нему никто не присоединяется, и нет смысла в открытости рукописи басни, пока она не дописана. Потом опять открою, наверное. Т.е. это басни Крылова - локализация материала с творческими добавлениями. В планах - интеграция со школьным алгоритмическим языком, у которого примерно 50-70 тыс пользователей ежегодно в школе, которые проходят с ним 2-3 класса, чтобы школьники могли залезть во все уголки системы, посмотретЬ, как она устроена и что-то поменять, и всё это без знания английского. Просто ты увидел какую-то одну особенность (что это не на английском) и тебе показалось, что проект состоит только из огараживания.

Я огораживаюсь не от английского языка, а от глобального движения Open Source, потому что я уверен, что в нём действуют агенты спецслужб и поэтому Линукс опасен. То, что линукс опасен, известно из новостей. Находить замену уязвимой технологии, угрожающей поражением в войне - это тоже совершенно нормально и государство должно это делать, однако нерадивые продвигатели Линукса ставят свой Линукс выше безопасности людей, живущих в этой стране. И по большей части импортозамещение состоит в том, что внедряется Линукс. Ждём-пождём ОС Касперского, но ведь и она на международном тулчейне, а значит всё ещё недостаточно хороша. ЯОС уникальна в том, что она достаточно проста и её можно контролировать полностью, вместе с тулчейном, да и тулчейн у неё лучше (нет , я не буду больше обсуждать здесь С++, это слишком сложная тема и я экономлю свои интеллектуальные силы, на своём тезисе здесь и сейчас не настаиваю и он является моим частным мнением, хотя и имеющим подтверждения). Честно сказать, хочется этим людям дать в руки лопату и отправить копать канал какой-нибудь. Петя так бы сделал, да и Вася так бы сделал.

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

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

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

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

А в пустыне много песка? В любой стране будут спец службы, которые будут лезть в Х ОС, ты сам работаешь на ту концепцию, против которой выступаешь.

Находить замену уязвимой технологии, угрожающей поражением в войне

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

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

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

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

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

Хочется детям, белым тоже хотелось не меньше чем большевикам, где они? Мир объективен, есть время воевать, а есть время созидать , как и время вытирать говно с ляжек.

если мы

Нет никаких мы, население =! народ.

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

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

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

Вот и сейчас:

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

Я бы тебе написал, от чего по такой логике надо отгородиться в куда более первую очередь, чем от глобального движения Open Source, но это точно потрут как нацпол.

только из огараживания

Если проект состоит из огораживания и чего-то ещё — боюсь, мне не очень интересно, из чего он состоит ещё.

Я уже писал, что не верю в закрытую национальную ОС. Если это будет чья-то частная собственность при поддержке государства, то в конечном счёте она, скорее всего, превратится в личную ОС какого-нибудь олигарха, а потом этот олигарх осядет на каких-нибудь Аллигаторовых островах, и всё, приплыли. В покойном СССР был бы ещё возможен вариант, что эта ОС является собственностью непосредственно государства, но не в современной РФ, тут это слишком явно противоречит чётко проводимой идеологии приватизировать всё, что хоть как-то шевелится. (Упс, совсем без нацпола таки не получается, но надеюсь, я таки удержался на грани.)

У открытой национальной ОС шансов выжить, на мой взгляд, больше.

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

А как быть с оригинальными идеями? В ЯОС на данный момент в открытой части показана одна, которую жалко (т.к. не связана с русификацией), а в закрытой уже есть аж две. И список будет расти. Если кто-то это заметит, то идеи уйдут в частные или просто в более сильные проекты, а я останусь ни с чем.

Хотя если подумать, то из этих двух одна тоже связана с русификацией. Похоже, придётся пока обратно открыть.

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

Я уже писал, что не верю в закрытую национальную ОС.

МСВС, ОС «Эльбрус», ГосЛинукс. Ни одна из них не убежала к аллигаторам-олигархам.

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

Можно делать открыто-закрытую. В смысле, открытую (в смысле OpenSource) для тех, кто присоединяется к разработке.

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

Стоп, так это же всё дистрибутивы линукса. Если ты признаёшь, что дистрибутив линукса может называться национальной ОС, разговор уходит немного в другую плоскость. Но дистрибутивы линукса не очень интересны аллигаторам, такого добра и за рубежом хватакт, и если аллигатор попробует их продавать по рыночным механизмам, его там неизбежно спросят, чем это лучше редхата и анбрейкебыла. Да и полностью закрыть дистрибутив линукса сложновато. Вот даже у той же Астры, которая, считай, выжила МСВС, часть наработок (не всё) открыта.

К тому же: МСВС — практически мертва, хотя легаси-проектов на ней много. ОС «Эльбрус» жива и интересна настолько же, насколько интересен сам Эльбрус как архитектура процессора. Про ГосЛинукс не в курсе, что у них там сейчас.

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

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

В случае Дэна A2 может называться национальной ОС. Чем это лучше для аллигаторов? Тем более, что дорабатывать её за пределами России будет затруднительно из-за тотальной русскоязычности.

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

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

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

А в пустыне много песка? В любой стране будут спец службы, которые будут лезть в Х ОС, ты сам работаешь на ту концепцию, против которой выступаешь.

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

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

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

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

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

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

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

Если проект состоит из огораживания и чего-то ещё — боюсь, мне не очень интересно, из чего он состоит ещё.

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

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

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

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

Если только начать наезжать на Касперского? Но по-моему, лучше проприетарщина от Касперского, чем Линукс. Хотя я сомневаюсь. В любом случае, я за то, чтобы Касперский ОС продолжала существовать, и наезжать на неё я не буду (пока что).

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

Основная проблема — ломаются все инструменты работы с текстом. От просмотра на гитхабе до текстовых редакторов.

Верно. Но это лечится относительно просто. Куда более сложная и технически, и организационно проблема — это DVCS (Git) поскольку процедура автоматического слияния объектов в общем случае не определена, и для каждого формата данных её придется делать отдельно, причем обеспечиваю человеку полную интроспекцию данных в наглядном виде.

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

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

По-моему, или я тебя не понял или ты меня…

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

Lesswrong, на который ты ссылаешься — классный ресурс, но он всё еще сильно отстает от того уровня, на котором здесь работаю я.

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

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

Защита культуры означает её применение при возможности, а не уклонение от такового. Положительные примеры применения РЯ в ИТ есть (1С, не говоря о советском периоде). Значит, надо просто брать и использовать.

Подожди, ты сказал про культуру, что:

Про неё не спрашивали, однако ты предложил несколько путей к её окончательному уничтожению.

Ты мог бы пояснить, как то, что я предлагал (и что именно я для этого предлагал) может несколькими способами окончательно уничтожить культуру?

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

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

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

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

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

Это называется moral entitlement. Иметь моральное право. Петя так бы сделал, а вот Вася — нет. Потому что Вася образованный и знает, что мы это уже много раз проходили и знаем, чем это заканчивается.

Петя поступил правильно.

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

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

Насчёт «суй» - спасибо, без шуток.

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

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

Ждём-пождём ОС Касперского

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

Как иначе объяснить такое ожидание?

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

Куда более сложная и технически, и организационно проблема — это DVCS (Git) поскольку процедура автоматического слияния объектов в общем случае не определена

Почему? Тот пример, что я привёл отлично работает с автоматическим слиянием (также как с ним отлично работают обычные программы, использующие gettext). Проблема только с редактированием.

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

Автоматическое слияние для упорядоченных множеств не работает, так как отношение порядка нарушается. Попробуй слей два произвольных массива, не зная ничего об элементах. Автоматическое слияние иногда работает для некоторых текстов. Когда не работает (write-write conflict по строчкам), то смотрим глазками и сливаем ручками.

Так вот, для обычного линейного текста визуально представить write-write conflict можно довольно просто. А вот для текста с кучей оверлеев над буквами — куда сложнее. А еще этот конфликт разрешать нужно. Оно всё по итогам делается, конечно же.

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

Автоматическое слияние для упорядоченных множеств не работает, так как отношение порядка нарушается.

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

То есть словари сливаются всегда.

А вот для текста с кучей оверлеев над буквами — куда сложнее

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

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

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

При визуализации используется тот же самый словарь для языка пользователя.

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

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

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

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

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

Не только добавляешь. Ещё и заменяешь. Но это тоже просто. А для многоязычного текста больше ничего и не надо.

Для произвольных структур действительно простого решения нет. Видел diffxml — даже для деревьев уже некрасиво.

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

Видел diffxml — даже для деревьев уже некрасиво.

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

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

А какая бы красота была! Зачекаутил код, схему, данные. Развернул в контейнере. Поработал. Что-то модифицировал. Закоммитил всё.

Нет, сейчас это не взлетит.

Короче, суть. Автоматический мерж более-менее хорошо определен для CRDT. И надо стараться в этот класс так или иначе попасть. К сожалению, программы в control flow в него не попадают (из-за отношения порядка). То же самое — dataflow, но там пространство для маневра немного больше.

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

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

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

Да почему же? Текст - это не произвольная структура. А данные к тексту всё равно являются обычными словарями с привязкой к идентификаторам. Я же приводил пример. Изменения любого из трёх файлов отлично обработаются. Если знать, что в *.po ключи уникальны, а порядок строк незначащий, то ещё лучше (можно перед чекаутом делать сортировку).

А какая бы красота была! Зачекаутил код, схему, данные. Развернул в контейнере. Поработал. Что-то модифицировал. Закоммитил всё.

А разве есть проблема? Кроме объёма. Дамп базы данных является текстом. При выгрузке сортировать по первичному ключу и история отлично отслеживается.

CRDT

Им и обычный текст программы не является. При этом все прекрасно хранят программы в GIT.

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

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

monk ★★★★★
()

Может проще написать препроцессор который все ключевые слова на русском переводит в соответствующие ключевые слова Си на английском и далее подавать на вход Си-компилятора?

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

Нет. Пушкина нужно читать в оригинале ! После перевода теряется смысл.

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

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

Констрейнты, которые энфорсятся в БД, но не когда ты дамп руками правишь. Очень легко напопроться на write skew.

По остальному. Текст, да, не является CRDT, потому что это упорядоченная структура. Поэтому разрешение конфликтов по записи делается вручную.

И вот это ручное вмешательство хочется минимизировать. А где нельзя избавиться, там максимально автоматизировать. Чтобы, например, добавление нового формата происходило через плагин. И поддерживалось по всему стеку от хранилища до редакторов.

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

Констрейнты, которые энфорсятся в БД, но не когда ты дамп руками правишь. Очень легко напопроться на write skew.

Так с текстом программы та же проблема.

В функции ошибка и надо добавить единицу к результату. Один программист изменит начальное значение с 0 на 1 и будет верный результат, другой в return добавит +1 и получит верный результат, а git всё это сольёт и получит уже лишнюю единицу в результате.

А где нельзя избавиться, там максимально автоматизировать. Чтобы, например, добавление нового формата происходило через плагин.

Для этого архитектуру придётся забетонировать. Примерно как dpkg: пакеты можно ставить/удалять/изменять в любом порядке, все скрипты обязаны быть идемпотентны.

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

В функции ошибка и надо добавить единицу к результату. Один программист изменит начальное значение с 0 на 1 и будет верный результат, другой в return добавит +1 и получит верный результат, а git всё это сольёт и получит уже лишнюю единицу в результате.

Само собой. Но у нас есть какой-то уже устоявшийся пайплайн для валидации кода. Типа юнит-тестов, погоняющихся на каждый коммит. А для БД этого нет.

Для этого архитектуру придётся забетонировать.

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

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

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

Типа юнит-тестов, погоняющихся на каждый коммит. А для БД этого нет.

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

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

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

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

Если можно запустить юнит-тесты, то можно и поднять БД, в которую вносить данные при коммите.

Ну так это надо делать, инструменты, аналитика (что пошло не так и как это исправить) и вот это вот всё. Оно делается, в конечно и тоге, но его же вот прямо сейчас нет. apt-get install что?

Его сейчас нет, и никто так просто не сделает. Потому что это не изолированная проблема, которая тащит за собой многое. От хранилища (Git не для blob-ов) и до редакторов, как ты раньше упомянул. Чтобы дело сдвинулось, оно должно как-то попасть в фокус коллективного разума, чтобы её начали решать сразу со многих сторон.

Придётся как-то ограничивать возможные операции.

Ну так да. Но это всё равно больше, чем ничего, как сейчас.

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