Языки программирования визуализация

Первые языки программирования были созданы еще до появления современных компьютеров. В 1842-1843 годах Ада Лавлейс определила метод вычисления чисел Бернулли с помощью Аналитической машины. Признанной некоторыми историками первой в мире компьютерной программой. Первые языки программирования, предназначенные для общения с компьютером. Были написаны в 1950-х годах. С тех пор были созданы сотни языков программирования. Естественно, некоторые из этих языков оказали большее влияние, чем другие, например. Lisp и C были разработаны в конце 1950-х и 1960-х годах соответственно и до сих пор широко используются. Многие новые языки программирования реализованы на языке C.

Влияние языка не ограничивается его употреблением. Но проявляется и в его влиянии на другие языки. Для визуализации этих отношений влияния я создал различные сетевые графики. Описанные ниже.

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

Все описанные визуализации имеют несколько общих особенностей:

  • Языки программирования отображаются в виде узлов в виде кругов.
  • Отношения влияния отображаются в виде ребер в виде линий (прямых или изогнутых).
  • Размеры узлов отражают количество языков. На которые язык повлиял, т. е.
  • Язык программирования может относиться к различным парадигмам программирования.

Языки Программирования Влияют На Визуализации

Моя первая попытка визуализировать влияние языка программирования в октябре 2011 года привела к появлению статической графики, созданной с помощью библиотек Python NetworkX и matplotlib.

Каждый график показывает отношения влияния языков программирования. Относящиеся к определенной парадигме программирования. Например объектно-ориентированное программирование. Процедурное программирование или функциональное программирование. Языки расположены по кругу.

В августе/сентябре 2012 года я дал еще один ход по этой теме. В результате чего эта визуализация на основе браузера была создана с помощью D3.js. Этот график состоит из 1170 узлов и 908 ребер с силовой компоновкой. Применяемой при просмотре. Больше мне нечего сказать об этом, кроме того. Что я не был действительно удовлетворен и искал альтернативные инструменты. Которые нашел в библиотеке

JavaScript sigma.js и платформа визуализации Gephi. Оба этих инструмента были фундаментальными для создания интерактивных визуализаций. Описанных более подробно ниже.

Интерактивные визуализации, Созданные с помощью Sigma.js а Гефи

Я извлек данные для этих визуализаций с помощью скрипта Python. Который вы найдете в этом репозитории. Этот скрипт также создает файл gexf, который я затем вручную редактирую с помощью Gephi.

Для визуализации отредактированных файлов gexf в веб-браузере я использовал Sigma.js и разработал следующие способы взаимодействия с отображаемой информацией из верхней строки меню и с помощью мыши:

  • Найдите языки и выделите их соединения из поля ввода автозаполнения в верхней строке. В выделенном режиме языки, показанные оранжевым цветом, влияли на выделенный язык. А синие-на него.
  • Фильтр по парадигме программирования из выпадающего списка в верхнем меню. И вы увидите только языки. Относящиеся к выбранной парадигме. Обратите внимание, что размеры узлов не меняются, когда активен фильтр парадигмы. Который должен быть улучшен.
  • Нажмите на узел. Чтобы отобразить модальное окно с дополнительной информацией о языке программирования.
  • Масштабируйте график с помощью колесика мыши и перетаскивайте его. Удерживая нажатой кнопку мыши.

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

Влияние языков программирования 2013

Данные для версии 2013 года были загружены 11 июля 2013 года и содержат информацию о 1183 языках программирования. Узлах в сети. Эти языки связаны 972 отношениями влияния. Показанными в виде ребер. 10 самых влиятельных языков перечислены ниже:

  1. Lisp 56
  2. C 47
  3. Smalltalk 43
  4. Java 37
  5. Паскаль 33
  6. C++ 30
  7. Хаскелл 28
  8. Python 26
  9. Схема 26
  10. АЛГОЛ 23

Lisp был первоначально указан в 1958 году, а разработка C началась в 1969 году. Таким образом, 2 довольно старых языка в рассматриваемый нами период являются наиболее влиятельными. Но возраст сам по себе не объясняет этого, так как такие языки , как COBOL и Fortran, которые также появились в 1950-х годах. Значительно менее влиятельны, а Java. Которая была выпущена в 1995 году. Очень влиятельна.

Принятие языка, безусловно, является основным фактором его влияния. Которое может быть обусловлено маркетингом (Java). Совпадением, например. Поспешным созданием языка для веб-браузеров (JavaScript), простотой использования (Python) или использованием в качестве языка обучения (Pascal).

Я создал макет графика. Применив ForceAtlas2 и алгоритм предотвращения перекрытия меток. А также вручную разместил узлы. Узлы окрашены в зависимости от группы парадигм программирования. К которой они принадлежат.

Печатную версию всей сети можно заказать у Teespring и Zazzle.

Влияние языков программирования 2014

Данные для версии 2014 года были загружены 8 сентября 2014 года и содержат информацию о 1220 языках программирования. Соединенных 1137 ребрами. Ниже перечислены 10 наиболее влиятельных языков:

  1. Шепелявость 60
  2. С 54
  3. Smalltalk 49
  4. Ява 39
  5. Паскаль 36
  6. C++ 36
  7. Хаскелл 32
  8. Python 30
  9. Схема 29
  10. МЛ 25

Рейтинг почти не изменился, только АЛГОЛ был превзойден МЛ, и количество языков. На которые он влиял. Увеличилось. Как и общее количество языков в сети.

Для этого графика я применил схему ForceAtlas с высокой силой отталкивания и силой притяжения. Распределенной вдоль исходящих связей. Так что узлы выталкиваются наружу и перемещаются к центру. Кроме того, я запустил алгоритмы для предотвращения перекрытия меток и узлов в Gephi.

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

Есть два плаката для графика 2014 года: один показывает только влиятельные языки, то есть те . Которые повлияли хотя бы на один другой язык. И один плакат полного графика .

tl;dr

Я создал визуализации. Чтобы показать отношения влияния между сотнями языков программирования. Есть две версии браузера. С которыми вы можете взаимодействовать: одна с данными 2013 года и более новая с данными 2014года .

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

Обновление 2019-01-24

У меня были планы обновить этот проект на некоторое время. И в конце концов я создал целый сайт о языках программирования и запустил его в декабре 2018 года. Помимо выделенных страниц для каждого языка с соответствующей информацией и ресурсами. Существует график сети влияния, использующий Викиданные в качестве источника данных. В этой визуализации макет графика. Размер узлов и окраска выполняются в JavaScript с помощью D3.js, что значительно облегчает обновление. Я намерен регулярно обновлять данные и добавлять больше информации на языковые страницы. Чтобы сделать его полезным ресурсом для программистов и всех. Кто интересуется языками программирования. Надеюсь, вы проверите его и получите удовольствие.