The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Google выпустил язык программирования Dart 1.0, созданный дл..., opennews (??), 14-Ноя-13, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


106. "Google выпустил язык программирования Dart 1.0, созданный дл..."  –1 +/
Сообщение от jOKer (ok), 15-Ноя-13, 14:20 
Не все так просто. Обозначу несколько проблем (на самом деле их куда больше):

- для приложений подгружающих свои части (например, визуальные компоненты) требуется асинхронная загрузка ресурсов, дабы гарантировать что ресурс доступен прежде чем к нему будет осуществлена попытка доступа; в случае же, если определение ресурсов декларативно (на уровне синтаксиса программы), реализация такого механизма становится весьма нетривиальной задачей. Я вот знаю только один такой механизм - в dojo toolkit. Возможно есть и другие, но их в любом случае очень немного. В тулкитах на дарте такого механизма скорее всего пока нет, а без него серьезное веб-приложение очень трудно написать

- визуальным компонентам сложнее кнопки, требуются источники данных. Причем эти источники могут быть как локальные (данные в разметке, бд браузера и т. д.) так и сетевые. Реализовать же единый дееспособный интерфейс с учетом требований кросс-браузнерости (а также политики одного источника) не так просто как может показаться. Потребуется много времени и усилий как со стороны программистов, так и со стороны тестеров, потому что это нифига не проще орма

- сложным веб-приложениям требуются механизмы уровня контроллера. Я имею ввиду управления сценами, переходами между сценами, маршрутизацию запросов и т. д. Полагаю, что этого в тулкитах под дарт тоже нет пока. А это значит, что те же мобильные веб-приложения отдыхают в стороне.

Не, на самом деле, я уверен, что все это с течением времени появится: то, что ява-скрипт гуано мамонта - верный залог этого. Но это случится явно не сегодня, тут много времени и усилий нужно.

Ответить | Правка | Наверх | Cообщить модератору

108. "Google выпустил язык программирования Dart 1.0, созданный дл..."  +/
Сообщение от анонимус (??), 15-Ноя-13, 14:26 
>- сложным веб-приложениям требуются механизмы уровня контроллера. Я имею ввиду управления сценами, переходами между сценами, маршрутизацию запросов и т. д. Полагаю, что этого в тулкитах под дарт тоже нет пока. А это значит, что те же мобильные веб-приложения отдыхают в стороне.

man Rikulo

Ответить | Правка | Наверх | Cообщить модератору

138. "Google выпустил язык программирования Dart 1.0, созданный дл..."  +/
Сообщение от Crazy Alex (ok), 15-Ноя-13, 22:18 
Думаю, что всё будет проще. Не будет ни маршрутизации, ни чего-то подобного. Будет XML или JSON, описывающий построеие интерфейса, и отрисовка всего и вся на канвасе так, как делается на десктопе или на андроиде. Благо, в отличие от веба, всё это сто лет как отработано и может быть портировано со вполне разумными усилиями.

С подгрузкой всё решается ещё проще - если у тебя два десятка стандартных контролов, лежащих в CDN гугла - не имеет значения, как они велики и не затормозит ли при первой подгрузке - потому что потом они будут лежать в кэше вообще всегда.

Ну а картинки предварительно подтянуть, если они в XML отмечены - явно не проблема.

Ответить | Правка | К родителю #106 | Наверх | Cообщить модератору

156. "Google выпустил язык программирования Dart 1.0, созданный дл..."  +/
Сообщение от jOKer (ok), 16-Ноя-13, 10:37 
>не имеет значения, как они велики и не затормозит ли при первой подгрузке

На самом деле еще как имеет!

Потому что окончание этой подгрузки - есть событие. А если у тебя в на уровне тулкита нет механизмов обеспечивающих отработку (например по колбэку) этого события, то вероятность попытки инициализации кода которого _еще нет_ приближается к 100%. На практике, это значения null там, где должны быть объекты.

Вот пример реализации такого механизма на дожо:

    <script type="text/javascript">
        require([
            "dojo/parser",
            "xxxx/myApp/myApp",
            "dojo/domReady!"
        ],
            function(parser, app){
                parser.parse().then(function(instance){
                    new app.init();
                });
            });
    </script>

Если бы дожо не поддерживал асинхронную загрузку (в том числе и через CDN) модулей через механизм require, то инициализация приложения не прокатила бы вообще - поскольку не было бы гарантий, что вызов   new app.init() будет произведен после загрузки модуля "xxxx/myApp/myApp", а не до того или во время того.

Да, безусловно можно обойтись без модулей вообще, или вызывать чем-то-там-свое-на-коленке-писанное... Но зачем бы мне была нужна такая радость, а? Тут вот я совершенно точно знаю, что _сперва_ будет подгрузка, а _потом_ будет инициализация. Это мне обеспечивает тулкит. А в дартавских тулкитах есть ли что наподобие этого? Вопрос интересный. Но скорее всего - нет, ведь им без году неделя жизни.

Ответить | Правка | Наверх | Cообщить модератору

157. "Google выпустил язык программирования Dart 1.0, созданный дл..."  +1 +/
Сообщение от mf (ok), 16-Ноя-13, 12:52 
require можно было и по короче продемонстрировать. А вот проблему подняли годную. Онолитеги радуются появлению в яваскрипт всякого бреда, на подобие классов, свойств. В то время как действительно важные проблемы, описанные и частично решенные у Фланагена так и остаются за бортом.
Ответить | Правка | Наверх | Cообщить модератору

162. "Google выпустил язык программирования Dart 1.0, созданный дл..."  –1 +/
Сообщение от Crazy Alex (ok), 16-Ноя-13, 19:54 
Какой DOM? Оно надо - бороться с несовместимостями? Тупо страница, состоящая из нескольких <script> и одного <canvas>. Ну плюс декор какой-то, не относящийся к работе приложения.

Дальше прилетает с CDN (а точнее - давно прилетел и лежит в  кэше) ком из дарт-скриптов мегабайта на три или на десять, который и рисует на этом канвасе контролы и обеспечивает их гарантированно одинаковую работу где угодно. Ресурсы приложения подтянуть и понять, когда загрузка заврешилась - как-то никто аяксовые события не отменял.

Вот это и будет в конце концов. Потому что нефиг городить сложное, если можно обойтись грубой силой.

Ответить | Правка | К родителю #156 | Наверх | Cообщить модератору

166. "Google выпустил язык программирования Dart 1.0, созданный дл..."  –1 +/
Сообщение от mf (ok), 16-Ноя-13, 22:24 
Это Вы ActiveX(Java applet, Flash, SilverLight) описали?
require решает проблему разрешения ссылок при организации деления на модули при их динамической (и асинхронной) загрузке. Из кеша файлы загружаются так же непоследовательно как и по http.
В общем что-то не ту проблему Вы увидели и решили.
Ответить | Правка | Наверх | Cообщить модератору

168. "Google выпустил язык программирования Dart 1.0, созданный дл..."  –1 +/
Сообщение от Crazy Alex (ok), 17-Ноя-13, 01:08 
Из кэша можно подождать пока загрузится вообще всё - через require, или ещё что-то  - в любом случае там на 20 строк JS дел, если дерево зависимостей не обрабатывать, а при определенной организации модулей (и если не париться задержками на загрузку из сети) его обрабатывать не надо. Но можно и красиво сделать, всё равно там код несложный, особенно если не пытаться всё решать на стороне клиента, а генерировать спсок загружаемых модулей на серверной стороне. В общем, мелочи всё это, решаемые на уровне приложения совершенно тривиальным образом и в куче вариантов.

А основные проблемы сейчас - невменяемый DOM и боксовая модель, которые для приложений в принципе малопригодны, и несомвместимость браузеров, которая при нынешней модели развития будет всегда. Первое даёт высокую связность, второе - гору костылей. Логичный вариант ухода - именно на саомстоятельную отрисовку. Вопрос ровно в том, чтобы эта отрисовка достаточно эффективно работала. Тогда можно закостылить только малую часть браузера, а layout-движок использовать тот, который для формочек предназначен, а не для простынь-документов неизвестной структуры.

Ответить | Правка | Наверх | Cообщить модератору

173. "Google выпустил язык программирования Dart 1.0, созданный дл..."  +/
Сообщение от mf (ok), 17-Ноя-13, 01:29 
Вы не имеете опыта программирования на javascript
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру