Конечно, HTML — это язык программирования.

Является ли HTML языком программирования? Я мог бы выразить небольшой шок, даже тревогу по поводу этого вопроса, но вместо этого я попробую более отточенный подход. В некотором смысле это может быть законный вопрос, и в этом случае он заслуживает честного ответа. В другом смысле это может быть попыткой привратника. Я полагаю, что это также должно быть рассмотрено.

Моя первая проблема заключается в том, какой смысл говорить, что это не язык программирования? Приносит ли это нам некоторую ясность в отношении его цели? Есть ли сомнения, что HTML используется программистами для создания пользовательского интерфейса? Есть ли сомнения в том, что у HTML есть исходный код? Сомневаемся ли мы, что исходный код HTML подлежит тем же системам управления проблемами, управления требованиями, контроля версий, рецензирования и тестирования, что и любой другой исходный код? Я не уверен, что это принесет ясность, если сказать, что это не язык программирования.

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

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

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

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

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

Каким может быть практическое определение? Как насчет языка программирования — это набор кодов, который недвусмысленно указывает компьютеру, что он должен делать. HTML инструктирует компьютер, как создать визуальный документ или интерфейс приложения для пользователя. Python, Java или C++ предоставляют последовательности команд, которые сообщают компьютеру, как манипулировать памятью, изменять файлы и общаться в сети. Haskel или O’Caml создают структуры уравнений, которые вычисляют результаты.

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

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

Тогда вернемся к вопросу: какую ценность имеет то, что HTML не является языком программирования? Я боюсь, что ответ связан с привратником. Некоторые люди чувствуют необходимость различать качество программистов на основе некоторых искусственных целей. Это помогает сохранить роль программиста в искусственной элите — для некоторого определения элиты.

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

Но даже все же, кто знает только HTML? Возможно, мы говорим о дизайнерах UI/UX, которые используют его для создания прототипов. Это люди, которые будут работать с программистом, чтобы получить то, что они хотят. Я не думаю, что они требуют, чтобы их самих признали программистами? Хотя я считаю их разработчиками; У меня есть глава в моя книга о том, почему я считаю это важным.

С другой стороны, большинство веб-программистов, которых я встречал, занимающихся HTML, похоже, также занимаются CSS и JavaScript. Сложно запрограммировать интерфейс, используя только HTML; это неизбежно сочетается с другими технологиями. Не обязательно, но это самая распространенная ситуация. Если кто-то хочет отрицать JavaScript как язык программирования, давайте просто проигнорируем эту глупость.

Таким образом, HTML — это декларативный язык программирования. Он не может делать все, но ни один язык не может. Нет никакой практической ценности говорить, что это не язык программирования. Хотя программист, знающий только один язык, ограничен в своих возможностях, это относится ко всем языкам, включая JavaScript, C#, Python или любой другой. Мы могли бы возразить, что этот теоретический человек, знающий Только HTML не является всесторонним программистом, но это не значит, что он вообще не программист. Вместо того, чтобы пытаться исключить их, почему бы не поработать с ними и не поощрять их изучать все другие прекрасные вещи, которые можно сделать?


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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *