Языки программирования в интернет-мемах / Programming languages in internet memes

Орлов Михаил Сергеевич

Маткова Евгения Игоревна

Санкт-Петербургский Политехнический университет Петра Великого

Orlov Mikhail Sergeevich

Matkova Evgania Igorevna

Peter the Great St. Petersburg Polytechnic University

 

В наше время с развитием цифровых технологий появляется все больше различных языков программирования, что нашло отражение в множестве мемов. Анализ показал, что самой популярной тематикой мемов стало сравнение языков программирования (23%). Наиболее часто в 46% мемов встречаются языки программирования С++ и python. Самым рассматриваемым аспектом стало использование языка программирования (32%). Несмотря на высокую техническую составляющую этих мемов, в них можно выделить литературные средства художественной выразительности. Чаще всего встречается такой прием как аллегория (19%). По стилю исполнения обычно мемы состоят из картинки с добавленным текстом-шуткой (23%).

Nowadays, with the development of digital technologies, there are more and more different programming languages, which is reflected in many memes. The analysis showed that the most popular topic of memes was the comparison of programming languages (23%). The programming languages C++ and python are most often found in 46% of memes. The most considered aspect was the use of a programming language (32%). Despite the high technical component of these memes, literary means of artistic expression can be distinguished in them. The most common technique is allegory (19%). According to the style of execution, memes usually consist of a picture with added joke text (23%).

  1. Nordmann A., Bylieva D. In the Beginning was the Word. // Technology and Language. № 2(1). 1-11. https://doi.org/10.48417/technolang.2021.01.01
  2. Hähnle R. Program and Code // Technology and Language. № 3(1). P. 70-80. https://doi.org/10.48417/technolang.2022.02.06
  3. Бочарова А.Б., Демидова М.О. Мемы, мем-вирусы: их сущность и распространение в инфосфере и медийном пространстве // Управленческое консультирование. 2020. № 9(141). С. 92-100.
  4. Лысенко Е.Н. Интернет-мемы в коммуникации молодежи // Вестник Санкт-Петербургского университета. Социология. 2017. № 4. С. 410-424.
  5. Спирова А.В. От эволюционных вычислений до эволюции мемов: некоторые общие тенденции // МЕТОД: Московский ежегодник трудов из обществоведческих дисциплин. 2018. № 8. С. 243-256.
  6. Быльева Д.С. Мем как трансформирующееся послание // Социальные трансформации. 2022. № 33. С. 33-39.

Рецензия на статью Орлова М. С. и Матковой Е. И. Языки программирования в интернет-мемах

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

Статья написана со строгой аргументацией исследуемого материала. Будет интересна как студентам, так и преподавателям ВУЗов.

Статья может быть опубликована в журнале «Век информации» (сетевое издание)

С.И. Коренюшкина, кан. философских наук,

мем, программирование, языки программирования

Meme, programming, programming languages

Цифровизация сделала программирование одним из самых востребованных сегодня навыков. К тому же в нем воплощается «творение словом», возможность превращение слов в физические процессы [1]. Программисты рассматривают программирование как строгую науку, а программы как формальными математическими объектами со строгой, однозначной семантикой [2], в тоже время языки отличаются не только по уровню (то есть близости к естественному языку), но и по семантике и синтаксису, принципам и нормам построения. Традиционно между программистами ведутся споры о том, какой язык лучше, которые в том числе находят отражения в мемах. А.Б. Бочарова и М.О Демидова сравнивают мемы с вирусами, т.к. они так же как и вирусы захватывают сознания большого количества людей [3]. Е.Н. Лысенко подчеркивает, что в повседневном общении чаще всего используются локальные мемы, которые понимает узкий круг людей. Таким образом эти мемы позволяют выявить принадлежность к “своей” группе, например, к группе программистов [4]. А. В. Спиров проводит параллель между эволюцией в биологии, техники, языков, в частности языков программирования, такая схожесть основывается на том, что все с течением времени стремится к усложнению, приобретению новых “ветвей”, так языки программирования высокого уровня становятся все ближе похожи на человеческие языки, а мемы как и шутки, передаваясь от одного человека к другому, могут забываться, а значит шутка не смогла “выжить”, приобретать новые смыслы, например, когда человек, позабыв какие-то детали в шутке, добавляет что-то свое, меняет персонажей и т.п., “возрождаться”, когда старую шутку переделывают на новый лад [5]. Поэтому, трансформируясь, мемы продолжают выражать актуальный дискурс [6].  Таким образом исследование мемов позволяет оценить распространенные и популяризованные идеи и представления, в том числе и о программировании.

Для поиска мемов использовались поисковые системы с запросом “мемы про языки программирования”. Также некоторые мемы были взяты из сообществ, посвященных программированию, в социальной сети ВК. Всего было проанализировано 100 мемов. Для анализа всех мемов мы выделили пять критериев, по которым делили все мемы, а после анализировали полученные результаты.

Первым критерием, по которому мы разделяли мемы, была тематика мема — то есть то, ради какой цели этот мем создавался.

23% мемов имели тип “сравнение языков программирования”. В эту категорию попадали мемы в которых присутствовало больше одного языка и они сравнивались по каким-то параметрам. Как пример один из мемов, представляющий из себя комикс, изображающий различные языки программирования в виде таксистов, по репликам которых можно узнать некоторые особенности языков программирования. Так водитель, изображающий язык assembly стоит у открытого капота автомобиля и говорит: “Но давайте начнем сначала. Что такое поршневой двигатель?” — тем самым отражая крайнюю низкоуровневость этого языка программирования. 

18% мемов “показывает отношение людей к языкам программирования”. Под этот тип подходили мемы с одним или несколькими языками программирования, которые так или иначе выражали как программисты относятся к конкретным языкам программирования. Типичный представитель данного вида — мем в котором смеющийся человек упоминает язык php перед группой людей, после чего те начинают ругаться и драться, показывая крайне неоднозначное отношение сообщества программистов к этому языку. 

еще в 18% мемов “обыгрываются сложности при изучения языка”. Сюда попадали мемы про сложность освоения каких-то языков программирования либо перехода с одного языка на другой. Например в одном меме мальчик сидит и плачет, а его папа, сказав: “если ты хочешь плакать, то я дам тебе настоящий повод” — выдает ему книгу по изучению языка C.

в 12% мемов “высмеиваются особенности языка”. Этот вид мемов рассказывал либо об каких-то особенностях языка программирования, либо о каких-то фичах или недоработках языка. Как пример в меме про python сначала мы видим мужчину, выглядывающего из окна спорткара, подписанного python, а в следующем кадре видно, что автомобиль на самом деле стоит на эвакуаторе, представляющим язык С++, что довольно правдиво, так как интерпретатор и большая часть библиотек python написана именно на С++. 

в 9% мемов “обыгрываются сходства/различия языков”. Соответственно эта группа мемов показывала либо сходства между некоторыми языками, либо их ключевые различия. К примеру мем в котором мальчик, изображающий C# лежит в кровати и говорит маме что под его кроватью расположился самый ужасный монстр, затем становится видно что кровать двухъярусная и под ним лежит мальчик-Java, который не понимает почему C# его ненавидит, несмотря на то что они братья.

в 6% мемов “обыгрывается название языков”. Данный тип мемов содержал шутку, связанную просто с названием языка. Как пример мем в котором мужчина изучает книгу под названием “плюсы языка С++” и видит там на пустой странице только ++, что однако можно отнести не только к названию, но и к синтаксису языка, так как подобная конструкция встречается в коде довольно часто. 

4% мемов сравнивают программистов, пишущих на рассматриваемых в меме языках. Как например один из мемов, в котором написано: “как одеваются программисты исходя из их основного языка”, и представлено шесть изображений людей под названиями языков программирования, при этом программист на perl показан в виде бомжа. 

3% мемов имеют тип “споры об эффективности языков”. Сюда попали мемы связанные как с эффективностью работы самого языка, так и с эффективностью написания программы. Так к примеру в меме-комиксе рыцарь находит меч правды, который говорит что “все языки быстрые, ясли писать код на них правильно, а не только С/С++”. Такая правда рыцарю очень не нравится. 

оставшиеся 7% мемов были отнесены к категории странных, так как не всегда можно понять прямое отношение шутки к языкам программирования. Один из таких мемов — фотография змеи, повисшей на шлейфах сетевых кабелей с подписью: “Срочно требуется специалист по сетям с опытом программирования на python” — что в данном контексте видимо требуется для взаимодействия со змеей.

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

Наиболее часто встречаются в мемах популярные языки c++ и python: они были представлены в 46% всех мемов. Довольно часто они присутствуют вместе. Например в одном из таких мемов кадр из мультика в котором ученый, показывает лабораторию неандертальцу подписан: “Я показываю своему другу как его код длиной 1000 строк на С++ может быть переписан в 10 строк на python”, иллюстрирует как программа на python реализующая тот же функционал получается в сто раз короче аналогичной программы на С++.

в 36% присутствовал язык java. Например в меме по известному шаблону в виде коллажа с рысью и котенком запечатленных в одинаковых позах и подписями каким был язык java в 90-х годах и сейчас. 

28% процентов мемов содержат упоминание языка С. В типичном меме с этим языком разъяренные python и javascript программисты спорят чей же язык лучше, в то время как брутальные программисты на С соглашаются с тем что их язык просто адский. 

javascript встречается в 25% мемов. В качестве примера приведем один из мемов в котором группа ученых работает над каким-то очень сложным с виду оборудованием, а подпись гласит что это студенты пытающиеся реализовать сложение чисел на языке javascript.

Язык php также встречается в 25% всех мемов. Как пример мем в котором кот в депрессии сидит над пропастью, и говорит: “Зачем я изучал php? Это тупик, жизнь кончена”.

В 20 % мемов участвует С#. Так в меме по известному шаблону — кадру из сериала стартрек, женщина спрашивает у языков программирования друзья ли они, на что С# отвечает согласием, а С — нет.

В 10% мемов встречается язык гипертекстовой разметки html. По сути как таковым языком программирования он не является, однако с этим часто возникает путаница, поэтому обычно шутят как раз над принадлежностью html к языкам программирования. Например одном таком меме мальчик изображающий человека далекого от программирования смотрит на html код и спрашивает является ли он языком программирования. 

7% мемов содержат язык assembly, как например мем изображающий различные версии персонажа мультфильма — губки боба, сопоставленные с языками программирования. При этом assembly показан как самая сильная и опасная версия. 

В 4 % мемов присутствуют такие языки как ruby, scratch и kotlin. Все они присутствуют например в одном из мемов. В нем представлен тир-лист языков, где все обычные языки программирования имеют низший ранг, а на первой строчке размещен язык scratch, предназначенный для обучения детей программированию.

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

32% мемов посвящена использованию языка программирования. Как например мем представляющий из себя пост который призывает перестать спорить из-за языков программирования и использовать правильный инструмент в подходящей для него задаче, как вариант: “используйте С# для написания игр”, при этом в строке с php написано просто не использовать его. 

В 18% мемов обыгрывается изучение языка программирования. Например в меме сложность изучения С++ показывается двумя запросами в google: в 8:31 утра — как написать первую программу на С++, традиционно для программирования выводящую строку “hello world!”, а в 8:33 уже — какие есть альтернативы языка С++.

11% мемов описывают особенности функционирования языков программирования. Как пример — смешной комикс в котором программы на различных языках показаны в виде лошадей со странными особенностями, которых нужно сделать программистам, например в рисунках посвященных java нарисован уставший человек возле какого-то недостроенного аппарата так как чтобы сделать лошадь ему надо сначала построить завод по производству лошадей. 

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

9% мемов посвящены семействам языков. Например мем изображающий три головы дракона, в котором две серьезные и злобно выглядящие головы, подписанные языками С++ и С смотрят злобно на третью голову, нарисованную очень простой и несерьезной, с выпученными глазами и высунутым языком, подписанную языком 1С, тем самым показывая, что этот язык сильно отличается от предыдущих, несмотря на название.

7% мемов описывают распространенные ошибки в языках программирования. Как пример мем в котором мужчина видит python в виде собаки и спрашивает у ее хозяина кусается ли она, на что хозяин отвечает что собака делает больно иначе, после чего собака-python говорит Indentation Error; Expected an indented block, после чего прохожий плачет от боли

Принадлежность к языкам программирования наблюдается в 7% мемов. Например в таких как уже рассмотренный мем с людьми далекими от программирования, путающие код html c программой. 

6% мемов высмеивают название языка программирования. Например мем представляющий из себя пост, шуточно рассказывающий что названия языков программирования С, С++ и basic расшифровываются как имена деятелей коммунизма: СИ как Сталин Иосиф, а БЕИСИК как Берия, Иосиф Сталин и коммунизм. 

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

Далее в 19% встречается такой художественный прием как аллегория. То есть изображение абстрактного понятия через конкретный образ, предмет или явление, что часто встречается в мемах про языки программирования, для того чтобы описать какие-то тонкости и особенности языков. Примером может выступать мем в котором змея, изображающая язык python, заглатывает огромного слона, изображающего php. В результате из-за большого туловища слона и выпирающих ног проглотившая его змея становится похожа на динозавра, который подписан как фреймворк python-django, так данный мем иллюстрирует его назначение.  

В 16% мемов встречается такой художественный прием как сравнение, обычно это уподобление одного языка программирования другому, либо еще каких-либо вещей, связанных с программированием. Так в одном из мемов с человек без очков видит расплывчато название языка С#, после чего надев очки он видит, что на самом деле это была буква С и четыре плюса, что на самом деле очень близко к правде, так как название С# появилось добавлением к С++ еще двух плюсов, чтобы показать что С# — улучшенная версия языка С++.

В 16% мемов присутствует такой художественный прием как антитеза. То есть сопоставление противоположных явлений и понятий для усиления впечатления. Так в одном из мемов с данным художественным приемом написано “Когда ты встречаешь девушку, которая программирует, однако она С++ разработчик, а ты фронтенд разработчик”, и прикреплен кадр из мультфильма “Шрэк”, где фея говорит главному герою: “Но она принцесса, а ты… огр”.

В 14% встречается такой художественный прием как олицетворение. Это перенесение свойств человека на неодушевленные предметы, в данном случае чаще всего на языки программирования. Примером может служить смешная фотография, на которой группа бойцов вдв, подписанных языками C, C++ и С# с недоброжелательным видом окружили человека, изображающего java.

В 13% мемов присутствует гипербола. Это художественное преувеличение для усиления впечатления от сказанного. Типичным представителем мема с таким приемом является мем про изучение языка java. На первом кадре — заставка видео, на которой написано: “Выучить java в одном видео”, а затем мы видим продолжительность этого видеоурока: 2534 часа.

Сарказм появляется тоже в 9% мемов. Это высшая степень иронии, язвительная насмешка. Примером может служить текстовый мем, в котором написано следующее: “Приходите к нам в С++. Мы не говорим «пропущена звездочка», мы говорим «error C2664: ‘void std::vector<block,std::allocator<_Ty>>::push_back(const block &)’: cannot convert argument 1 from ‘std::_Vector_iterator<std::_Vector_val <std::_Simple_types<block>>>’ to ‘block &&’» И это прекрасно”.

 В 8% примеров встречается такой художественный прием как метафора — скрытое сравнение, переносное значение, основанное на сходстве. Как пример мем, состоящий из двух фотографий с подписями. На первой запечатлен человек с огромным ружьем, больше него самого, и подписана она: “python с библиотеками”. На второй же — миниатюрный пистолет, размером не больше пальца и подпись: “python без них”.

Самым редким художественным приемом в мемах про языки программирования оказался каламбур, который встречается в 5% мемов. Например в одном из мемов мы можем видеть разговор двух человек. Первый спрашивает: “Какие преимущества у С++?”, второй говорит что не знает, на что первый отвечает: “Я тоже не знаю, но в его названии одни плюсы”.

По стилю исполнения мема — формат, как оформлен мем

Наиболее часто встречаемый формат мема — картинка с текстом. Он составляет 23%. Часто в качестве картинки берется уже знаменитая, смешное изображение и к нему добавляется текст, в результате получается мем, связанный с программированием. Например, типичным мемом такого стиля исполнения является мем представляющий из себя фотографию обычной семьи, каждый член которой подписан каким-то языком программирования, как папа-С, мама-java, однако на общем фоне выделяется один из сыновей, одетый как панк, который изображает язык javacript.

Далее в 21% случаев встречается формат мема — “надписи на другом меме”. В качестве основы для создания берется уже известный мем, в котором меняется текст, либо добавляется новый, чтобы получилась шутка про языки программирования. Как пример можно привести мем в котором сначала мы видим грустного человека, который говорит что очень ненавидит себя, к нему подходит другой человек и показывает ему компьютер с С++, после чего мы видим довольного героя за этим компьютером, который говорит: “Ух ты… Это я ненавижу еще больше”.

Также в 21% встречается такой формат оформления как мем по известному шаблону. Этот формат похож на предыдущий, но отличается тем, что такой мем-шаблон уже давно утратил изначальный смысл, применяется в большом числе разнообразных мемов и является узнаваемым, что довольно удачно, так как люди малознакомые с языками программирования смогут понять смысл таких мемов. Как пример мем с расположенными рядом дверьми туалетов, один для мальчиков, на котором расположен логотип python, а второй для мужчин с логотипом C++.

В 11% мемов встречается формат — коллаж. Такой формат часто встречается, если необходимо сравнить несколько мемов между собой и поместить их на одну картинку. Как пример — уже рассмотренный мем с фотографиями того как одеваются программисты, пишущие на различных языках.

9% мемов имеют формат — скриншот из произведения с надписью. Это может быть кадр из фильма или мультфильма, либо скриншот из какой-либо видеоигры, который обычно служит в качестве иллюстрации к шутке, либо дополняет ее. Так например в одном из мемов написано “Преподаватель: язык лучше всего изучать с его носителями. Чувак изучающий python: “ и прикреплен кадр на котором воин со щитом и мечом сражается против огромной змеи. 

В 8% встречается такой стиль оформления мема как пост в социальной сети. Обычно это пост в сети твиттер, где распространены посты с какими-либо мыслями, выраженными автором, так что это может быть текстовая шутка, связанная с языками программирования, возможно с добавлением смешной картинки, либо смешной комментарий к посту. Как пример этого пост в котором автор написал “Книги по python: ути-пути, переменная это коробочка для данных. Их можно читать и записывать! Книги по С++: поговорим про системы счисления, аллокатор и адресную арифметику”, а в комментарии к данной записи написано: “Книги по Фортрану восьмидесятых: начнем изучение с простого примера: быстрое преобразование Фурье”.

Самым редко встречаемым в 7% случаев встречается формат мема — рисованный комикс. Здесь подразумевается, что автор комикса изначально рисовал его для шутки, связанной с языками программирования, а не использовал готовый шаблон или уже существующий мем. Этот формат более трудоемкий в исполнении, однако является самым интересным из-за нетипичной идеи и оригинальности шутки. Например один из самых интересных мемов — комикс как спасти принцессу, используя 8 различных языков программирования. Так в случае спасения принцессы с использованием С сначала мы видим рыцаря с копьем, скачущего на коне в сторону замка и подпись: “У вас есть либа для замка, и либа для принцессы — В АТАКУ”, а на следующей панели рыцарь изображен в большой куче вместе с принцессой, конем, сундуками, мебелью, ванной, и подписью: “Вы спасаете принцессу, ее собаку, весь ее гардероб и все что она когда либо съела… ЧЕРТ, Я ЧТО, ЗАБЫЛ NULL-ТЕРМИНАТОР?!”

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

Что касается частоты появления тех или иных языков программирования в мемах: лидирующие позиции заняли python и C++. Эти языки очень часто сравнивают между собой, так как с их помощью можно написать классические приложения. Также новичкам приходится выбирать с какого языка начать обучение программированию и зачастую выбор происходит среди этих двух языков в силу их популярности и широкому распространению в реальных проектах. Язык С встречается в 28% мемов, несмотря на возраст и уже малую частоту использования при разработке новых приложений, это связано с тем что хотя сейчас С менее востребован, однако существует огромное количество старого кода, написанного на С, например ядро современной операционной системы Linux почти полностью написано на нём. Также его изучение довольно сложное по сравнению с современными языками, из-за чего он и заслужил свое место в мемах. 

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

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

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