Визуальный язык как средство коммуникации

в системе «человек–машина»

____________________

Берестнева О.Г., Брылина И.В., Корниенко А.А., Моисеенко А.В.



Аннотация

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

Ключевые слова: язык программирования, визуальный язык, мышление и язык, философия языка, информационно-коммуникационные и когнитивные технологии, облачные вычисления.

В труде французского философа Мишеля Фуко «Слова и вещи» ставится вопрос: «Что такое язык? Говорит ли все то, что безмолвствует в мире в наших жестах, во всей загадочной символике нашего поведения, в наших снах и наших болезнях, – говорит ли все это, и на каком языке, сообразно какой грамматике? Все ли способно к означению? Каково отношение между языком и бытием...» [1, с. 13]. В этих словах заложена программа комплексного исследования языка силами ученых разных направлений [2, с. 289–290].

Проблема языка изучается в рамках таких наук, как семантика, семиотика, логика, лингвистика, психология и др. Разработка компьютерного языка тоже предполагает междисциплинарное исследование, в частности, в области кибернетики, философии математики, философии языка и новой области философского анализа – философии информации [3; 4, с. 44]. Данная область является углублением уже наметившегося направления – изучения философских проблем применения компьютерных технологий [5, с. 459]. Феномен языка имеет множество аспектов исследования: соотношение языка с бытием, с мышлением, символические (знаковые) и смысловые основы языка, соотношение естественного и искусственного языков.

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

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

Одновременно наблюдается быстрое увеличение производительности компьютеров за счет внедрения многоядерной архитектуры, увеличения вместимости средств хранения данных, необходимых для расчетов и моделирования, а также для интернет-публикаций и архивов. В последнее время производители процессоров, например, таких как AMD и Intel, вводят поддержку для виртуализации, позволяя отделить вычислительную среду от «железа» и таким образом обеспечить распределенность и масштабируемость операционной среды. Возникновение новых стандартов интернета, таких как HTML5, и широкое распространение парадигмы компьютерных сервисов приводит к воплощению в жизнь концепции Web 2.0 [7], обозначенной Тимом О'Рейли около десяти лет назад. Программы, работающие в глобальной сети, приобретают функционал программ, работающих на локальных компьютерах. Это приводит к появлению новой информационной среды – среды облачных вычислений. Программы «движутся» с компьютера пользователя в облако. Крупные фирмы начинают создавать облачные версии своих продуктов [8]. Персональный компьютер в облачной концепции рассматривается лишь как средство доступа к облачной среде.

Нельзя не отметить, что возрастает объем знаний, который накопило человечество и который нужно освоить специалисту для успешного выполнения профессиональных обязанностей. Потребность в создании программ в различных областях приводит к ситуации, когда, скажем, врач должен одновременно быть программистом или программист – врачом.

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

Развитие средств создания алгоритмов

Проследим способы взаимодействия человека с вычислительной машиной. На начальном этапе такое взаимодействие обеспечивалось благодаря программам, составленным в машинных кодах. Этим умением владел ограниченный круг профессионалов, понимающих архитектуру электронного устройства. Не было не только визуального, но и текстового логического оформления программ. С появлением языков ассемблера, мнемонически представляющих программу в кодах, появилось текстово-логическое описание программы. Круг программистов расширился, но это все еще были узкие профессионалы. Стали появляться первые языки программирования высокого уровня, такие как Фортран, Паскаль и т.д. К вычислительной технике стали проявлять интерес представители интеллектуальных профессий, прежде всего ученые, нуждающиеся в проведении вычислений, они становились программистами в силу необходимости. Наряду с главной программой любой вычислительной машины – операционной системой, стало появляться пользовательское программное обеспечение, которое уже не посредством языков программирования, а сначала текстовых, а впоследствии и графических интерфейсов предоставляет доступ к вычислительной среде широкому кругу пользователей.

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

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

Создание языка программирования для гибкого изменения функциональности бухгалтерской программы 1С привело к появлению новой профессии – «программист 1С». С одной стороны, введение в синтаксис языка 1С операторов на русском языке создало неудобства для интеграции с другими языками программирования, а также для восприятия языка программистами на классических языках высокого уровня. С другой стороны, наличие языковых конструкций, сходных с классическими языками, осложнило использование бухгалтерами языковых средств, встроенных в программу. Большая часть пользователей известного редактора Word из пакета Microsoft Office не только не использует средства программирования, встроенные в программу, но даже не догадывается об их существовании. Можно сделать вывод, что человек без специальной подготовки вряд ли способен влиять на изменение функционала программного обеспечения при условии использования традиционных средств классического программирования.

Рассматривая визуальное моделирование программного обеспечения в рамках генерации исполняемого машинного кода, нельзя не обратить внимания на следующие моменты. Как правило, разработанное таким образом средство составления алгоритма имеет узкопредметное предназначение, часто используется символика, хорошо понятная только в профессиональной среде, где применяется конкретная программа. Другая особенность заключается в том, что при создании визуальных моделей часто нарушается семантическая целостность в отношении алгоритма, передаваемого вычислительной машине [9].

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

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

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

История анализа связи мышления и языка восходит к Античности, когда Аристотелем были открыты и описаны единые для всех людей законы мышления – законы формальной логики. В XVII в. Г. Лейбниц перевел законы формальной логики на символический язык – возникла символическая логика, которая в ХХ в. стала основой развития языков компьютерного программирования, которые основаны на рационально-логических законах.

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

Способ общения «человек–машина» интуитивно понятен – взаимодействие посредством интерфейсов для непрограммистов и посредством языков программирования для программистов. Способ общения машины с человеком менее очевиден. Объясним его на примере. В информационной среде существуют определенные алгоритмы упорядочения данных, такие как базы данных или данные, представленные с помощью языков описания данных, например XML, JSON. Для того чтобы человек принял данные от машины, они должны быть оформлены по определенным правилам. Формы представления и передачи данных от машины человеку могут быть разными в зависимости от языка, на котором «говорит» машина. Один из способов передачи данных, упорядоченных в формате XML, от машины к человеку, который авторы называют языком, описан в [10]. Если человек передает данные машине для хранения в формате XML, то он пользуется другими «средствами общения», программисты – языками программирования, остальные люди программным интерфейсом, который создали для них программисты.

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

Способом такой интеграции можно рассматривать применение визуальных языков программирования, использующих общепринятые в социуме визуальные символы. Визуальные средства передачи информации известны на протяжении всей человеческой истории – от наскальных рисунков первобытного человека [11] до знаков дорожного движения. Первый визуальный язык программирования, основанный на конструкциях классического текстового языка программирования Scratch, был разработан в Массачусетском технологическом институте для обучения программированию детей младших и средних классов. Дети продемонстрировали высокую степень обучаемости составлению алгоритмов с использованием визуальных средств [12]. В работе [6] отмечено также широкое использование непрофессионалами средств визуального программирования при составления алгоритмов управления анимацией.

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

Рассматривая визуальные средства разработки алгоритмов для непрофессионалов, следует обратить внимание на некоторые аспекты этой проблемы. Способ восприятия визуальной информации зависит от многих факторов: возраста, профессии, культурных особенностей социума, в котором проживает человек. Преодолеть соответствующие трудности с технической точки зрения можно, создавая профессиональноориентированные, социумноориентированные визуальные языки программирования, осуществляя взаимодействие между различными языками с помощью общепринятых в более широком слое сообщества пользователей графических символов. Большее внимание следует уделить средствам разработки новых языков, таких как Google Blockly [13]. Развитие облачных технологий открывает новые возможности создания и тестирования новых визуальных языков программирования.

* * *

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

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

Данная проблема выходит далеко за рамки технического решения и требует осмысления ее социальных, философских и психологических аспектов. Термин «визуальный» не следует отождествлять с термином «графический»: наряду с плоскими визуальными символами в языковые конструкции в будущем могут быть введены 3D-изображения, аудио- и видеовзаимодействие человека с машиной, информация с датчиков, связанных с органами чувств. Хотя доля информации, передаваемой в современном обществе без использования текста, стремительно увеличивается, проблема ее связи с понятийным мышлением требует более детального изучения. Кроме того, эта проблема тесно связана с развитием NBICS-технологий и исследованиями в области искусственного интеллекта как моделирования образного мышления.

Работа выполнена в рамках проекта № 1957 Госзадания "НАУКА" Министерства образования и науки РФ.

Литература

1. Фуко М. Слова и вещи. Археология гуманитарных наук. СПб: А-cad, 1994.

2. Лешкевич Т.Г. Философия науки: традиции и новации. Учебное пособие для вузов. М.: ПРИОР, 2001.

3. Gabbay Dov M., Thagard P., Woods J. Philosophy of Information. Hardbound: North-Holland, 2008.

4. Баева Л.В. Виртуальная сансара: трансформация модели реальности в условиях информационной культуры // Информационное общество. 2012. Вып. 2. С. 44–51.

5. Turner R., Eden A. The Philosophy of Computer Science // Journal of Applied Logic. 2008. № 6.

6. Zhang Y., Surisetty S., Scaffidi C. Assisting comprehension of animation programs through interactive code visualization // Journal of Visual Languages & Computing. V. 24. Is. 5. October 2013. P. 313–326.

7. O'Reilly T. What is Web 2.0 – design patterns and business models for the next generation of software // Communications & Strategies. 2007. № 65. Р. 17–38.

8. Elsenpeter R., Velte A., Velte T. Cloud Computing, а Practical Approach. New York: McGraw-Hill, Inc. P. 334.

9. Кознов Д.В. Основы визуального моделирования. М: Интернет-Университет информационных технологий; БИНОМ, Лаборатория знаний, 2008.

10. Tekli G., Chbeir R., Fayolle J. A visual programming language for XML manipulation Original Research Article // Journal of Visual Languages & Computing. V. 24. Is. 2. April 2013. P. 110–135.

11. Woods C. Visible Language: Inventions of Writing in the Ancient Middle East and Beyond. Chicago: The Oriental Institute of the University of Chicago, 2010; Oriental Institute Museum Publications 32. P. 240.

12. Maloney J., et al. The Scratch Programming Language and Environment // ACM Transactions on Computing Education. V. 10. Is. 4. November 2010. Article No.16.

13. Spina C. Learn computer programming and Web design: Choosing the best resources // College & Research Libraries News. November 2013. V. 74. № 10. P. 522–525.

_________________________________________________

БЕРЕСТНЕВА Ольга Григорьевна

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

БРЫЛИНА Ирина Владимировна

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

КОРНИЕНКО Алла Александровна

Доктор философских наук, заведующая кафедрой философии Института социально-гуманитарных технологий Национального исследовательского Томского политехнического университета

МОИСЕЕНКО Александр Владимирович

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


© Информационное общество, 2014 вып. 3, с. 63-69.