Является ли HTML языком программирования / Хабр
В последнее время всё чаще и чаще различные интернет ресурсы устраивают холивары на тему: является ли HTML языком програмирования или нет. Как водится, аргументов в пользу обеих точек зрения приводят немалое количество, поэтому я решил поставить для себя точку в этом ненужном споре.
Определение языка программирования
Язы́к программи́рования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.
Так сказано в Википедии, и большинство остальных ресурсов либо полностью употребляет это определение, либо вольно излагает его без потери смысла. Рассмотрим поподробнее составные части определения ЯП:
- Формальный язык — это множество конечных слов (строк, цепочек) над конечным алфавитом.
- Знаковая система — это система однообразно интерпретируемых и трактуемых сообщений/сигналов, которыми можно обмениваться в процессе общения. Иногда знаковые системы помогают структурировать процесс общения с целью придания ему некой адекватности в плане реакций его участников на те или иные «знаки». В качестве примера знаковой системы обычно приводят язык (как в письменной форме так и, в случае естественных языков, в форме речи).
- Компью́терная програ́мма — последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины.
- Ле́ксика — совокупность слов того или иного языка, части языка или слов, которые знает тот или иной человек или группа людей.
- Синтаксис — сторона языка программирования, которая описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию). Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.
- Сема́нтика в программировании — дисциплина, изучающая формализации значений конструкций языков программирования посредством построения их формальных математических моделей. В качестве инструментов построения таких моделей могут использоваться различные средства, например, математическая логика, λ-исчисление, теория множеств, теория категорий, теория моделей, универсальная алгебра. Формализация семантики языка программирования может использоваться как для описания языка, определения свойств языка, так и для целей формальной верификации программ на этом языке программирования.
- Язы́к — знаковая система, соотносящая понятийное содержание и типовое звучание (написание).
Более простым языком это может быть изложено так:
Язык программирования — множество заранее определенных, однообразных и понятных исполнителю (читай: интерпретатору/компилятору/компьютеру/программисту) инструкций, предназначенных для записи последовательно с целью их исполнения неким устройством, являющимся частью вычислительной машины.
Вот так громоздко и некрасиво получилось, зато без сложных слов. Мы вернемся к этому определению чуть позже.
Виды языков программирования
Часто употребляют также разделение на низкоуровневые и высокоуровневые языки. Эти виды отличаются «толщиной прослойки» между процессором и программистом. Говоря простыми словами — в низкоуровневых языках каждая инструкция представляет собой одну или небольшое число процессорных команд, а в высокоуровневом языке каждая инструкция это большой набор процессорных команд.
Рассмотрим поближе определения разных типов по версии Википедии:
- Аспе́ктно-ориенти́рованное программи́рование (АОП) — парадигма программирования, основанная на идее разделения функциональности для улучшения разбиения программы на модули.
- Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
- Процедурное программирование — программирование на императивном языке, при котором последовательно выполняемые операторы можно собрать в подпрограммы, то есть более крупные целостные единицы кода, с помощью механизмов самого языка[1].
- Логи́ческое программи́рование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
- Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.
- Функциона́льное программи́рование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
- Мультипарадигма́льный язы́к программи́рования — как правило, язык программирования, который был разработан специально как инструмент мультипарадигмального программирования, то есть изобразительные возможности которого изначально предполагалось унаследовать от нескольких, чаще всего неродственных языков.
- Эзотерический язык программирования — язык программирования, разработанный для исследования границ возможностей разработки языков программирования, для доказательства потенциально возможной реализации некой идеи (так называемое «доказательство концепции», англ. proof of concept), в качестве произведения программного искусства[en], или в качестве шутки (компьютерного юмора).
Императивный и декларативный подход
Все языки программирования делятся на две группы: декларативные и императивные.
Программа на императивном языке программирования с математической точки зрения представляет собой общее решение поставленной задачи, иными словами, ответ на вопрос «как делать?». Это последовательность команд, которые должен выполнить исполнитель.
Программа на декларативном языке программирования является сочетанием формализованной в рамках языка программирования задачей и всех необходимых для её решения теорем, проще говоря, ответ на вопрос «что делать?». Конкретную последовательность выполняемых действий выполняет компилятор, или чаще интерпретатор – программа, в реальном времени выполняющая код программы без его преобразования в машинный код.
Полнота по Тьюрингу
В теории вычислимости исполнитель (множество вычисляющих элементов) называется тьюринг-полным, если на нём можно реализовать любую вычислимую функцию. Другими словами, для каждой вычислимой функции существует вычисляющий её элемент (например, машина Тьюринга) или программа для исполнителя, а все функции, вычисляемые множеством вычислителей, являются вычислимыми функциями (возможно, при некотором кодировании входных и выходных данных).
Название пошло от Алана Тьюринга, который придумал абстрактный вычислитель — машину Тьюринга и дал определение множества функций, вычислимых посредством машин Тьюринга.
Другими словами язык является полным по Тьюрингу, если любая вычислимая функция, которая Вам нужна, может быть записана на этом языке и решена его исполнителем.
Не полные по Тьюрингу языки также существуют, но так как их создают в основном в академических целях, то они малоизвестны и широко не применяются.
Ответим на несколько вопросов:
HTML — это язык?
Да. Он имеет свойства, присущие языкам.
HTML — соответствует определению языка программирования?
Да. Он имеет синтаксис, семантику, лексику, он является языком и попадает в категорию декларативных языков программирования.
HTML — является Тьюринг-полным языком?
Нет. Проще говоря на HTML можно совершить только некоторую ограниченную совокупность действий, интерпретируемых браузером.
Можно ли называть HTML языком программирования?
В зависимости от контекста — да, можно. Но при этом следует помнить, что с таким же успехом можно назвать ЯП и CSS и XML и SQL.
Другими словами данные языки формально могут быть названы языками программирования, но только с определенной долей скептицизма и с полным понимаем того, что эти языки не удовлетворяют всем требованиям.Является ли HTML языком программирования?
Нет. Задача обычного языка программирования в обработке данных, а задача HTML в отображении данных. Он не является языком программирования и на нем нельзя произвести вычислений.
Вывод: Мы можем назвать HTML языком программирования только в контексте формальной полемики. На деле он является языком гипертекстовой разметки и ни чем больше. Но читатель должен понимать, что если нет четко прописанных стандартов, то никто не запрещает сделать язык, идентичный по синтаксису с HTML, но интерпретируемый совершенно по другому таким образом, чтобы он был полным по Тьюрингу.
Что такое HTML язык? Учебник html
Глава 1
Начну, пожалуй, с начала..
HTML язык по своей сути не является языком программирования. . он является языком разметки гипертекстовых документов. Иными словами он отвечает за расположение в документе Ваших текстов, рисунков, таблиц.. предназначенных для жизни в сети Интернет. Заставить его посчитать, сколько будет дважды два невозможно, в нем нет логических функций, зато красиво и главное легко выложить информацию о том, что дважды два будет четыре — это запросто. Читается этот язык при помощи знакомых Вам программ, именуемых браузерами (обозревателями), которые «знают» стандартные команды html языка, и «пережевывая» их выводят на монитор компьютера документы в том виде, в котором хочет представить их веб мастер — составитель документа.
Теперь о командах — их называют дескрипторами, но чаще — тегами.
Вернемся к нашей первой страничке.. итак мы написали:
<html>
<head>
<title>Моя первая страничка</title>
</head>
<body>
Привет мир!!!
<br>
Меня зовут Карлсон, это моя первая страничка!
</body>
</html>
смотреть пример
Так вот то что написано между <…> — называют тегами они не видны читателю, заглянувшему на Вашу страницу, зато хорошо видны браузеру, который наткнувшись на тег <html> понимает его как сигнал к тому, что далее будет документ, который необходимо прочитать и вывести на монитор в нужном виде. . а вот тег </html> говорит о том что документ закончился и от него, то бишь браузера, больше ничего не требуется и он может отдыхать с чистой совестью.
Так что же мы написали? и как это читает браузер?
Мысли браузера:
<html> — начало документа.. опять работы привалило..
<head> — смотрим словарик английского переводим «голова» …в голове моей опилки не беда!! … здесь указывается основная служебная информация о документе.. ну и что они там от меня хотят?
<title> — «название» значит.. это в шапке окна нужно написать его название:
Моя первая страничка — опять чайник тренируется..
</title> — все название закончилось.. можно идти дальше..
</head> — ага и в голове кроме названия больше никаких вздорных мыслей не держим..
<body> — «тело» документа всё что написано ниже выставляем на всеобщее обозрение
Привет мир!!! — как мило! Достали уже!!!
<br> — переносим текст на следующую строчку. . я даже догадываюсь что в ней будет…
Меня зовут (здесь Ваше имя), это моя первая страничка! — ну да так и есть.. ничего пооригинальнее придумать не могут..
</body> — что всё что ли? Больше ничего не отображать?
</html> — ну вот и конец!! Не будить, не кантовать, при пожаре выносить первым!!
Вот так примерно и происходит чтение нашей странички.. Как видите браузер довольно своенравный тип, поэтому команды ему нужно подавать чёткие и ясные, иначе он разругается.. причем в слух.. а по сему запомним следующие вещи:
1) Необходимо раз и навсегда запомнить что если есть открывающий тег <…> то обязательно должен быть и закрывающий </…>
Хотя есть и исключения как например у нас тег <br> — он закрытия не требует потому что говорит лишь о том, что следует писать с новой строки. Кстати попробуйте добавить еще пару тройку таких же перед строчкой «Меня зовут. .» и Вы увидите, что в результате она заметно опустилась вниз.. (Ну естественно в блокноте сохраните изменения, а в браузере нажмите кнопку «обновить»)
2) Все документы должны иметь вот такой шаблон кода:
<html>— начало документа
<head>— начало головы
</head>— закрытие головы
<body>— начало тела
</body>— закрытие тела
</html>— конец документа
Данные теги являются обязательными! Писать их необходимо всегда для каждой новой странички, и только в таком порядке! Не пытайтесь перевернуть всё с ног на голову..
3) О порядке:
Открывающий и закрывающий тег по типу <…> </…> представляет собой своего рода ёмкость, ящик в который могут складываться другие теги — ящички поменьше.. следовательно, согласно логики документ должен выглядеть так:
<Тег «большой ящик»>
<Тег «ящик средний»>
<Тег «ящик маленький»>
содержание
</Тег «ящик маленький» >
</Тег «ящик средний» >
</Тег «большой ящик»>
Если писать, например, так:
<Тег «большой ящик»>
<Тег «ящик средний»>
<Тег «ящик маленький»>
содержание
</Тег «большой ящик»>
</Тег «ящик маленький»>
</Тег «ящик средний»>
То получится белиберда, которая в голове не укладывается, «большой» уже закрыт, а из него «торчит» «маленький», который заперт в «среднем», а «содержание» рассыпалось везде. . Такое даже человеку трудно представить, что уж там про браузер говорить.. Чётко структурируйте код Вашей странички иначе ничего работать не будет..
Ну вот мы научились писать простой текст, начало положено! в следующей главе я расскажу о том, что с ним можно сделать..
При написании сайта создайте папку в любом удобном месте на Вашем жёстком диске, называйте как угодно, лишь бы понятно было.. в эту папку сохраняете Ваши странички, присваивая им осмысленные имена.. варианты типа ааа.html, 123.html приведут к беспорядку и путанице… На данном этапе этот совет не покажется дельным, но в дальнейшем это значительно облегчит Ваш труд. Представьте к примеру хотя бы 20-30 таких файлов названия которых нужно держать в голове, чтобы связать их перекрёстными ссылками. Порядок, прежде всего!
При написании кода советую придерживаться «хорошей манере письма», то есть писать теги «лесенкой» по мере вложенности одного тега в другой. Со временем Вы поймёте что читать код написанный вот так:
<html>
<head>
<title>Моя первая страничка</title>
</head>
<body>
Привет мир!!!
<br>
Меня зовут Карлсон, это моя первая страничка!
</body>
</html>Значительно легче, чем так:
<html>
<head>
<title>Моя первая страничка</title>
</head>
<body>
Привет мир!!!
<br>
Меня зовут Карлсон, это моя первая страничка!
</body>
</html>И уж тем более чем вот так:
<html><head><title>Моя первая страничка</title></head><body>Привет мир!!!<br>Меня зовут Карлсон, это моя первая страничка!</body></html>
Хоть это и дело привычки. . всё же лучше привыкнуть писать «разборчиво».
Если HTML не является языком программирования, что я делаю, если я делаю HTML-коды?
спросил
Изменено 8 месяцев назад
Просмотрено 5к раз
Я пишу статью о программировании. Например, если я использую C#, я программист C# и мне 9 лет.0011 программирование с использованием C#. Как насчет HTML? Если HTML — это не язык программирования, а язык разметки, какой правильный глагол применим к человеку, кодирующему HTML? Просто кодирует ?
5
Редактировать 2:
Ничего себе, по-видимому, вы можете назвать HTML/CSS языком программирования, потому что HTML5/CCS3 является полным по Тьюрингу случайно (для первой ссылки проверьте комментарии).
Основной ответ:
«Как насчет HTML?» Я считаю, что для программирования язык должен быть полным по Тьюрингу. Итак, по моему определению, вы не можете быть программистом Regex. Более простое определение заключается в том, что ему нужны переменные и операторы управления, такие же простые, как наличие инструкций «если» и «ветвь». Как вы заметили, чистый HTML — это не язык программирования. Но HTML в реальном мире — это не просто текстовые файлы html!
Я бы назвал пользователя HTML HTML-технологом или HTML-автор но если бы кто-то сказал, что он кодировщик HTML или даже программист, я бы и глазом не моргнул и не попытался бы их исправить. Я не думаю, что многие люди пишут простой HTML, и в тот момент, когда кто-то добавляет Javascript или позволяет генерировать страницы с помощью PHP, Python или чего-либо еще, это выходит за рамки определения языка программирования. ( edit 2: В тот момент, когда вы добавляете CSS3, он становится полным по Тьюрингу и, следовательно, «настоящим» языком программирования)
Edit 1:
Мне нравится ответ, который я нашел о том, почему «настоящие программисты» так защищаются от напоминаний люди HTML/CSS — это не «настоящее программирование». Вопрос ОП касался того, как называть авторов HTML, но этот вопрос возникает, потому что «настоящие программисты» так твердо проводят различие между своей работой. Мне нравится эта цитата Крамли (ссылка ранее)
Бывают случаи, когда разница между языками программирования и другими языками действительно имеет значение. Однако довольно часто мы все можем совершенно эффективно общаться, если просто свалить их все вместе.
У вас есть три вопроса…
Q1: Я программист на C# и программирую на C#. Как насчет HTML?
A1: Я пишу код в HTML
Q2: Если HTML не язык программирования, а разметка языке, какой правильный глагол применим к человеку, кодирующему на HTML?
A2: Verb = Coding , Но я думаю, что вы ищете термин Coder
Q3: Это просто кодирование?
A3: Да
HTML — это язык разметки , отсюда и название «Язык гипертекстовой разметки».
Фактически вы являетесь современным эквивалентом наборщика в полиграфии.
Если вы вносите минимальный вклад в процесс создания страницы, то вы, вероятно, являетесь программистом, однако, если вы вносите значительный вклад в макет страницы, тогда эту должность обычно называют веб-дизайнером. Если вы пишете много скриптов (скажем, на PHP, Python, Ruby, Perl или на чем-то еще, что для вас менее всего подходит) для создания страниц достаточно профессиональным способом, то вы можете присудить себе прекрасное звание веб-разработчика 🙂
Если вы поразмыслите над тем, как все эти сценарии будут связаны друг с другом и как пользователи будут взаимодействовать с вашим сайтом, то вы можете претендовать на звание аналитика. 🙂
В Интернете рабочие роли довольно размыты; лично я считаю себя смесью всего вышеперечисленного, больше концентрируясь на стороне разработчика/аналитика, поскольку, хотя я понимаю технические аспекты HTML и CSS, я не ценю хороший дизайн и презентацию, чтобы полностью претендовать на звание дизайнера. в профессиональном контексте.
Я также предлагаю вам прочитать ответы на соответствующие вопросы справа на этой странице…
Как и в случае с любым другим языком — будь то музыкальный, программный, математический, гипертекстовый или что-то среднее — как создатель контента ты писатель.
Специально для языка разметки (например, HTML) вы аннотируете документ с помощью тегов, которые являются отдельными объектами от текста между ними, и поэтому могут считаться Editor , Author или Дизайнер , потому что вы обычно управляете содержимым страницы.
Возникают различия с HTML по сравнению с написанием технических документов с использованием, например, DITA . Поскольку документ DITA имеет свою архитектуру и теги, он не обязательно требует отображения таблицы стилей. HTML , с другой стороны, обычно используется через веб-браузер, поэтому требуется преобразование CSS для отображения в удобочитаемом виде. По этой причине форматирование становится таким же важным, как содержание и люди, пишущие HTML и CSS в виде комбинации называются Веб-дизайнеры .
Если вы начнете добавлять языки программирования, такие как PHP или JScript , вас будут называть веб-разработчиком , но разработчик и дизайнер часто взаимозаменяемы между этими двумя вариантами.
какой правильный глагол применим к человеку, кодирующему HTML?
код — это процесс, в котором используется язык программирования. поскольку HTML не является языком программирования, вы можете использовать , записывая вместо , кодируя . так просто, как, что.
Нет, HTML не является языком программирования. «М» означает «Разметка». Как правило, язык программирования позволяет вам описать какой-то процесс выполнения чего-либо, тогда как HTML — это способ добавления контекста и структуры к тексту.
Если вы хотите добавить больше алфавитного супа в свое резюме, не классифицируйте их вообще. Просто сложите их в большую кучу под названием «Технологии» или как вам угодно. Помните, однако, что все, что вы перечисляете, является справедливой игрой для вопроса.
HTML настолько распространен, что я ожидаю, что почти любой специалист по технологиям уже знает его (хотя и не такие вещи, как CSS и т. д.), поэтому вы можете подумать о том, чтобы не перечислять все инициализмы, с которыми вы когда-либо сталкивались. Я склонен рассматривать резюме, в котором перечислено слишком много вещей, как подозрительные, поэтому я задаю больше вопросов, чтобы отсеять вещи, которые не должны быть перечислены. 🙂
Однако, если ваш опыт работы с HTML включает в себя серьезные элементы веб-дизайна, включая Ajax, JavaScript и т. д., вы можете рассказать об этом в разделе «Опыт».
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
html — Является ли HTML5 языком программирования?
спросил
Изменено 1 год, 6 месяцев назад
Просмотрено 24к раз
В настоящее время мы можем использовать HTML5 для создания приложений, как в Android, в Firefox OS, iPhone, Blackberry и других. Но я слышал, что HTML — это язык разметки, а не для программирования. Даже с функциями приложения, HTML остается только языком разметки?
3
В языках программирования есть определенные функции, такие как ветвление, циклы и тому подобное, которых нет в HTML5. HTML5 определяет разметку для некоторых интерактивных функций, но разметка почти полностью статична (есть некоторые взаимодействия подразумеваются в определении выбора
элементов и т.д.). Многие функции «HTML5», о которых вы слышали, вовсе не HTML5, а скорее то, что вы можете делать с помощью JavaScript (языка программирования) в браузере со скромными возможностями.
HTML5 все больше берет на себя (или взял на себя ) роль определения как структуры веб-страниц , так и API для взаимодействия с ними из языка программирования. Раньше это было совершенно отдельно в спецификациях DOM, но теперь многое из этого включено в спецификацию HTML5. Но опять же, это просто определение API. Фактическое кодирование с использованием этих API требует (почти во всех случаях) реального языка программирования.
1
Краткий ответ: №
Длинный ответ : Нет, это не так. HTML, как определено стандартом, — это просто язык разметки, точно так же, как и в его предыдущих версиях.
Но что это значит? Это означает, что он должен структурировать ваши данные, позволяя вам также определять семантику с использованием маркеров, но он не может обрабатывать или изменять ваши данные, как вы делаете это с помощью языка программирования. Также у него нет понятия ввод или вывод , как в случае с языками программирования, где вы получаете ввод для анализа и получения вывода.
Между прочим, HTML5 выходит вместе с более широким интересом к Интернету, а также более сильными технологиями (такими как более новые версии javascript и css), которые делают новые веб-приложения еще более мощными и безграничными.
Пожалуйста, прочитайте этот замечательный ресурс, чтобы узнать больше о HTML5.
HTML5 считается технологией. Да, существует пятая версия языка разметки HTML, но, вероятно, вы не это имели в виду.
HTML5 больше считается технологией, включающей HTML, CSS3 и javascript, и, прежде всего, их поддержкой в таких инструментах, как браузеры. Так что на самом деле это можно рассматривать как нечто, требующее программирования.
4
Программирование не означает полный язык Тьюринга. Это лингвистическая проблема, программирование означает что-то планировать, и этот Html отлично справляется.
программа (сущ.)
1630s, «общественное уведомление», от позднелатинского programma «прокламация, указ», от греческого programma «письменное публичное уведомление», от основы prographein «писать публично», от pro «далее (см. про-) + graphein «писать» (см. -графию).
Значение «письменный или печатный перечень произведений на концерте, афиша» записано 1805 годом и сохраняет первоначальный смысл.