>> Виноват, приношу извинения! Действительно, получилось похоже на личный выпад, хотя, честное слово, и в мыслях не было, я имел в виду исключительно «порог вхождения» для новичков (который часто считают «неприлично низким»).
Окей, без проблем :) Что касается порога входа, так он ведь действительно низкий.
>> Но тем не менее пересекается — это факт (разница между пустыми и непустыми элементами в т.ч. синтаксическая). В ЯП тоже бывает разный синтаксис для создания разных объектов, и в этом нет никакой трагедии.
Трагедии, безусловно, нет. Однако все потребности HTML вполне покрываются стандартным XML-синтаксисом.
>> Узаконить бардак (точнее, исторически сложившуюся объективную реальность) решили производители браузеров, по очевидным прагматическим соображениям (совместимость с существующим контентом). «Бороться» с этим можно примерно с тем же успехом, как законодательно отменять иррациональность числа «пи» (как в каком-то американском штате:).
Бороться с бардаком можно и нужно. То, что поддерживается исключительно ради обратной совместимости, объявлять в спецификациях новых версий HTML и CSS как obsolete. Публиковать не только спецификации, но и гайдлайны по грамотному использованию возможностей языка. Прислушиваться к тому, что говорят девелоперы, а не отклонять просьбу о введении background-position-x/-y, потому что мудрецы из комитета не видят теоретической необходимости. Перестать сношать вола на темы типа «color или colour?». Но от W3C не дождёшься :(
>> Начнем с того, что есть теги, которые закрывать нельзя: <img>, <input>, <meta>, <hr>, <br>.
<br />
>> Так что отмахнуться от того, что «теги» (точнее, элементы) разные (по предназначению, типичной роли, модели содержимого, DOM-интерфейсу и т.п.), попросту не получится.
Назначение тега никак не должно пересекаться с синтаксисом. Точно так же. как в языках программирования у классов разное предназначение, но синтаксис создания объектов одинаковый:
var a = new Database();
var b = new URLRequest();
var c = new DateTime();
>> Это не «чехарда», это документированная специфика технологии.
В спецификации HTML ещё сказано, что можно значение атрибутов без кавычек писать в некоторых случаях. W3C предпочли не бороться с бардаком, а узаконить его.
>> И кто не может ее осилить (хотя не так уж она сложна, особенно если абстрагироваться от «тегов» и начать мыслить структурой страницы, как ее видит и показывает браузер) — надо ли лезть в эту воду? ;)
Кажется мы подошли к моменту, когда начинаются завуалированные упрёки в профнепригодности. На эту тему я говорить, пожалуй, не хочу.
>> Между прочим, закрытие тегов не всегда помогает «определить» поведение. Посмотрите и с другой стороны на теги, которые явно не закрыты.
Начнётся чехарда — <a> закрываем, <p> не закрываем, <div> закрываем, <li> не закрываем. Оно вам надо? В вёрстке и так головной боли хватает с браузероспецифичными хаками.
>> Проблемы с таким подходом возникают только в одном случае: если пытаться вопринимать HTML как подмножество XML. Как на уровне кода, так и на уровне собственного понимания.
Если хочется визуальной простоты, можно использовать HAML — он сделает за вас всю грязную работу по преобразованию в HTML.
Прошу прощения, случайно отправилось недописанное.
>> Иногда их полезно не закрывать.
Таких случаев нет. Незакрытые теги порождают неопределённое поведение и ломают работу в IDE. Проблема с inline-block лечится нулевым размером шрифта либо комментированием строки.
>> Вообще говоря, html — не xml. Закрытие тегов во многих случаях является просто делом привычки.
А в JS можно не ставить точку с запятой в конце строки. Ничего хорошего в подобной практике нет.
Сейчас меня, конечно, забросают помидорами, но эта статья — куча противоречивых и непоследовательных, а местами просто вредных советов. То он предлагает экономить один байтик в HTML, то вдруг вспоминает про читаемость и советует в CSS после двоеточия ставить пробел. То W3C валидатор используйте, то незакрытый тег center вне body. Если для проекта актуально экономить на байтах, можно наладить автоматическую обфускацию/минификацию кода перед деплойментом. Потому что вот это:
Целая гора полезных возможностей для веб-девелоперов: показ стилей, подсветка разметки, используемые на странице цвета, список отображаемых изображений (в т.ч. бекграунды), ресайз окна браузера под нужный размер и ещё много всяких мелочей.
Прямо срыв покровов. Смешно. То же самое пишут про Яву, про C++, про Objective C — в общем, про все языки, постоянно применяемые на практике уже многие годы. Они такие не потому, что их плохо спроектировали. Всё точно так же, как с крупными приложениями: в процессе разработки новые требования не вписываются в изначальную архиектуру, код обрастает костылями. Если в социальной сети надо реализовать живое обновление ленты с помощью long-polling, ни в коем случае ничего не поломав даже на минуту, полный рефакторинг ради удовлетворения чувства прекрасного никто проводить не будет. Вот и с языками так: внедрение новых возможностей делает их некрасивыми. Девственно чистыми и синтаксически прекрасными останутся лишь те, на которых никто ничего серьёзного не пишет.
Потенциальные умственные способности примерно одинаковы у всех людей. Но формирование логического мышления, абстракций, способности обучаться и основных черт характера происходит до 10 лет. После — хоть кол на голове теши.
Причина разницы в развитии цивилизаций банальна — чем больше различных задач надо решать для выживания, тем быстрее развитие.
Я могу вам ответить, на самом деле. Всё дело в том самом культурном уровне. В айфонах, универах, маках и клубах. В свободном сексе. В возможности поехать и посмотреть на мир. В глобализации.
В этом, вообще говоря, и проблема окультуривания. Любовь к блестящим цацкам из цивилизации приходит моментально, а вот терпимость к другим, желание учиться и работать — как-то плохо приживаются.
Мы покупаем себе мирный Кавказ. То, чего не могли сделать силой сотни лет, сейчас делается деньгами. Но на это нужно чуть больше времени — лет 50, и Чечня не будет ничем отличаться от, например, Казани, которая хоть и сохраняет традиции, но при этом вполне ассимилирована.
И это быстро превращает регион в огромное ничего не производящее гетто, в котором целые поколения живут на пособия. Бюджет, на 90% состоящий из дотаций федерального центра — это какой-то сюрреализм.
Расскажите это людям, которые строили школы в Афгане.
Окей, без проблем :) Что касается порога входа, так он ведь действительно низкий.
>> Но тем не менее пересекается — это факт (разница между пустыми и непустыми элементами в т.ч. синтаксическая). В ЯП тоже бывает разный синтаксис для создания разных объектов, и в этом нет никакой трагедии.
Трагедии, безусловно, нет. Однако все потребности HTML вполне покрываются стандартным XML-синтаксисом.
>> Узаконить бардак (точнее, исторически сложившуюся объективную реальность) решили производители браузеров, по очевидным прагматическим соображениям (совместимость с существующим контентом). «Бороться» с этим можно примерно с тем же успехом, как законодательно отменять иррациональность числа «пи» (как в каком-то американском штате:).
Бороться с бардаком можно и нужно. То, что поддерживается исключительно ради обратной совместимости, объявлять в спецификациях новых версий HTML и CSS как obsolete. Публиковать не только спецификации, но и гайдлайны по грамотному использованию возможностей языка. Прислушиваться к тому, что говорят девелоперы, а не отклонять просьбу о введении background-position-x/-y, потому что мудрецы из комитета не видят теоретической необходимости. Перестать сношать вола на темы типа «color или colour?». Но от W3C не дождёшься :(
<br />
>> Так что отмахнуться от того, что «теги» (точнее, элементы) разные (по предназначению, типичной роли, модели содержимого, DOM-интерфейсу и т.п.), попросту не получится.
Назначение тега никак не должно пересекаться с синтаксисом. Точно так же. как в языках программирования у классов разное предназначение, но синтаксис создания объектов одинаковый:
var a = new Database();
var b = new URLRequest();
var c = new DateTime();
>> Это не «чехарда», это документированная специфика технологии.
В спецификации HTML ещё сказано, что можно значение атрибутов без кавычек писать в некоторых случаях. W3C предпочли не бороться с бардаком, а узаконить его.
>> И кто не может ее осилить (хотя не так уж она сложна, особенно если абстрагироваться от «тегов» и начать мыслить структурой страницы, как ее видит и показывает браузер) — надо ли лезть в эту воду? ;)
Кажется мы подошли к моменту, когда начинаются завуалированные упрёки в профнепригодности. На эту тему я говорить, пожалуй, не хочу.
Начнётся чехарда — <a> закрываем, <p> не закрываем, <div> закрываем, <li> не закрываем. Оно вам надо? В вёрстке и так головной боли хватает с браузероспецифичными хаками.
>> Проблемы с таким подходом возникают только в одном случае: если пытаться вопринимать HTML как подмножество XML. Как на уровне кода, так и на уровне собственного понимания.
Если хочется визуальной простоты, можно использовать HAML — он сделает за вас всю грязную работу по преобразованию в HTML.
Незакрытый <p> покалечит folding и автотабуляцию в NetBeans, Komodo, WebStorm/PhpStorm.
>> Незакрытые теги полностью соответствуют стандартам, поведение определено чётко.
habrahabr.ru/post/143452/#comment_4809102 — здесь человек описал, как неоднозначно это будет выглядеть в шаблонах.
>> Иногда их полезно не закрывать.
Таких случаев нет. Незакрытые теги порождают неопределённое поведение и ломают работу в IDE. Проблема с inline-block лечится нулевым размером шрифта либо комментированием строки.
>> Вообще говоря, html — не xml. Закрытие тегов во многих случаях является просто делом привычки.
А в JS можно не ставить точку с запятой в конце строки. Ничего хорошего в подобной практике нет.
<!DOCTYPE html>
<title>Байты-деньги!</title>
<p>Так-то
Просто безобразие.
chrome.google.com/webstore/detail/gbkffbkamcejhkcaocmkdeiiccpmjfdi
Целая гора полезных возможностей для веб-девелоперов: показ стилей, подсветка разметки, используемые на странице цвета, список отображаемых изображений (в т.ч. бекграунды), ресайз окна браузера под нужный размер и ещё много всяких мелочей.
Причина разницы в развитии цивилизаций банальна — чем больше различных задач надо решать для выживания, тем быстрее развитие.
И да, клик на ссылку колёсиком в Хроме открывает страницу не в новой вкладке, а в той же.
P.S. Забавно, что у всех «законодателей» нулевой или отрицательный рейтинг.
Вообще говоря, не очень. Вспомнить хотя бы ирландскую IRA и баскскую ETA.
Индейцев-то как раз активно выпиливали самыми жестокими методами.
«Купить» ЧР может и получилось. Но теперь соседние республики бузят. Видимо, хотят того же.
В этом, вообще говоря, и проблема окультуривания. Любовь к блестящим цацкам из цивилизации приходит моментально, а вот терпимость к другим, желание учиться и работать — как-то плохо приживаются.
И это быстро превращает регион в огромное ничего не производящее гетто, в котором целые поколения живут на пособия. Бюджет, на 90% состоящий из дотаций федерального центра — это какой-то сюрреализм.
И как Афган? Процветает?
ffmpeg?