Комментарии 87
А можно была просто показать, что HTML 5 + CSS 3 - полны по Тьюрингу
HTML+ Flash и подавно, но сам HTML от этого не становится "языком программирования".
Да уж, я тоже думал увидеть примеры, но тут автора куда-то унесло в далеки дали, css даже и не упоминается, а уж
HTML — самый значимый язык вычислений, программирования или чего-либо еще, из когда-либо созданных.
И вовсе смехотворно, хотя с
Сегодня множество "настоящих" языков программирования занято тем, что автоматизирует создание все бо́льшего количества HTML.
Сложно не согласится, но на мой взгляд это как раз аргумент против - если html такой крутой язык, зачем же использовать другие, чтобы его генерить и делать их все больше и больше - сразу на нем и пишите.
если html такой крутой язык, зачем же использовать другие, чтобы его генерить и делать их все больше и больше - сразу на нем и пишите.
Это как раз демонстрирует разницу между языком программирования и языком разметки. Язык разметки (html) описывает конечный результат. И, так как желательно, что бы сайты выглядели более-менее одинаково в разных браузерах, он должен быть одним общим.
Эм, чтобы найти незакрытый тег можно пользоваться валидаторами разметки. Prettier/Formatter также может помочь. У меня огромной проблемы с HTML не возникало, но у каждого свой опыт. Спорить не о чем тут.
Мне нравится идея pug, где упрощён синтаксис и вложенность определяется отступами. Плюс есть возможность инклудить файлы.
В принципе, и сейчас никто не мешает его использовать.
Но на практике я не плачусь от синтаксиса HTML, все как-то привычно и пишется автоматом )
Я занимаюсь парсингом и вы не поверите как много сайтов с битыми тегами. Где-то не закрыли, где-то закрыли не в том порядке, где-то ещё что. Это такой ад и я, как веб разработчик, зная современные IDE не понимаю как так можно вообще сделать.
IDE это забавная штука, но не более того.
Шкурки для сайтов и без него можно делать, особенно учитывая то, что разные CMS могут иметь разную логику шаблонов. И либо ты сидишь и изучаешь IDE, у которой свой собственный функционал, ради одного единственного раза, либо просто лезешь в файлы шаблонов и правишь там.
Потому что браузер прощает ошибки, а раз работает, не трогай.
Очень просто, открывали в разметке, закрывали в северном скрипте, а потом дом переделали клиентским скриптом и получилось то, что получилось. И так сойдёт, если тест на отображение пройден.
почему отступы? почему, бл, не цветом? или размером шрифта? школоте же понравится - красиво. за концепцию отступов надо сдать в биореактор того выдумщика
Придумать лучше - хз
Придумать читабельнее - yaml.
Блоки явно выделены, закрывашки не обязательны, нужны только в паре типов, есть якоря и минификация.
Идеален он? И не близко. Но вполне себе вариант для расширения
Почему за базу взяли XML, понятно
Не понятно. Почему?
Это просто показывает, что иногда лучше подумать и придумать что-то новое, чем брать за основу то, что есть. Не знаю, на что должен быть похож идеальный язык разметки, но точно не на HTML
А давайте пофантазируем, каким бы вы хотели видеть такой язык? Что по вашему мнению достойно было бы занимать пьедестал всемирной путины, который сейчас занимает HTML? Вернее сказать — как оно должно было бы выглядеть?
HTML — язык программирования. Убедите меня в обратном
Не знаю как другим, а мне религия не позволяет опровергать то, что не снабжено аргументами "за".
Я просто не понял, а в чем прикол: ну, докажет кто-то, что html - это яп или наоборот. Что изменится и на что повлияет такой вывод? Чушь какая-то
Там в конце всё чётко написано.
Переводчик: как видите, это просто своеобразное признание в любви к HTML
Людям часто важно, не то что именно значат используемые ими слова, а то как они сами к этому относятся.
"HTML - не язык программирования" звучит обидно и неприятно. Можно даже сказать, оскорбительно звучит.
Поэтому, все кто не согласны с "HTML - язык программирования", они твари, тролли, токсичные гады и т.п. и т.д.
Ничего другого в этой, и многих других, темах нет. Вопрос лишь в неприятности слов и "когда говоришь ты, это звучит обидно".
Ну, то есть, в данном случае, мы имеем дело, скорее всего, с хайпожортсвом и попыткой насобирать просмотров на ровном месте. Но в целом тема существует.
А хайпожорство автора или переводчика? :)
На Weird - автора.
На Habr - переводчика.
Про автора ничего не могу сказать — не в курсе. А вот мои хабра-переводы я делаю по порыву души, иначе мне их нет смысла делать — все они лойсаются и читаются кууда хуже нежели мои оригинальные статьи. Любая зарубежная статья, которой я хочу поделиться с хабром, оказывается хабру немила, это я давно в курсе. А про эту сразу было ясно, что будет самая жуткая :) Мне даже уже умудрились влепить минус за, внимание, "кликбейтный заголовок" xD Заголовок кликбейтный у автора, а рейтинг отрицательно растет у переводчика ¯\_(ツ)_/¯
В общем, хайпожорство автора недоказано, хайпожорство переводчика отрицается самим переводчиком. Зачем переводил? Возникло непреодолимое желание причинить кринж-статью всем хабравчанам (я не шучу)
HTML — язык?
язык
разметки
Оба утверждения верны. Но он точно не язык программирования.
HTML точно язык программирования, декларативный, не тьюринг-полный, но язык программирования, не понимаю о чём тут вообще спорить.
Делая утверждение, с которым явно не согласно подавляющее большинство, стоит пояснять, почему вы так считаете (просто негласные правила здоровой дискуссии)
Потому что я смог прочитать определение декларативной парадигмы и даже приложил ссылку на страницу википедии где любой желающий так же может ознакомиться с этим определением.
А последний абзац там смогли прочитать? А лучше англоязычную версию.
Смог, давайте приведу их тут, мало ли я не те прочитал
Последний абзац
«Чисто декларативные» компьютерные языки зачастую неполны по Тьюрингу — так как теоретически не всегда возможно порождение исполняемого кода по декларативному описанию. Это иногда приводит к спорам о корректности термина «декларативное программирование» (менее спорным является «декларативное описание решения» или, что то же самое, «декларативное описание задачи»).
Выдержки из англоязычной страницы
In computer science, declarative programming is a programming paradigm—a style of building the structure and elements of computer programs—that expresses the logic of a computation without describing its control flow.[1]
Many languages that apply this style attempt to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain, rather than describing how to accomplish it as a sequence of the programming language primitives[2] (the how being left up to the language's implementation). This is in contrast with imperative programming, which implements algorithms in explicit steps.[3][4]
...
Many markup languages such as HTML, MXML, XAML, XSLT or other user-interface markup languages are often declarative. HTML, for example, only describes what should appear on a webpage - it specifies neither control flow for rendering a page nor the page's possible interactions with a user.
Заметьте, HTML при этом нигде не называется языком программирования. Он называется "предметно-специфичным языком", "декларативным языком", "языком разметки" и т.д. То, что он используется в декларативном программировании, не делает его языком программирования.
Это просто формат данных, используемый в декларативном программировании.
Один последний вопрос: Markdown и JSON - это тоже по вашему определению языки программирования?
Я не призываю вас менять свое мнение и признаю, что формального определения языка программирования не существует в принципе (лично для меня всё, что не может посчитать 2+2, ЯП не является), просто статья в Википедии выглядит очень уж несерьезно для того, чтобы её принимать за истину в последней инстанции (особенно с плашкой "нуждается в переработке").
Markdown - да, синтаксис, лексика есть. JSON - нет, это только синтаксис.
Формальное определение языка программирования например дано в ISO/IEC/IEEE 4765:2017 Systems and software engineering — Vocabulary
3.2297 programming language 1. a language used to express computer programs. 2. an artificial language for expressing programs. ISO/IEC 2382-1:1993, Information technology — Vocabulary — Part 1: Fundamental terms.01.05.10
"programming language - a language used to express computer programs" - это не формальное определение, а тавтология, не дающая никаких критериев для отделения programming language от не programming language.
Где, кстати, не указано обязательное наличие ни синтаксиса, ни лексики, поэтому не понятно, почему вы руководствуетесь этими понятиями
Наличие синтаксиса и семантики указано в определении формального языка (в том же словаре ИСО). Языки программирования являются формальными языками.
3.1559 language
1. a systematic means of communicating ideas by the use of conventionalized signs, sounds, gestures, or marks and rules for the formation of admissible expressions 2. a means of communication, with syntax and semantics, consisting of a set of representations, conventions, and associated rules used to convey information
Можете привести свои доводы против того что HTML это язык программирования? Кроме уже озвученных "в расшифровке это язык разметки, а не программирования" и "моё личное определение языка программирования не такое". Приведите определение языка программирования, пожалуйста. Если с конкретными критериями соотвествия, то вообще будет восхитительно.
Бремя доказательства лежит на утверждающем. Если вы утверждаете, что HTML - язык программирования, то это нужно доказать. По умолчанию ни один язык таковым не является. Ровно как ни одно число не является простым по умолчанию, пока мы сформулируем критерий простоты числа и сможем применить критерий к любому числу, чтобы доказать простое число или нет.
Если вы внимательно читали мои сообщения, то должны были понять, что я считаю (и вы меня не смогли переубедить), что формального определнеия языка программирования не существует. И как следствие, каждый может считать языком программирования хоть нотную граммоту, если захочет. И переубеждать я вас не пытался и пытаться не буду.
Просьба привести критерии соответствия отдельных языков к языкам программирования чисто логически должна звучать в адрес человека, который утверждает, что есть некое объективное формальное определение языков программирования. С вашей стороны определения с явными критериями ЯП, по которым мы можем отделить мух от котлет, не прозвучало.
К тому же допускаете ошибку, считая, что у JSON нет семантики, а только синтаксис. Объекты JSON, списки, строковые литералы, числа - это все есть не что иное, как семантика JSON (т.е. смысловое значение, на языке JSON я вполне могу описать хоть бизнес-процессы, хоть внутренности своей комнаты, как на HTML описывают структуру сайта). И JSON имеет свою формальную грамматику, как и разные ЯП.
Повторюсь: дальнейшая дискуссия бессмыслена, пока вы, как утверждающий что HTML - это ЯП, не приведете определение ЯП, которое можно будет применить и к HTML, и к JSON, и к русскому языку (у которого тоже есть семантика и синтаксис), и к любому другому языку, чтобы узнать, является ли он ЯП.
погодите, вы сами же выше ссылались на то, что "язык программирования - это язык описания компьютерных программ". Логично, что надо отталкиваться от определения "программа". Если верить Нейману, то программа - specific set of ordered operations for a computer to perform. ХТМЛ, при всем моем к нему уважении, на описание последовательности операций не похож.
Так даже если следовать этому определению HTML сложно назвать ЯП. Можно ли написать программу на HTML?
HTML - это буквально расшифровывается как язык разметки, че тут доказывать то
Вот как раз в 2025 году самое одной рукой прижать HTML к груди, а в другую взять палку, чтобы фигачить по любителям запихивать контент в java/flash/silverlight/webassembly/апликухи и любит передавать его мелконарезанным через websocket.
Потом надо будет перейти на тех, кто запихивает контент в хрень собираемую яваскриптом на клиентской машине.
Голого HTML вообще должно хватать если не всем, то абсолютному большинству веб-сайтов.
Спасибо, добавил в список делателей апликух.
А в чём вопрос? В 25-м что-то изменилось в этом плане? Или вы не понимаете значения слова сайт?
Понятно, вы просто не понимаете значения слова сайт.
вместо поиска чудо "сайта" с инфой мы будем заходит на площадки со статьями вроде хабра, и искать на них
"площадки со статьями вроде хабра" так это ж и есть сайты. И соцсети, и маркетплейсы это тоже сайты.
Так вёрстка и сайт это совсем разные вещи.
И что с вёрсткой такого изменилось? В большинстве случаев действительно нет необходимости "запихивать контент в хрень собираемую яваскриптом на клиентской машине" (полагаю, это намёк на react и т.п.).
в данном контексте речь была о верстке в чистом виде, которая используется как раз таки на многостраничниках (сайтах), а в фреймворках (приложениях на них) ее как правило уже нет - все как возмутился тот чел - режется на куски, смешивается, извращается и тд.
Ну это чисто вкусовщина, кому как больше нравится. Просто во втором случае используется дополнительная абстракция. Во Vuejs (как в React не знаю) вполне себе обычный HTML (просто с доп тегами и атрибутами). В итоге всё равно эти фреймворки генерируют голый HTML, так как браузеры понимают только его.
Да какая там правда ) Просто слабоумные комментарии режут глаза.
чел что выше также защитил хтмл в чистом виде, и обругал его в фреймворках и прочих "сомнительных" технологиях
А можно цитату, где "чел что выше" обругал html в фреймворках?
Ветка за внутреннее устройство, за использование классической верстки - когда вы просто берете 3 разных файла html js css. И за другой случай, когда вы делаете все "в грязную" - через инструменты.
Я просто напомню о чём речь: "фигачить по любителям запихивать контент в java/flash/silverlight/webassembly/апликухи".
Речь не про метод генерации html , а о том, отдаётся ли контент в сохраняемом и воспроизводимом виде, или нет.
Всё остальное Вы сам себе выдумали.
реальность такова что пользуются люди в основном приложениями, а не сайтами
Тут есть два важных момента.
1) Мы не знаем, насколько часто и добровольно люди пользуются приложениями. Статистика установок не значит ничего, статистика использования строится по методикам позволяющим одним писать пресс-релизы, а другим - получить зарплату за разработку. Вам в каждом ларьке предлагают поставить их апликуху, но даже если Вы эту апликуху поставите, то не факт что это прям Ваш выбор и вы будете пользоваться. Вам просто пофиг.
Плюс к тому, есть отличный приём, когда в веб-интерфейсах нет того, что есть в апликухах. То есть, тех людей, которые пользуются веб-интерфейсами перетягивают на апликухи через дискриминацию и принуждение.
Так что, повторю, мы не знаем чем РЕАЛЬНО пользуются люди и чем бы они пользовались без разных методов принуждения.
2) Но что самое главное, Вы пропустили слова "запихивать контент" и перечень технологий. Речь не о том, чтобы оплатить со смартфона по куаркоду, а о том, что люди пишут/читают и звуко-видео-записывают/слушают-смотрят.
непостижимая тупость, что прямо сейчас сидит чел, и с 0 верстает какой-нибудь "очень нужный" сайт для какой-нибудь школы, или визитку с рассказом о себе.
И мы все должны быть очень благодарны этому человеку за то, что прямо сейчас можем найти через веб-поисковики рассказы об истории этой школы, с ретроспективами фотографий.
И ещё больше благодарны за то, что у нас будет какой-никакой а шанс воспроизвести этот контент через несколько лет, а может и десятков лет. А не так как полтора десятка лет наваяли 3 сайта с архивными документами на сильверлайте, которые обычные историки выкачать не могли. Через год бюджет на хостинг и домены кончился и всё умерло.
хтмл должен переродиться в новом облике под современные нужды.сайты, визитки, продающие страницы. пусть это и используется пока еще, но от этого моментально выворачивают наизнанку.
Это очень забавно, что Вас с одной стороны воротит от продающих страниц, а с другой, Вы говорите что HTML должен переродиться "под современные нужды", что по сути - мгновенные нужды продаванов, по сбору аналитики, таргетированию рекламы и пр.
А накопление информации и хоть сколь либо её долговременное хранение с возможностью использования, в нужды продаванов не входит.
HTML — HyperText Markup Language (язык гипертекстовой разметки). По-моему, этим всё сказано.
Отличный, кстати, разговор, показывающий, что люди, которые вроде как что-то понимают в теме, упираются в философские термины "полнота по тьюрингу" или в феноменологическое объяснение термина "язык программирования" и эмоции "а мне нравится".
Напоминаю, что вопрос "Является ли HTML языком программирования" был закрыт сразу после его возникновения (то есть, когда часть спорящих, возможно, ещё и не родилась).
Тут всё скучно и до банального просто.
Язык программирования это сущность для задания ЛОГИКУ.
А на HTML невозможно задать логику, потому что там нет:
- переменных
- условий
- циклов
Ну, ок, за прошедшие 30 лет там появились узкоспециализированное подобие "условий" в виде заголовков под разные media и типа того.
хочется отметить, что понятие "полнота по тьюрингу" как раз и говорит о том, что этот язык (или автомат) может реализовать любую произвольную логику. (никто не говорит, что это будет минимально удобно)
ну все, скоро драйвера будут на HTML писать
Высер, че что можно об этом сказать...
Если html это язык вычислений, то как на нем вычислить 2*2?!
О чем вообще разговор, просто посмотрите что скрывает аббревиатура html - hyper text MARKUP language. На вопрос уже ответили, это не язык программирования, а язык разметки. И даже всякие трики с html + css, который якобы полный по Тьюрингу - это всё попытка натянуть сову на глобус)
HTML — язык программирования. Убедите меня в обратном