OberonCore
https://forum.oberoncore.ru/

файловая система Блэкбокса
https://forum.oberoncore.ru/viewtopic.php?f=23&t=2475
Страница 1 из 2

Автор:  Info21 [ Вторник, 23 Март, 2010 19:36 ]
Заголовок сообщения:  файловая система Блэкбокса

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

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

Автор:  Илья Ермаков [ Вторник, 23 Март, 2010 20:45 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Видимо, речь про то, что без ООП задействовать стандартные средства ББ не получается.
А ООП ещё надо объяснить.

Автор:  Валерий Лаптев [ Вторник, 23 Март, 2010 22:15 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Не...
1. Не вешайте на меня, гражданин насяльника, мокруху... :) Я никаких претензий не предъявлял.
2. В паскале (и в С/С++) простые концепции файлов. К которым все привыкли.
Текстовые и файлы записей. В С/С++ вообще просто потоки символов.
Есть стандартный консольный ввод-вывод к которому народ привыкал более 20 лет.
Консольный ввод-вывод очень легко и просто заменяется. Более того, коммандер, где вызов и данные прописываются мне представляется гораздо удобнее, чем обычный консольный ввод-вывод.
А вот с файлами не так все просто.
Откроем книжку Потопахина, страница 115, листинг 120.
0. Требуется три объекта: файл, локатор и ридер-райтер.
1. Определить папку. Для этого нужен отдельный объект-локатор.
В турбопаскале эта операция может отсутствовать. Тогда файл просто пишется в ту же папку, откуда запустилась программа. Это - свойство операционной системы, поэтому все знают, что такое текущий диск и текущая папка.
2. Для записи в файл требуется отдельный от файла объект, который надо связывать с объектом-файлом.
3. Для каждого типа данных - собственная процедура ввода-вывода.
4. Требуется регистрация файла.
Я согласен, когда привыкнешь - вроде и ничего. Но первоначально - непривычно. Понятно, что это следствие того, что ББ практически отсекает от операционной системы. Но...
у обычного учителя возникает сразу много вопросов:
1. Эти самые ридеры-райтеры они текстовые файлы пишут-читают или двоичные?
2. А как запись вывести-ввести?
3. А если при вводе-выводе сбой - чего делать?
4. А массив одной операцией можно ввести-вывести?
Понятно, что для этого ему надо изучать модуль Files, модуль Stores. Но по хелпу преподу-информатику это сделать сложно. Лучше, если в некоем учебном пособии будет написана глава: Ввод-вывод, где будет раздел Работа с файлами.

У нас два продвинутых препода в Астрахани, которые поставляют нам неплохих студентов. Одному я даже книжку Вирта просто подарил. Неоднократно о ББ рассказывал. О книге Потопахина тоже говорил. Но пока речи о переходе на ББ даже у них речи не идет. Сложно освоить без простых учебных пособий.

Автор:  Info21 [ Вторник, 23 Март, 2010 23:23 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Валерий Лаптев писал(а):
Не...
1. Не вешайте на меня, гражданин насяльника, мокруху... :) Я никаких претензий не предъявлял.
Ага! Отредактировано! 8)

"нетрадиционно" = "недостаток" ??? а может, наоборот, достоинство?

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

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

Автор:  Евгений Темиргалеев [ Среда, 24 Март, 2010 00:00 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Info21 писал(а):
Разве в школьном комплекте нет модуля с примитивным IO?
хотел было идею предложить... а уже всё есть : )

Автор:  Info21 [ Среда, 24 Март, 2010 01:20 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Валерий Лаптев писал(а):
у обычного учителя возникает сразу много вопросов:
1. Эти самые ридеры-райтеры они текстовые файлы пишут-читают или двоичные?
2. А как запись вывести-ввести?
3. А если при вводе-выводе сбой - чего делать?
4. А массив одной операцией можно ввести-вывести?

Это у *обычного* учителя??

Сбой -- поля res у локаторов.

4. -- это *проблема*?

И т.д. Опять из мух слонов раздуваем.

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

Автор:  Валерий Лаптев [ Среда, 24 Март, 2010 09:36 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Федор Василич!
Ну что вы равняете себя и программеров со школьным учителем информатики. Я учил некоторых. Много лет назад, на паскале. Ну, ей Богу, Кесарю-кесарево, а слесарю-слесарево. И записывать слесарей в Кесари - не следует.
Я ж говорю, что даже два продвинутых препода - пока не переходят.
Для преподов нужно учебное пособие, простое, как валенок. Чтобы там было написано: так, этак и вот так. И никак иначе.

Автор:  Info21 [ Среда, 24 Март, 2010 10:45 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Валерий Лаптев писал(а):
Ну что вы равняете себя ...
Удивляюсь я постоянно Вашим тезисам.
Слава богу, про разных училок и на что оне способные я уже гораздо более в курсе, чем почти все тут минус В.В.Потопахин.

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

Пособие как валенок? Пишите! Это Вам гораздо ближе по профилю, чем мне. А тривиальные вещи объяснять, да еще в форме упрека, <подбираю слово ... вот 8)> неадекватно.

Автор:  Валерий Лаптев [ Среда, 24 Март, 2010 13:56 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Info21 писал(а):
Валерий Лаптев писал(а):
Ну что вы равняете себя ...
Удивляюсь я постоянно Вашим тезисам.
Слава богу, про разных училок и на что оне способные я уже гораздо более в курсе, чем почти все тут минус В.В.Потопахин.

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

Пособие как валенок? Пишите! Это Вам гораздо ближе по профилю, чем мне. А тривиальные вещи объяснять, да еще в форме упрека, <подбираю слово ... вот 8)> неадекватно.

Федор Василич! По поводу упреков вы уже на воду дуете... :) Опять же - "не надо на меня мокруху вешать, насяльника". :mrgreen:
Я ж к вам претензий не предъявляю за упрек о моем посте на педсовете. :) Я это даже как упрек не воспринимаю. Давайте и вы так же будуте.
А по поводу училок - вы ж сами говорите, что гораздо боле меня знаете. Я тут только с одной общаюсь. Она из Белгорода - долго преподавала (лет 7) информатику в старших классах. Первое ее наблюдение: наличие программирования в программе обучения довольно хорошо развивает мозги школьникам. Они потом в других разделах информатики ориентируются на счет раз. Да и по математике получше выглядят в среднем. Имела возможность сравнивать.
Второе ее наблюдение: в обычном среднем классе из 25-30 учеников с интересом изучают программирование примерно 2 человека.
Книжку писать мне пока тоже недосуг - если только в конце года начать получится.

Автор:  Валерий Лаптев [ Среда, 24 Март, 2010 14:11 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Info21 писал(а):
Валерий Лаптев писал(а):
Не...
1. Не вешайте на меня, гражданин насяльника, мокруху... :) Я никаких претензий не предъявлял.
Ага! Отредактировано! 8)
"нетрадиционно" = "недостаток" ??? а может, наоборот, достоинство?

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

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

Ну, про IO я написал, что это хорошо.
Про файлы, нужны ли они школьникам - даже не знаю. А вот преподу нужны. Вы ж знаете, что преподавать можно только тогда, когда знаешь и умеешь раз в 10 больше того, что реально преподаешь.
Я, например, возьмусь преподавать на КП+ББ только после того, как чего-то большое доделаю. Дихард, например.

Автор:  Александр Шостак [ Среда, 24 Март, 2010 18:21 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

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

Автор:  Илья Ермаков [ Среда, 24 Март, 2010 19:13 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

(Ну что значит интуитивно. Раскин и другие корифеи интерфейсов вообще рекомендуют исключить это слово из лексикона.)

Что там спорно-непривычно? Открытия-закрытия-сохранения? Ну и что? Открытие - закрытие - это оконечные кусочки, на верхнем уровне, в любом приложении.

Основная часть получает Files.File - и ей наплевать, что это за файл и откуда (может, вообще в памяти). Сам File + Reader + Writer - безупречны.

Автор:  Евгений Темиргалеев [ Среда, 24 Март, 2010 20:21 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Berserker писал(а):
Интуитивно подход ББ/Оберона к файлам не воспринимается. Сугубо личные наблюдения...
Ваши наблюдения здесь не годятся. Нужны наблюдения человека, которого с нуля обучают.

Автор:  Александр Шостак [ Среда, 24 Март, 2010 20:56 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Если не новички тяжело воспринимают, то с какой кстати новички воспримут? Вбейте в гугле: "паттерн Carrier Rider Mapper" (я искал несколько недель назад). За сколько можно незнакомому с ним человеку объяснить его, а после показать, как это реализовано в Обероне? Чтобы дошло? При этом необходимость абстракции от типа носителя возникает в реальной практике и программист легко пишет свой класс VFS. По сути то же самое. Нужен простой документ с ясным объяснением, зачем разведены Reader/Writer (например, можно представить архив в виде файловой системы, а распаковка и упаковка данных - абсолютно разные операции, что на обычных файлах не видно), что такое Локатор и зачем он нужен (опять-таки, интуитивно не ясно), к чему такая система создания и сохранения файла (а сие есть вообще принцип Оберон-систем и каким боком его переняли в ББ не ясно), почему читаются данные побайтово и т.д.

Кстати, регистрация файла происходит в конце работы с ним. То бишь при вылете в середине данные пропадут?

Автор:  Илья Ермаков [ Среда, 24 Март, 2010 21:19 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Можно зарегистрировать файл, а потом его переоткрыть в эксклюзивном режиме - и писать на здоровье.


По поводу ридеров-райтеров. До ООП трудновато, да. После знакомства с ООП - никаких вопросов "зачем" возникать не должно. Потому что логичное разделение ролей между несколькими объектами. Раз разделять можно, значит, разделять нужно; для того, чтобы не разделять, нужна аргументация; для того, чтобы разделять, аргументации не нужно.

Автор:  Александр Шостак [ Среда, 24 Март, 2010 21:45 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Цитата:
возникать не должно

У квалифицированного инженера или постигающего программиста? Скажу откровенно, с такой мыслью до сих пор не встречался:
Цитата:
Раз разделять можно, значит, разделять нужно; для того, чтобы не разделять, нужна аргументация; для того, чтобы разделять, аргументации не нужно.

И думаю, я не одинок. А принцип понял тогда, когда вспомнил про реализацию виртуальной файловой системы, которая делалась с целью нивелировать разницу между доступом к обычным файлам и, например, работой с файлом определённого формата, чьё содержимое можно представить в виде иерархической структуры папок и файлов. Как только это показать - смысл разделения Reader/Writer становится ясным. И подобный подход гибче, чем реализовывать объект VFS с методами Read/Write, который должен уметь и писать и читать одновременно (Delphi - концепция потоков байтов - TStream).

Автор:  Илья Ермаков [ Среда, 24 Март, 2010 21:49 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Да при чём тут файловые системы...
"Разделяй и властвуй" (в переводе Info21 "управляй") - куда очевиднее.

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

Автор:  Илья Ермаков [ Среда, 24 Март, 2010 21:55 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Хотя, я несколько неправ, в том, что это "очевидно"...
Естественное "банановое" желание - иметь сразу и всё.
А делить - это лишние затраты энергии и при создании, и при использовании, и без ОПЫТА не совсем ясно, что от этого выигрывается.

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

Автор:  Axcel [ Четверг, 25 Март, 2010 00:46 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

Ну не знаю, по моему все все просто: некоторая усложненность штатной файловой системы ББ обусловлена необходимостью поддержки составных документов. В школе следует использовать специальные, упрощенные, "учебные" средства, что вобщем то и есть, необходимо лишь расставить акценты.

Автор:  Валерий Лаптев [ Четверг, 25 Март, 2010 07:39 ]
Заголовок сообщения:  Re: файловая система Блэкбокса

1. Насчет "все просто" - это после того, как разобрался. Новички - просто запомнят. Им надо написать: делай вот так! Правда среди них есть некоторые въедливые товарищи, которые постоянно задают вопросы типа "А почему...". И тут как сказал Илья, без ООП объяснить сложновато.
2. Программерам из другого мира сложно. Ведь обычно опытный программер изучает новый язык, рассматривая аналоги. Вы заметили, что очень многие приходящие про ввод-вывод вопросы задают? Это от того, что аналоги простых потоков не находят. И аналогов двоичных файлов с записями. Кто задерживается, как я, тот в конце-концов, разбирается. А те, у кого "просто интерес", не видят смысла изучать не совсем традиционный ввод-вывод, так как в "остальном" мире принято не так.
3. Прошу не воспринимать мой пост как упрек. Исключительно для выяснения истины... :)

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/