Как стать автором
Обновить

Комментарии 68

Очень! Очень хочу такое на Python.
Эта штука сама по себе «со вкусом питона», по-моему. :)
угу, потому что indent based, бррр
А мне нравится.
лаконичность мне тоже нравится. но мне комфортней cчитатать пробелы — оформлением кода, сущностью от самого кода вобщем-то независимой, а потому пайтона и хамла стараюсь избегать.
мне все это напоминает #region и #endregion от майкросовфта для фолдинга кода в msvs:)
Но вы ведь в любом случае оформляете код отступами. Если отступы уже используются для оформления блоков кода — мне показалось очень логичным этим и ограничиться.

Кроме того, indent based подход гарантирует, что вы при чтении кода не «провтыкаете» важный оператор из-за того, что особое расположение звезд заставило вашего коллегу записать его в одной строке с другим оператором. А еще он делает код, написанный разными программистами, более-менее одинаковым. По крайней мере визуально. :) Минус одно соглашение, о котором команда будет спорить, +10 к скиллу «чтение чужого кода». Здорово же.
А давайте портируем! Я с удовольствием.
Замечательно!
Хоть синтаксисом он проигрывает Slim'у, наличие внутри него AST очень радует.
Вы скоро и html забудете, и javascript, бедные бедные рубисты. Что за мания создавать новые сущности.
КПД?
еще понимаю, в простых наколенных проектах, но в больших, где работает группа людей мне кажется выигрыш стремится к 0.
Вам кажется.
Жму руку уважения рубистам! Столько минусов в комментарий, и не одного в карму! Это по человечески,!
К слову, раньше я искал способ повысить производительность при верстке, начал использовать zen-coding — к синтаксису привыкаешь очень быстро. А он очень похож на объект статьи.

Посмотрите на хамл и слим с другой стороны. Как параллель люди придумали посудомоечные машины, но не разучились мыть посуду руками

Я, например, уже пару лет как забыл html в пользу haml, css в пользу sass/compass и с полгода назад начал забивать на джаваскрипт в пользу кофескрипта. Чувствую себя при этом очень сухо и комфортно. Очень возрасла скорость разработки и качество кода.

Бедный я!
А что такое «кофескрипт». Если можно по подробнее расскажите!
Кажется я начинаю забывать, с какой стороны нужно открывающую скобку ставить, а с какой закрывающую в html… ох беда, беда.
А еще мы забудем, как самим реализовывать авторизацию, аутентификацию, рисование формочек, прикрепление файлов, как писать на чистом SQL, как использовать операторы for и while и как возиться с натройкой деплоя. И многое другое. Это такая печаль.
for и while заменяем на .each и .times? Я правильно понял?
В подавляющем большинстве случаев — да.
«Бедные, бедные рубисты» (с)
достойно башорга ))
Такой тонкий юмор не все поймут.
Не думал что лучше хамла что-то придумают. Но кажется это действительно вкусно.
В следующем проекте обязательно.
Спасибо за перевод. Только, по-моему, ты путаешь скобки с кавычками. Везде где были кавычки, ты назвал из скобками.
Не везде, только в двух местах -).

Ночью писал, видимо, просмотрел. Спасибо за корректировку.
Использую уже месяца 2 в проектах на Rails 3.
В свободное время пытаюсь заставить работь slim в Rails 2.3. Есть некоторые продвижения, но пока до конца не получилось.
Кажется, хорошая штука в пользу еще большего улучшения производительности программиста. И очень удивил бенчмарк, я не думал, что haml в сыром и готовом виде настолько медленнее выполняется. Заставляет задуматься, но, пожалуй, в любом случае быстрее любой CMS.
Программисты ruby on rails всегда выбирают незначительный проигрыш в производительности программы за счет огромного выигрыша в производительности программиста и качества кода. Дешевле докупить железо, чем переплачивать гораздо бОльшие деньги за дополнительное время разработки. К счастью, для нас человекочасы дороже машинных часов).
Кстати кто может пояснить причину такой медлительности хамла даже уже в скомпилированном виде?
И, дополню свой вопрос, если у меня деплой на nginx в production, то какой из бенчмарков наиболее близок к реальности

Ps где вообще можно почитать про описанные автором 4 вида тестов

Pps автору огромный респект узнал много нового
А как на счет вложенных тегов?
Всё просто же.

ul
  li
    a href="/"
      img src="logo.png"

# будет выведено в такой код:
<ul>
  <li>
    <a href="/">
       <img src="logo.png" />
      </a>
  </li>
</ul>
Обозначать id и class можно вот так:
blockquote id="quote-#{@quote.id}" class="quote"
  p class="title" = @quote.title
  p style="padding:1em;" = @quote.body

Для сравнения с Haml:
%blockquote{:id => "quote-#{@quote.id}", :class => "quote"}
  %p{:class="title"}= @quote.title
  %p{:style => "padding:1em;"}= @quote.body

Вы лукавите. В haml можно писать и так:

%blockquote(id="quote-#{@quote.id}" class="quote")
  %p(class="title")= @quote.title
  %p(style="padding:1em;")= @quote.body
Я не лукавлю, разве мой способ неверен для хамла?

В любом случае в Sass, как по мне, более чистый синтаксис.
в slim наверное =)
Всё, надо ложиться спать раньше)
Я к тому, что в хамле записывать значения атрибутов можно не менее удобно, чем в slim.
В slim на 2 скобочки в строке меньше. Разве не за это мы любим руби?) Но я согласен, улучшения незначительны. В новых проектах стоит попробовать, но в старых можно спокойно оставаться на haml.
А можно и
%p.title опускав генеалоге слово класс
И # для id
Опустив ненужное слово*

Чертов айпад!
По работе вынужден использовать PHP + Smarty. Такие статьи хочется просто удалять )))
Он разве production ready? Судя по коммитам его еще в 2010 забросили.
Вам в PHP не хватает своих велосипедов?
Ссылку на indent-шаблонизатор в студию.
Будут. Не отчаивайтесь. Оно же любимое дело php-программеров изобретать и обсуждать кривые шаблонизаторы. При том что в самом PHP встроен шаблонизатор рекомендованный в качестве стандарта W3C еще в прошлом веке.
Можете не утруждать себя продолжением дискуссии. Вам сюда.
НЛО прилетело и опубликовало эту надпись здесь
Эх, по прежнему если, например в теге p, где много много текста надо вставить ссылку, то ссылку надо писать на новой строке, разрывая по сути p
НЛО прилетело и опубликовало эту надпись здесь
Жаль в RubyMine поддержки нет
примерно по этой причине (тогда причина — haml) выбор пал на vim. Два месяца позора — и можно программировать ))) (не к чему не призываю. it's my way)
Как обычно нет этих двух месяцев на заточить пилу осилять vim.
Поэтому я там выучил только, как править, сохранять и выходить -а на случай отсутствия на машине nano ;)
вы меня неправильно поняли.

Для vim быстро публикуется все новое. Подсветка и другие плюшки. vim можно при помощи 4 напильников и молотка превратить в IDE. Я об этом, а nano == notepad. Проще mc поставить и во внутреннем редакторе править.

cat ed sed тут не причем ))))

>Для vim быстро публикуется все новое. Подсветка и другие плюшки. vim можно при помощи 4 напильников и молотка превратить в IDE

Я в курсе

>а nano == notepad

Ну почти, в nano подсветка синтасиса есть ;)

>Проще mc поставить и во внутреннем редакторе править.

Чем проще? Тем, что для того, чтобы поправить файл придётся запускать mc?

>cat ed sed тут не причем ))))

А где я их упоминал?
Есть.
На момент появления комментария (полтора года назад) — не было
По сути, это просто HTML без <> скобок, в котором используются отступы для обозначения вложенных элементов.

а если вместо отступов сделать скобочки, будет обратно похоже на Lisp :)
Не безъизвестный timpope уже внес поддержку slim в rails.vim
Ребят, может быть я что-то не понимаю, но автоматическое определение тэгов лично меня напрягает. Если в том же haml я могу однозначно определить тэг как

%title some text

то использование в slim конструкции

title some text

выглядит немного пугающе. А если я хочу начать строку со слова title или article или еще с какого-то слова, совпадающего с тэгом — это тоже автоматом будет определяться как текст и превращаться в тэг? Лично меня бы это очень огорчило.
просто текст в слиме будет писаться так:
| title some text
то есть — надо будет не тэги выделять, а обычный текст? :(
Только если этот текст пишется вне строки с тегом
Тоесть делается либо так

title some_title_text

либо так

title
  | some_title_text
НЛО прилетело и опубликовало эту надпись здесь
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.