
Mikhail
23.08.2017
08:07:35
Но реакт только частично декларативный. Циклов всяких там хоть отбавляй

Oleg
23.08.2017
08:07:53

Nick
23.08.2017
08:08:33

Alexey
23.08.2017
08:08:39

Google

Mikhail
23.08.2017
08:09:41

.
23.08.2017
08:10:15

Nick
23.08.2017
08:10:16

Oleg
23.08.2017
08:10:28
Потому что нужно было назвать do
если брать статистическое среднее императивной семантики в теле по гитхабовским источникам , то ставлю, что do оно будет выше, чем у for

Nick
23.08.2017
08:10:44

Aleksey
23.08.2017
08:11:04


.
23.08.2017
08:11:13
обычная практика вот так делать например

Nick
23.08.2017
08:11:37
А как вам такая логика. Хаскель императивный, потому что он запускается на линуксе, где весь код императивный

Oleg
23.08.2017
08:11:41

Nick
23.08.2017
08:11:53

Max
23.08.2017
08:12:58
мне кажется или тут путаница между понятиями "управляющая конструкция" и "императивщина"?

Mikhail
23.08.2017
08:13:16
каких циклов? это же просто state -> virtual dom
'ul(
// Look at that. You just map data to view
friends map { friend =>
'li(friend)
}
В элемент ул, вставляется список li который получается с использованием цикла. Это не чисто декларативный подход. Чисто декларативный это как в ExtJS, Flex

Google

Oleg
23.08.2017
08:13:21

Nick
23.08.2017
08:13:29

Mikhail
23.08.2017
08:14:01
В королеве же используется цикл для прямого отображения Данных в Элемент-Шаблона и это не под капотом, а человек сам при написании шаблона это херачит

Max
23.08.2017
08:14:02

Oleg
23.08.2017
08:14:54

Aleksey
23.08.2017
08:14:54

Alexey
23.08.2017
08:15:32

Aleksey
23.08.2017
08:16:56

Oleg
23.08.2017
08:17:26
Императивный код составлен из инструкций - сделай то, сделай это. Он обладает свойством предсказуемости посдледовательности действий.
Исходя из шаблона я совершенно не могу понять, в каком порядке будут "исполняться" шаблоны для каждого из friend, будут ли они исполняться параллельно или последовательно, до, после или во время обработки остального шаблона

Aleksey
23.08.2017
08:17:46

Oleg
23.08.2017
08:18:04
Поэтому я не могу сказать, что этот код обладает качеством императивности, безусловно полезным в определённых случаях

Mikhail
23.08.2017
08:18:37

.
23.08.2017
08:18:42

Alexey
23.08.2017
08:19:20

Aleksey
23.08.2017
08:19:31

Oleg
23.08.2017
08:19:47
В общем, есть слово "императивщина" в том смысле, в котором его понимает только @rudogma . Можно игнорировать это слово, т.к все остальные понимают это слово совершенно в другом смысле

Mikhail
23.08.2017
08:19:51

Oleg
23.08.2017
08:20:29

Aleksey
23.08.2017
08:21:23

Google

.
23.08.2017
08:21:48

Aleksey
23.08.2017
08:22:35

Nick
23.08.2017
08:23:02

Mikhail
23.08.2017
08:24:30

Oleg
23.08.2017
08:26:11
Всё просто

Aleksey
23.08.2017
08:26:18

Oleg
23.08.2017
08:26:55
node.innerHTML = html;
в общем-то это DOM API
https://www.w3schools.com/jsref/prop_html_innerhtml.asp

Nick
23.08.2017
08:27:29
А html не декларативный? Или что есть чистый?

Aleksey
23.08.2017
08:27:47

Oleg
23.08.2017
08:28:06
Думаю, что во вселенной Михаила декларативный - синтетический синтаксис шаблонов, без вставок кода
Если ты вставляешь код на языке, который разрешает сайд эффекты, ты типа автоматически лишаешься декларативности

.
23.08.2017
08:33:03

Oleg
23.08.2017
08:33:50

Mikhail
23.08.2017
08:34:24
Разница такая же как между ленивым списком c map и простым массивом с циклом while. Разная семантика совершенно.
Ты зациклился на внутреннем устройстве. Для меня же при написании шаблона - важна именно визуальная часть исходного кода шаблона. И если я вижу цикл (ленивый, декларативный или еще какой но все таки цикл ручками указанный (не вызванный, а именно указанный - потому что не важно тут же он исполняется или только описывает, что в этом месте будет цикл позже)) - то, считаю что это уже не чисто-декларативный. А если эту возможность убрать из королева, то ничего кроме дсл для хтмл и не останется)

.
23.08.2017
08:34:25
Допустим взять девверсию проекта, открыть бандл скрипта и сделать в нём ctrl+f -> innerHTML

Mikhail
23.08.2017
08:35:24
хотя не, парсе там нет в реакте. там же наверное все на этапе компиляции в функции перефигачивается

Oleg
23.08.2017
08:36:35
Возможно, что хитрые бандлы как-то хитро браузерно-зависимо минимизируют этот вызов так, что его не видно

Google

Aleksey
23.08.2017
08:37:50


Oleg
23.08.2017
08:38:31
Думаю, что во вселенной Михаила декларативный - синтетический синтаксис шаблонов, без вставок кода
Если ты вставляешь код на языке, который разрешает сайд эффекты, ты типа автоматически лишаешься декларативности

Aleksey
23.08.2017
08:41:00

Mikhail
23.08.2017
08:41:38
Думаю, что во вселенной Михаила декларативный - синтетический синтаксис шаблонов, без вставок кода
именно. чисто декларативный подход к уи - это описание интерфейса используя только перечень элементов которые должны в нем присутствовать и их характеристики. и это необязательно строковый шаблон. это также могут быть инструкции языка. и используемые элементы(компоненты) могут внутри делать что угодно. циклы, ленивость, монадки или еще что - чем угодно обмазаться. но при описании непосредственно уи - только декларатив

Alexander
23.08.2017
08:43:51
ну вы тут дали, дык чё map - это уже императивщина :D

Aleksey
23.08.2017
08:43:53

Alexander
23.08.2017
08:44:38
функтор в шоке

Aleksey
23.08.2017
08:45:01


Mikhail
23.08.2017
08:47:36
Или ты хочешь что бы не было данных на вход?
Хочу
<DataGroup dataProvider=friends></DataGroup>
- на королеве это возможно, но это будет уже не фича Королева, это ручками придется написать. С этой точки зрения Королев мне не дает никакой декларативности кроме dsl для html. Но я не уверен насколько органично и удобно будут эти датагрупы смотреться в Королеве
Плюсы чистой декларативности проявляются тогда, когда начинаешь иметь дело со скинизацией и переиспользованием логики компонент. Но чтобы это использовать в Королеве - опять таки - надо кучу всего понаписать еще самому) Хотя меня воротит от одного вида html (в любом виде, что строка что дсл) в коде логики. Но это так - просто к слову) Можно закончить)

Nick
23.08.2017
08:51:18

Oleg
23.08.2017
08:56:14
Короче, переписывай королёв на фримонадки и никто уже не будет докапываться до недекларативности

Grigory
23.08.2017
09:03:48
Scalalaz #27 - с Мариной Сигаевой http://scalalaz.ru/series-27.html

Aleksey
23.08.2017
09:12:55

Oleksandr
23.08.2017
09:14:04

Denis
23.08.2017
09:14:22

Oleg
23.08.2017
09:14:27

Google

Denis
23.08.2017
09:14:30
Звук крутой

Grigory
23.08.2017
09:14:46
как опенсорс разработчик делай что тебе хочется Алексей

Aleksey
23.08.2017
09:15:21

Grigory
23.08.2017
09:15:40

Vasily
23.08.2017
09:31:38
Кстати, насчет Королева - это, часом, никак с Яндексом не связано?

Grigory
23.08.2017
09:32:50

Igor
23.08.2017
09:34:14

Evgeniy
23.08.2017
09:34:37

Aleksey
23.08.2017
09:35:24

Michael
23.08.2017
09:40:11
@fomkin на 'github korolev' ты пока первый =)

Grigory
23.08.2017
09:52:33
яндекс пушка как плагин к яндекс танку

Alex
23.08.2017
09:57:30
И яндекс Петрович

Alexey
23.08.2017
09:57:59