OberonCore https://forum.oberoncore.ru/ |
|
Автосохранение перед компиляцией https://forum.oberoncore.ru/viewtopic.php?f=23&t=6878 |
Страница 3 из 3 |
Автор: | arisu [ Воскресенье, 08 Январь, 2023 18:02 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Oleg N. Cher писал(а): А вот что если пользователь не хочет сохранять изменение в исходнике? Он быстро попробовал что-то на коленке, изменив готовый исходник, даже не собираясь это сохранять? Я, кстати, часто так делаю. а для этого придумана операция «отмена», которая в прозрачно персистентной системе должна тоже сохраняться, и исчезать только по явному требованию пользователя. для удобства в эту последовательность можно добавить закладки, и операцию «отменить всё до последней закладки».Oleg N. Cher писал(а): Нет. "Сохранить" нужно. Не надо делать из пользователя дурака. Хочет сохранить - сохранит сам. а необходимость вручную сохранять документы делает из пользователя мартышку, которая занимается тем, что машина отлично может сделать сама. вы просто привыкли к тому, что костыль «сохранить» — это нечто неотъемлемое. а оно просто костыль, и вполне заменяется более гибкой системой structured undo/redo (которая, кстати, почти прозрачно даёт пользователю возможность иметь несколько версий документа, и переключаться между ними).впрочем, это мы уже ушли в обсуждение совсем другого вопроса, о Красивой Персистентной Системе Будущего. извините. |
Автор: | Oleg N. Cher [ Воскресенье, 08 Январь, 2023 20:45 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
arisu писал(а): а для этого придумана операция «отмена», которая в прозрачно персистентной системе должна тоже сохраняться, и исчезать только по явному требованию пользователя. для удобства в эту последовательность можно добавить закладки, и операцию «отменить всё до последней закладки». Ага, то есть, пользователь, который не желает сохранять исходник, должен получить эту фичу катком и отсчитывать сколько операций Undo/Redo надо откатить до того состояния исходника, который ему нужен? Да это Вы предлагаете делать из юзера счастливую мартышку, которая получила всегдашное сохранение, и потом закладки из Undo/Redo и наборы закладок из Undo/Redo, а потом наверное иерархии Undo/Redo, которые будут складываться во вложенные. И всё это вместо простой и логичной операции "сохранить". Мдя уж...
|
Автор: | arisu [ Воскресенье, 08 Январь, 2023 21:58 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
какая такая неподъёмная разница между «попечатали, закрыли, открыли заново» и «поставили временну́ю закладку, попечатали, откатились к временно́й закладке»? ну, кроме той, что во втором случае пользователь уверен: никакие его изменения не потеряются в любом случае, даже если он случайно закроет документ, а потом передумает и решит, что изменения таки имело смысл сохранить. в этом случае он откроет документ опять и накатит сохранённое redo. вы, видимо, никогда не работали с системами, обладающими прозрачной персистентностью и structured undo, поэтому мыслите в терминах «чтение, сохранение, и пошаговая отмена» вместо того, чтобы думать в терминах «состояние документа во времени». save/load — это кривой костыль для фиксации состояния документа в какой-то момент времени, причём этот костыль позволяет сохранить только одно состояние (без переименования). прозрачная персистентность и structured undo же такого ограничения не имеют. более того: с ними вы можете восстановить документ не только по закладкам, но и на любое время по часам; например: «среда, сделай мне это так, как оно было вчера в три часа дня!» при этом среда сама помнит все деревья изменений и позволяет легко по ним навигировать. пользователю не надо сохранять 100500 промежуточных копий документа под разными именами, а потом искать среди них нужный. пусть машина делает работу, с которой отлично справляется, мы за этим машины и придумывали. |
Автор: | Oleg N. Cher [ Понедельник, 09 Январь, 2023 21:01 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Я не хочу работать с системами, обладающими прозрачной персистентностью и structured undo, особенно если их будете проектировать Вы. Шутка. Почти. Вы предлагаете пользователю вместо его файла сохранять временную закладку с последовательностью Undo/Redo. Лишняя сущность. Я мыслю в терминах "чистый исходник, который надо сохранить" и "грязный исходник, где я специально накосячил, чтобы посмотреть что будет". И я очень сильно не хочу считать количество Redo, сохранять временную закладку или что-то в этом роде. Меня устраивает "вот это я сохраню, а вот это нет". Я лучше знаю что мне нужно сохранить, а что нет. И не хочу поручать это более или менее тупой машинной (беспощадной) логике. Без переусложнения задачи для мозга в виде лапши Redo. «среда, сделай мне это так, как оно было вчера в три часа дня!» - тут я уже возьму Git. Для 99% случаев среда в три часа дня не нужна. 100500 промежуточных копий документа я не сохраняю. Git с этим справляется лучше. Вы мне напоминаете образ "быстро прибежал, нашкодил как сам знал и на всех обиделся за непонимание" Время нас рассудит. Но мне Ваши наборы временных закладок лапши Undo кажутся избыточными. Не требуется ничего лучше того, что есть в Word или Sublime. А Вы зачем выносите на обсуждение, если не прислушиваетесь к мнениям, расходящимся с Вашими? |
Автор: | Иван Денисов [ Понедельник, 09 Январь, 2023 21:17 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Есть САПР системы, где сохранения дерева операций по созданию какой-нибудь дивной конструкции очень здорово хранить. В целом, если такая функциональность будет продумана и проработана на базе Блэкбокса - это супер. Есть сомнения, что это надо именно "из коробки", и именно для текстов. А также и то, что это надо для всех файлов ODC по дефолту, так как многие совсем не текстовые файлы могут быть весьма и весьма внушительного размера, и операций над ними может быть много много. И поэтому он разрастётся до каких-то неимоверных размеров. То есть получается, что речь идёт про какой-то частный случай работы с Stores.Store. Интересная стратегия, очень любопытно было бы подобный проект поверх Блэкбокса посмотреть для применения в разработке какой-то САПР системы. Кстати на Блэкбоксе какая-то такая система для VAG вроде бы и была когда-то сделана. Может кто-то помнит? |
Автор: | arisu [ Понедельник, 09 Январь, 2023 21:27 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
я в этом направлении (structured undo, и временны́е деревья) думаю потихоньку. конечно, там нужен механизм opt-out (или opt-in, это не так важно), и какой-то способ сохранять дельты (то есть, научить actions сохраняться), чтобы не тормозило при обычной работе. ожидать полноценной реализации от меня в ближайшее время, конечно, не стоит, там думать много надо. но надо таки будет попробовать как-нибудь выкатить PoC, хотя бы для текстов — чтобы люди могли вживую механизм пощупать. а то на пальцах объяснять сложно: это как пытаться человеку, привыкшему к visual studio, объяснить, что такое компонентная среда. |
Автор: | arisu [ Понедельник, 09 Январь, 2023 21:32 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Oleg N. Cher писал(а): Вы мне напоминаете образ "быстро прибежал, нашкодил как сам знал и на всех обиделся за непонимание" ;) я совершенно не обижаюсь. если вас задели мои слова про то, что «вы, видимо, не работали» — простите, такой цели не было. это просто моё предположение.Oleg N. Cher писал(а): Но мне Ваши наборы временных закладок лапши Undo кажутся избыточными. Не требуется ничего лучше того, что есть в Word или Sublime. «visual studio отлично справляется с функцией IDE, ничего лучше нам не надо!»Oleg N. Cher писал(а): А Вы зачем выносите на обсуждение, если не прислушиваетесь к мнениям, расходящимся с Вашими? потому что я вообще почти никогда не прислушиваюсь к мнениям, только к аргументам.
|
Автор: | SovietPony [ Понедельник, 09 Январь, 2023 22:43 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Придется как минимум делать Stores.Operation как расширение Stores.Store. И заставлять абсолютно везде делать операции сохрянемыми. Хорошо так отломает совместимость с кучей существующего кода и, возможно, усложнит его создание. Это опционально не получится. Фича прикольная, но сомнительная, мне кажется оно не стоит усилий и поломки хоть какой-то совместимости с другими ящиками. А модели где это реально надо и так могут при желании сделать сохранение операций над собой. Можно упростить, конечно. |
Автор: | Oleg N. Cher [ Понедельник, 09 Январь, 2023 23:27 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
arisu писал(а): потому что я вообще почти никогда не прислушиваюсь к мнениям, только к аргументам. "Только к аргументам, которые я считаю убедительными, а мало ли чего я считаю". Делать проще и понятнее, чтобы мозг юзера не путался в Redo, а был свободен для задачи - это не аргумент? Так это для Вас не аргумент. Хорошо, что тогда аргумент?Между прочим, я не исключаю полезности персистентных состояний, просто не в контексте работы программиста или наборщика текстов, где это нужно по минимуму. Когда-то на пишущих машинках печатали, и это было большим прогрессом. Машинка с трёмя засунутыми листами вперемешку с копиркой ошибок не прощает, так ведь аккуратнее работать учились (поэтому). А попытка всех осчастливить автосохранением - ну как-то сомнительно. Аргументации не вижу А что плохого в явном сохранении документа? Забыл сохранить - среда напомнит. Специально не сохранил - среда не будет мешать. А то мне уже в кошмарном сне снится как я буду обманывать автосохранялку, чтобы не считать количество Undo. Аргумент жеж |
Автор: | arisu [ Вторник, 10 Январь, 2023 00:19 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Oleg N. Cher писал(а): Делать проще и понятнее, чтобы мозг юзера не путался в Redo, а был свободен для задачи - это не аргумент? нет. вы не доказали, что это проще и понятней, а только постулировали. привычней — да. но привычка — далеко не всегда показатель того, что существующее решение лучше других. для того, чтобы это доказать, нужны натурные тесты с персистентной системой в BBCB. пока что это невозможно в связи с отсутствием оной. поэтому данное утверждение является вашим мнением, но не аргументом.Oleg N. Cher писал(а): Аргументации не вижу ;) потому что у меня её тоже почти нет (за исключением замечания об умножении сущностей ниже) — в связи с тем, что см. выше. поэтому и надо сделать: практика — критерий истины.Oleg N. Cher писал(а): А что плохого в явном сохранении документа? то, что у нас вместо одной сущности «документ» — появляется две: сам документ, и его образ на диске. умножение сущностей без нужды. они разные, потому что образ на диске не сохраняет полное состояние документа.Oleg N. Cher писал(а): чтобы не считать количество Undo. я совершенно не понимаю, откуда у вас взялась идея «считать количество undo». если вы так любите именно сохранения — то какая для вас разница, нажать кнопочку «сохранить на диск», или нажать кнопочку «сохранить временну́ю метку»? вы можете дать этой метке имя, никаких проблем. вот вам ваше сохранение, откат к которому здесь будет равносилен загрузке с диска. с той только разницей, что вы не потеряете ваши эксперименты: они останутся в другой ветке, и вы всегда сможете к ним вернуться, если захотите. или вайпнуть эту вре́менную ветку, если она вам больше не нужна.p.s.: дело в том, что я реализовывал подобную систему для некоторых специфических нужд. поэтому я не просто воображаю, как она должна работать, а реально с ней работал. но предъявить её я не могу, поэтому надо сделать заново, на базе BBCB, например. чтобы это можно было натурально пощупать руками. |
Автор: | arisu [ Вторник, 10 Январь, 2023 00:29 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
SovietPony писал(а): мне кажется оно не стоит усилий и поломки хоть какой-то совместимости с другими ящиками. если сидеть и постоянно бояться поломать совместимость — то создать что-то новое будет попросту невозможно. иногда новое подразумевает, что старое всё — больше не походит, его надо выкинуть. не забыв предварительно извлечь из этого старого всё полезное, конечно. код от ETHOS так-то не будет работать на Project Oberon, например. однако ж её создателей это не остановило. как и создателей A2.несмотря на то, что у нас таки Box — иногда имеет смысл to think out of the box. ;-) старые версии BBCB ведь никто не собирается сжигать на кострах. |
Автор: | arisu [ Вторник, 10 Январь, 2023 00:42 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Oleg N. Cher писал(а): А что плохого в явном сохранении документа? Забыл сохранить - среда напомнит. Специально не сохранил - среда не будет мешать. я, кажется, забыл довольно (для меня) очевидное: structured undo потому и structured, что имеет некую структуру и организацию. в том числе автоматические чекпоинты вида: «в последний раз этот документ закрывали в такое-то время». вот это ваше сохранение, автоматическое. вы открыли документ, вы экспериментируете, потом открываете undo browser — и видите там автоматическую метку: «последнее закрытие — тогда-то. снова документ был открыт тогда-то. сейчас — активен.» всё, что надо сделать, чтобы вернуться обратно — активировать последнюю метку «был снова открыт». никто не мешает вам сделать в среде команду «откатить документ к состоянию последнего открытия и закрыть». всё, одним нажатием вы ваши эксперименты из актуальной версии документа убрали (но они остались как ответвление от последнего закрытия).если вам так будет удобней об этом думать — это своеобразная система контроля версий, но основаная не на коммитах, а на времени произведения операций. |
Автор: | Oleg N. Cher [ Вторник, 10 Январь, 2023 00:52 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
arisu писал(а): то, что у нас вместо одной сущности «документ» — появляется две: сам документ, и его образ на диске. умножение сущностей без нужды. они разные, потому что образ на диске не сохраняет полное состояние документа. Как правило, я легко и охотно закрываю редактор, теряю все Undo, но абсолютно не страдаю по этому поводу. Они мне просто не нужны, эти массивы Undo. Каждый день я тоже теряю, в воспоминаниях остаются только самые важные моменты. Которые, кстати, на примере документов удобно зафиксировать в системе контроля версий. У меня есть фото памятных моментов, но нет видеосъёмки про каждый день 24/7. Это не нужно.arisu писал(а): я совершенно не понимаю, откуда у вас взялась идея «считать количество undo». если вы так любите именно сохранения — то какая для вас разница, нажать кнопочку «сохранить на диск», или нажать кнопочку «сохранить временну́ю метку»? Но я не хочу никаких временных меток, чтобы не засорять ими голову. Сверхудобный на чей-то взгляд редактор может оказаться шкафистым шкафом, в котором пользователь просто не захочет разбираться. Да, я считаю, что слишком большое удобство балует и развращает, но то, что предлагаете Вы - это даже не удобство, а просто прихоть Ну не заменит эта байда с полным состоянием документа от самого его начала системы контроля версий. Это всё равно будет неудобно. Мнение, не аргумент Вы же принимаете аргументом только то, что считаете нужным. Да и не только Вы. В общем, ладно, я завязываю с темой.
|
Автор: | arisu [ Вторник, 10 Январь, 2023 00:57 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Oleg N. Cher писал(а): Вы же принимаете аргументом только то, что считаете нужным. Да и не только Вы. просто намекну: «чем кумушек считать, трудиться — не лучше ль на себя, кума, оборотиться?»у меня есть (довольно объёмное) психофизиологическое обоснование того, почему эта система более естественна для человека, но «всё равно ненужно» не перешибёт ничего, увы. так что да: оно того не стоит. |
Автор: | Comdiv [ Вторник, 10 Январь, 2023 22:54 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
А это обоснование учитывает случайное попадание в историю данных, которые ни в коем случае не должны быть сохранены? |
Автор: | arisu [ Вторник, 10 Январь, 2023 23:25 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
errare humanum est… именно для этого историю можно с любого места просто отрезать, и она исчезнет навсегда. |
Автор: | Comdiv [ Вторник, 10 Январь, 2023 23:40 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Такие вещи легко выпадают из внимания. Даже с сознательным версионированием люди чудят, а с автоматическим начнётся новая эра. |
Автор: | Иван Денисов [ Вторник, 10 Январь, 2023 23:45 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
У Блэкбокса есть инструмент под названием штамп, который сохраняет фингерпринты предыдущих версий файлов, а мог бы и сами файлы сохранять. Я считаю, что вот штамп и надо доделывать. Кто хочет хранить историю версий файла, вставляет штамп, и через него может к версиям обращаться. |
Автор: | arisu [ Вторник, 10 Январь, 2023 23:49 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
проблема с тем, что это явное действие. я же веду речь про то, чтобы система делала это сама, не заставляя пользователя делать нечто вручную. впрочем, одно другому совершенно не мешает: доделывать штампы, конечно же, можно и нужно, пока ничего другого нет. |
Автор: | Oleg N. Cher [ Среда, 11 Январь, 2023 00:01 ] |
Заголовок сообщения: | Re: Автосохранение перед компиляцией |
Я ещё вставлю пять копеек. Экий вы непрошибаемый товарищ. arisu писал(а): у меня есть (довольно объёмное) психофизиологическое обоснование того, почему эта система более естественна для человека Я соглашусь, что такой подход может быть более приемлем для людей с определённым складом ума. Но - "отучаемся говорить за всех" (c) Древний постулат сети FidoNet. "Вам полезно" - ещё не значит "нам полезно".arisu писал(а): проблема с тем, что это явное действие. я же веду речь про то, чтобы система делала это сама, не заставляя пользователя делать нечто вручную. А заставляя пользователя делать вручную нечто более неестественное и ему несвойственное - обманывать систему, если ему не нужно что-то сохранять.
|
Страница 3 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |