LINUX.ORG.RU
ФорумTalks

GUI vs CLI

 ,


0

2

Вот смотрите, какая мне мысль в голову пришла:

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

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

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

Так почему, в операционных системах до сих пор нет годного консольного интерфейса? tty в линуксе не умеет в юникод, эмуляторы терминала внутри иксов - это просто нонсенс с архитектурной точки зрения.

Дискасс

Именно CLI наименее интуитивный способ общения с компьютером. Иди и не заглядывая в man перекодируй файл из mpeg-4 в xvid. А потом повтори тоже самое через графическую гуйню и испытай просветление.

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

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

Таким образом, перекодировка файла из одного формата в другой в консоли в идеальном мире выглядит так:

-> конвертировать файл1.avi <- какой исходный формат? -> mpeg-4 <- какой формат результата? -> xvid <- качество? -> средне <- готово!

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

belkabelka
() автор топика

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

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

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

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

Все знают, что делать с консолью - писать в ней команды. Это и есть интуитивный способ. Что именно делать с графическим интерфейсом, заранее неизвестно, в нем много кнопок и полей ввода.

Ты всё хотел сделать красиво и тонко, но недодумал мысль.
Смотри: консольный интерфейс заключается в вводе команд. Но с графическим интерфейсом тоже всё просто — тыкай по кнопкам, спискам и полям. Да, вариантов объектов для (заметь единообразного)взаимодействия больше. Но ведь и идиотов не заставляют быть операторами таких машин.
Идея тривиальна и в GUI и в CLI и не требует особого рассмотрения. Это как сраться из-за пары сантиметров при расчёте расстояний между звёздами.
А теперь давай заново и обдумывая каждое предложение...

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

идиотов не заставляют быть операторами таких маши

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

пожалуйста, давайте обойдемся без «давай»

belkabelka
() автор топика

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

crowbar
()
Ответ на: комментарий от belkabelka

я ни в коем случае не являюсь апологетом консоли, если вдруг вы так подумали

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

то именно делать с графическим интерфейсом, заранее неизвестно, в нем много кнопок и полей ввода.

Как будто с CLI/TUI не так. Да тот же порядок команд не всегда ясен и интуитивен. А уж о том, что где-то идёт команда источник назначение, а где-то команда назначение источник говорить вообще лень.

Не читать инструкции это так модно и современно.

Что тебе мешает прочитать инструкцию, чтобы понять

Что именно делать с графическим интерфейсом
в нем много кнопок и полей ввода.

?

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

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

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

одно дело инструкция к программе, а другое дело инструкция к интерфейсу, понимаешь разницу?

порядок команд понятен и интуитивен тому, кто понимает процесс, понимает, что он делает. но это совсем не относится к моему вопросу.

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

К сожалению, ты меня не понял. Все знают, что делать с GUI - тыкать по кнопочкам. Это и есть интуитивный способ. Что именно делать с консолью, заранее неизвестно, в ней много команд и вариантов опций. Что делает текстовая консоль - автоматизирует наиболее используемые последовательности команд.

Таким образом, перекодировка файла из одного формата в другой в GUI в идеальном мире выглядит так:

-> конвертировать файл1.avi <- какой исходный формат? -> mpeg-4 <- какой формат результата? -> xvid <- качество? -> средне <- готово!

Ну и фраза «заглянув в man» это просто пушка. Читать инструкции это так модно и современно. Я же не такой умный, я без инструкций не совладаю.

Gregon
()
Ответ на: комментарий от belkabelka

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

«Странным» это является только для умеющих читать доки. Домохозяйки читать не умеют.

Gregon
()
Ответ на: комментарий от belkabelka

порядок команд понятен и интуитивен

Ага, особенно для какого-нибудь ffmpeg.

Gregon
()

эмуляторы терминала внутри иксов - это просто нонсенс с архитектурной точки зрения

Инфа 146%?

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

Нет непонятен и неинтуитивен, когда у одной команды по одним канонам и стандартам, а у другой — по другим. Те же отличия между BSD-командами и Linux-командами и шеллами в частности. Особенно, когда в одной системе работает как «команда -i -t», так и «команда -it», а в другой — только первое.

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

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

еще раз - программы, опции, кнопки не важны, я говорю о концепции интерфейсов

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

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

fail. Это слегка упрощенный, в целях ещё большего повышения избыточности, естественный разговорный язык.

ученые используют свой формализованный язык. юристы

fail. Этот язык используется только для описания моделей.

юристы - свой формализованный язык

fail. Это слегка упрощенный, в целях повышения формальности, естественный разговорный язык.

sequel вполне себе появлялся как что-то хоть немного близкое к естественному языку

fail. «Тонкий слой подобия»

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

fail. Это был естественный разговорный язык

потом учил иностранный язык, чтобы общаться с иностранцами

fail. Это был естественный разговорный язык

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

fail. Ты говорил не о надеждах а об удобстве.

поэтому приходится пользоваться формализованным и изучать его

fail. Можно пользоваться GUI, это значительно легче.

с каких пор обучение стало для человека непостижимой и неприятной задачей?

fail. Ты говорил о том, что это легче чем GUI

ready>_

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

А, я понял!

У ТС судя по всему все кнопочки в GUI без надписей. Вот и переживает.

Gregon
()
Ответ на: комментарий от sin_a

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

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

Пиши интерпретатор для естественного человеческого языка. Это единственная, на текущий момент, стОящая задача в информационных технологиях.

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

Лучше пусть GUI-конфигуратор напишет, работающий на всех дистрах, включая слаку. Оно по-проще будет.

Gregon
()

gui - для ленивых, cli - для прокачанных

яблочная система как раз и задумывалась как эталон для наиболее ленивых, что бы музыку одной кнопкой забрасывать и слушать

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

а в чем смысл эмулировать текстовый режим работы внутри графического

А почему, собственно, нет?

который запущен из текстового

Эээ…

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

Проблемы отсутствия стандартов возникают из-за того, что CLI — устаревшее говно by Desing. Где каждый норовит делать так, как он хочет. К примеру, почему используется patch -Np1 < filename.patch, а не интуитивно-понятное patch -Np1 filename.patch?

Как работать с кнопками, флажками и прочими элементами — понятно всем. GUI моделирует пульт управления. А как работать с параметрами консольных команд понятно только после прочтения мануала.

Проблема в том, что CLI имеет серьезное ограничение — отсутствие интуитивного функционала для большого количества опций. Если в GUI ты сможешь красиво и понятно раскидать опции по вкладкам, то в CLI это будет нечитабельным говном вида: ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg

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

Нет. Для этого нужно изучать не программирование а язык. Тот самый. Нужна лингвистика.

sin_a ★★★★★
()

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

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

эмуляторы терминала внутри иксов - это просто нонсенс с архитектурной точки зрения.

Так удобно же.

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

с каких пор обучение стало для человека непостижимой и неприятной задачей?

Неприятной - примерно с момента появления человека.

Alsvartr ★★★★★
()

tty в линуксе не умеет в юникод

С фряхой не перепутал?

templarrr ★★★★★
()

консольный интерфейс интуитивно понятен любому

Думаю, не «консольный» а «командный».

Ты забыл, сколько тебя учили говорить/слушать/читать/писать/понимать/объясняться. Думаю, 10 лет - крайне оптимистичная оценка. Это весьма далеко от «интуитивно». Правда, хорошо отработанные рефлексы бывают намного эффективнее «интуитивных» действий, т.ч. оно того стоит.

почему до сих пор нет годного интерфейса

Графического - потому, что системы бытро становятся сложными, т.ч. гуи не способен. Командного - потому, что не нужно: «привыкшему», по большому счёту, представление команд малокритично - он думает об их сути. Да, иногда чувствуешь, что чуть-чуть не хватает, но совсем мало.

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

Что именно делать с графическим интерфейсом, заранее неизвестно, в нем много кнопок и полей ввода.

Такой интерфейс проектируют только у поделок под этот ваш линукс. У нормальных программ интуитивно понятный интерфейс.

Всему своё. Какие-то операции удобней выполнять из командной строки, какие-то нет.

i1atf
()

За весь тред никто не упомянул PowerShell.

proud_anon ★★★★★
()

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

Ceiling_QB ★★★★
()

CLI Linux'а идеально, никогда не будет ничего удобнее и лучше, а юникод никому не нужен, всем более чем достаточно KOI8-R.

saahriktu ★★★★★
()

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

у меня есть. bash называется. А так все верно сказал. Я это уже давно понял, просто доказывать это фанатикам на ЛОРе бесполезно.

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

почему используется patch -Np1 < filename.patch, а не интуитивно-понятное patch -Np1 filename.patch?

The Art of Unix Programming: Basics of Unix Philosophy

Rule of Composition: Design programs to be connected with other programs.

It's hard to avoid programming overcomplicated monoliths if none of your programs can talk to each other.

Unix tradition strongly encourages writing programs that read and write simple, textual, stream-oriented, device-independent formats. Under classic Unix, as many programs as possible are written as simple filters, which take a simple text stream on input and process it into another simple text stream on output.

ksa242
()

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

w1nner ★★★★★
()

Ну, есть Siri для консоли. Скомпили, пользуйся.

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