|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Zahar Kiselev 2:5030/382.1 08 Dec 2002 10:32:58 To : Victor Wagner Subject : Re: Хаааачууууу нормальную IDE под Linux!!! -------------------------------------------------------------------------------- Dec 08 00:23 02, Victor Wagner wrote to Zahar Kiselev: ZK>> И с точки зрения категории, которую раньше называли "программирующие ZK>> пользователи" - стало намного хуже. Ибо в Линуксе непрофессионалу ZK>> реально написать или программу с интерфейсом командной строки, или ZK>> использовать ncurses, которые умеет _значительно_ меньше, чем тот же ZK>> TurboProfessional. VW> Это ты зря. Для начала, пользователи консоли вроде тебя, среди этой VW> категории - маргиналы. Консоль она рай для сисадмина (в некотором Да при чем здесь я с консолью... И при чем здесь консоль вообще... VW> К тому же графические оконные интерфейсы - естественное представление VW> многозадачной ОС для пользователя. С этим никто и не спорит. Только писать эти интерфейсы не многие могут. VW> Поэтому для типичного современного "программирующего пользователя" VW> интерфейс это ни разу не curses - gtk, qt , fltk, tk, wxWindows Что-то я не видел вокруг себя не-профессионалов, кто могу что-нибудь на этом написать. VW> Все они умеют значительно больше чем Turbo professional. И все VW> достаточно просты в освоении. Вот только про простоту - не надо пожалуйста. Сколько народа писали с использованием TP - я знаю, а вот чтобы кто-то из знакомых написал что-то с помощью современных средств - это большая редкость. VW> Hа самом деле единственное, что тебе мешает писать сейчас VW> пользовательские интерфейсы - это укоренившаяся со времен Turbo VW> Professional привычка что программа описывает последовательность VW> действий компьютера. Разумеется - на то она и программа. Скажем так - такой подход к программированию хотябы доступен для понимания человек, изучавшему программирование в институте(я имею в виду - не как основную дисциплину). VW> Hету в программах с полноэкранным интерфейсом ПОСЛЕДОВАТЕЛЬHОСТИ. VW> Там есть набор (относительно слабо упорядоченный) действий ^^^^^ >которые может произвести пользователь, и описание реакции программы на эти VW> действия. Внутри обработчика отдельного события может быть VW> последовательность, а может и не быть - в том случае если в процессе VW> этой обработки порождаются новые интерфейсные элементы (скажем диалоговое VW> окно). Вот именно, что "слабо упорядоченный" и "может быть, а может и не быть". В результате программирование этого становится до невозможности заумным. VW> явным образом реализовывать какой-нибудь Gtk_MainLoop, чтобы перейти от VW> последовательной модели к событийной. Особенно это "удобно" когда сама задача явно представляется в последовательной модели с ветвлениями по результатам ответов пользователя на задаваемые вопросы. И "вывернуть" это наизнанку - не так-то просто. > Hо, как правило, этот цикл VW> обработки событий сводится к одному вызову предоставленной тулкитом VW> функции, а в более высокоуровневых языках, вроде Tcl или Erlang - VW> вообще скрыт где-то в недрах интерпретатора. Только вот в институтах все учили Си или Паскаль. И в магазинах книжки по этим экзотическим языкам не продаются. VW> Самое главное, что следует запомнить пользователю, желающему просто и VW> удобно писать интерфейсы - программа никогда (за исключением VW> критических ситуаций) ждать от пользователя ответа на какой-то конкретный VW> вопрос. Особенно этот совет актуален если вопрос "жизненно важный" и от него зависят дальнейшие действия. VW> или забыть открытый диалог на экране и переключиться на совсем другие VW> действия. А это отдельная проблема, если с программой будет работать _оператор_. В этом случае бувает нужно приложить специальные усилия к тому, чтобы он ("по запарке" или в виду не особо высокой квалификации) не забыл ответить на важный вопрос, переключившись на другие действия. Кстати говоря - у приятеля задачка как раз такая - надо написать нечто с очень жестко заданными ограничениями - так как работать с этим предстоит человеку, не являющемуся специалистом в компьютерах. VW> Кстати, в текстовом режиме все это тоже делается. Hе лезь в VW> низкоуровневый curses, возьми Curses Development Kit или Newt. Да я-то про это знаю, и даже понемногу использую когда мне требуется. ZK>> _Я_ даже и не пытаюсь влезать в программирование с использованием ZK>> GTK. Потому что к моменту, когда я хоть сколько-нибудь разберусь - ZK>> исходная задача давно уже станет не актуальной. VW> Поэтому осваивать такие технологии надо на хоббиистских задачах, типа VW> каталога домашней библиотеки. Почти попал:-) У приятеля задача - работа с фонотекой (он звукорежиссер, как я уже говорил). Он посидел и родил(в письменном виде) спецификацию на интерфейс, так как удобное представление всех этих десятков тысяч фрагментов записей является основной идеей, облегчающей поиск и выбор нужного. Если он это описание уже наколотил с бумаги в комп - могу попросить у него и тебе прислать для ознакомления. Сразу скажу - звукорежиссер он - один из лучших, и от _точно_ знает что задача в его предметной области должна выглядеть именно так, а не иначе. Там уже вылезли кое-какие казалось бы мелочи, но как это реализовать в рамках существующих GTK и компании - совершенно не понятно. Позволю себе только один пример. Для одного из вариантов представления информации используется "дерево", такое как в виндовом эксплорере в левом окне. Дерево может быть большим(длинным, но не сильно разветвленным, максимум три уровня), на один экран не помещается. Вот только при перемещении на следующий уровень "вправо" и достижении конца этой ветви движением "вниз" категорически не должно быть "перескакивания" на соседнюю ветвь, как это имеет место во всех готовых "деревьях" - что в виндах, что в GTK. Одновременно можно ходить только по одной ветви. Потому что в данной прикладной задаче это приведет к путанице и сильно усложнит работу. Отсюда возникает задача - либо влезть внутрь того же GTK и слегка переделать имеющееся "дерево", либо опять же влезть внутрь и написать свою реализацию "дерева". Как ты понимаешь - при уровне сложности GTK ни первое, ни второе не реально, а делать интерфейс без соблюдения требований прикладной области - нет смысла, таких программ, сделанных методом подгонки под готовое - вполне достаточно и специалисты в прикладной области пользоваться ими не особенно горят желанием. Zahar(@spbdept.rbc.ru) --- Msged/LNX 6.1.0 * Origin: Остров Большой Березовый: http://birch-island.spb.ru (2:5030/382.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/32883df31853.html, оценка из 5, голосов 10
|