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

Когда мы смотрим на документацию по Java, у разработчиков есть особый стиль написания документации. Текст написан очень формально и, кажется, имеет строгие правила написания. Субъект предложения упоминается и упоминается полным именем, например, двусвязный список. Принимая во внимание, что комментарии к методам разные.

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

Если мы посмотрим на сообщество Pharo, их мысли выражаются по-разному. Сообщество Pharo использует совершенно другую языковую модель. В Pharo большая часть документации предоставляется через комментарии к классам. Итак, мы начали смотреть комментарии к классам и анализировать языковой паттерн разработчиков. Мы обнаружили, что сообщество Pharo использует полные предложения, а объекты рассматриваются как люди. Объекты разговаривают друг с другом, или, по крайней мере, язык создает достаточно убедительную иллюзию, что они взаимодействуют так же, как и мы, люди. Все окружение поддерживает эту прекрасную иллюзию. Класс также является объектом и сообщает о своих обязанностях, используя местоимение «я». Еще один интересный факт – выбор слов разный. Таким образом, у языка и его сообщества есть шаблон, и этот шаблон создан для того, чтобы вдохновить разработчиков на осмысленное подключение к виртуальному миру.

Руководящие принципы документации играют здесь важную роль, но могут быть и другие факторы. Меня всегда удивляло, как люди из одного и того же сообщества программистов имеют одинаковый стиль письма. Какова роль сообщества в этом выражении знаний?

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

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

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

Разве не загадочно, что два языка иногда пытаются решить одну и ту же проблему, но выражают себя и свою систему совершенно по-разному?