Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   JS.next(стандарты, фичи, движки) (https://javascript.ru/forum/offtopic/50248-js-next-standarty-fichi-dvizhki.html)

trikadin 04.11.2015 20:06

Цитата:

Сообщение от Safort
Кароче, посоны, Object.observe выпиливают https://mail.mozilla.org/pipermail/e...er/044684.html

Ну блин. Это же офигенно полезная штука, какого чёрта?

FINoM 04.11.2015 20:08

trikadin, на самом деле, акцессоры рулят. Могу холиварить об этом долго.

Mаxmaxmаximus 04.11.2015 23:28

FINoM, назови мне аксессор на удаение свойства?
аксессоры медленнеее обсерверов.
аксессоры заставляют тебя изменять обьект если ты хочешь его прослушивать хотя возможно это изменение слмоает обьект.

сделай мне обсервинг массива на аксессорах, устанавливай и удаляй их каждый раз при изменении длины. А потом пробегись циклом по десяти тысячному массиву, вызывая 10 тысяч аксессоров и.т.п.

в общем ты не обижайся но ты слабо разбираешься в теме раз сравниваешь аксессоры и обсервинг. они для разных целей, и аксессоры совершенно не предназначены для отслеживания изменений, они предназначены для контролирования заливки значения и возможного реагирования на его изменение ИЗНУТРИ обьекта, снаружи для этой цели служат обсерверы.

Mаxmaxmаximus 04.11.2015 23:31

Пасоны я не понял че та, они решили выпилить из стандарта фитчу которую придумали? Окей а как они предлагают тогда обсервить обьекты и массивы? А как же фреймворки которые построенные на Object.observe?

trikadin 05.11.2015 00:58

Цитата:

Сообщение от FINoM
trikadin, на самом деле, акцессоры рулят. Могу холиварить об этом долго.

У тебя есть объект, в котором нужно отслеживать добавление/удаление произвольных свойств. Расскажи, как это сделать на аксессорах? Ещё аксессоры синхронные (как и прокси), а О.о -- нет.

Короче, нет смысла спорить об этом, у проксей, аксессоров и О.о -- разные сферы применения, это как спорить, что лучше -- гвоздь или шуруп.

devote 05.11.2015 10:52

Цитата:

Сообщение от trikadin
что лучше -- гвоздь или шуруп.

шуруп конечно, он по структуре сложнее :D

trikadin 05.11.2015 12:30

devote, ага, и забить его молотком можно, а вот гвоздь вкрутить не получится :D

Вот мы и будем, похоже, шурупы молотком забивать, изобретая свои 100500 велосипедов на проксях вместо "гвоздя" O.o

FINoM 05.11.2015 13:43

Цитата:

Сообщение от Mаxmaxmаximus
назови мне аксессор на удаение свойства?

Это минус акцессоров, да.
Цитата:

Сообщение от trikadin
в котором нужно отслеживать добавление/удаление произвольных свойств.

O.o - это костыль, причем достаточно медленный, если сравнивать с акцессорами. Не буду тут развивать тему в этом топике, я уже написал здесь, что я думаю об обсерверах и акцессорах.

FINoM 05.11.2015 13:57

Лично меня в defineProperty привлекает скорость и последовательность (читай, синхронность).

На самом деле, было бы круто иметь симбиоз O.o, Proxy и defineProperty. Сейчас все три технологии имеют свои минусы.

1. O.o не умеет слушать отдельные свойства, не умеет быть синхронным без вызова deliverChangeRecords.
2. Proxy не поддерживает асинхронность, не умеет слушать отдельные свойства, не позволяет работать с объектом напрямую.
3. defineProperty не умеет слушать delete и не может быть асинхронным.

В идеале, хотелось бы видеть один API, который:
- Позволяет опционально включить асинхронность.
- Позволяет, по выбору программиста, слушать все изменения или изменения отдельных свойств (например, длины массива) для увелиения производительности.
- Из изменений слушает delete, get, set.
- Слушает set, не заставляя перезаписывать акцессор.
- Позволяет работать с объектом напрямую.
- Позволяет, как и прокси, переопределить стандартное поведение JavaScript (например, при delete, не удалять свойство, а запускать произвольный код).

Мне не очень нравится идея удаления О.о из спецификации, но если этот ход ведет к созданию единого API, который сочетает в себе плюсы всех трех технологий, я только за. Но пока, если я правильно понимаю, ничего такого не предвидится.

trikadin 05.11.2015 16:59

Цитата:

Сообщение от FINoM
O.o - это костыль, причем достаточно медленный, если сравнивать с акцессорами.

Можно пруфов? Странновато звучит -- асинхронные события (которые ещё и накапливаются, к тому же) медленнее, чем синхронные вызовы функций?


Часовой пояс GMT +3, время: 11:10.