Pull to refresh

Comments 30

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

И «buy Sciter license and source code access» — вот это отталкивает.
И почему отталкивает? Ведь можно пользоваться бесплатно, если нужны сорцы и поддержка – плати. Помоему все честно.
Если так, то нормально. Только там нигде не написано, что можно использовать бесплатно.
Поправлю, спасибо.

На пока:
You may utilize Sciter Engine Software Product free of charge in any manner you see fit to build commercial or non-commercial applications and components.
«Не мешало бы ссылку на домашнюю страницу в статье».
Хмм… точно помню писал ссылки. ок, еще раз тогда:

Sciter home. Там же и англоязычный форум.
Русскоязычный форум живет на RSDN. За что хлопцам оттуда большое человеческое спасибо.

Ну и Sciter2 SDK.
Или я плохо читал, или оно не кроссплатформенно?
На сайте написано, что только для Windows, Windows CE, Windows Mobile.
У меня т.н. customer driven разработка. Т.е. заказчики оплачивают. Пока никто не просил под другие платформы. Правда круг моих заказчиков несколько специфический: собственно все главные антивирусы (кроме KAV) и игровые фирмы.

Кому нужен движок для специфической платформы — свистите, сделаем.
Sciter 3: Windows (XP и выше), Mac OS X (10.7 и выше), Linux (GTK 3 и выше)
UFO just landed and posted this here
Отладчиком HTML/JS пользоваться пробовали? Или alert-ами отлаживали? :-)
Впрочем, согласен, что использование HTML/JS для десктопного приложения должно быть оправдано какими то особыми целями. Иначе это странно. Как правило это возможность использовать часть функционала в мобильной или чисто Веб-версии приложения. И вот тут смысл в Sciter как то пропадает, потому что скриптовый язык не совместим с JS.
Ну тут смотря что, кто и как пишет.

Скажем вот люди пишут систему для прикроватных мониторов в больнице. Для них загружаемый и легко конфигурируемый UI — самое оно.

Или когда весь UI собирается из фрагментов писанных скажем в Норвегии, Индии и Японии, стиль разрабатывают в штатах, а потом на это дело садятся переводчики-локализаторы из Ирландии, то тут уж поневоле задумешься про то как это все делать малой кровью.

И про desktop приложения…
Если скажем пишешь что-то типа опросника для больницы или «морду лица» какой АСУ ТП то весь UI это набор правил типа «клик-здесь-там-раскрыть-по-дороге-подгузить-инфу-с-сервера». Собственно благородным програмированием такой UI automation назвать сложно.

$(button#show-details).onClick = function() {
    $(div.slave-panel).state.expanded = true;
    function dataReceived(data) {
        this.value = data;
    }
    $(form#more-details).request("http://....",  dataReceived);
}


и вообще, JS/jQuery как язык для UI automation это way to go. Можно и на C++ писать UI automation конечно но не сильно комфортно в определенных облястях.

Так JQuery в этом tscript живет или нет?
В чистом виде — нет, не портировал. Потребности не было.
JQuery селекторы имплементрованы нативно. А опять же за нативным методом Element.request() весь AJAX/JSON.

$( selector ) — возвращает первый элемент из документа удовлетвояющий селектору.
elem.$( selector ) — то же только из под-дерева elem.
$$( selector ) возвращает массив элементов удовлетвояющих селектору. Что-то сделать для всех таких элементов:
for( var elem in $$(ul#list > li) )
   elem.state.visited = true;

Как бы даже и по-гуманнее будет, нет?

Ничем не лучше:
$('ul#list > li').each(function(i,e){ 
   e.state.visited = true;
});

Смысл делать похожее API, а не совместимое? Это только путает.
Заметь, в моем варианте нет вызова функции котороя есть в принципе дорогое удовольствие да и syntax noise наличествует. А так если есть желание то можно и так написать:

$$(ul#list > li).each(function(i,e){ 
   e.state.visited = true;
});

Но надо метод function Array.each(callback) {...} изобразить сначала.

Но как бы повторять jQuery задачи у меня не стояло изначально. Порт jQuery core в принципе пишется тривиально если есть такое желание. Моя нативная имплементация, кстати, наверное больше ближе к prototype.js чем к jQuery.
UFO just landed and posted this here
Лучше/хуже вопрос относительный и зело субъективный.

Из объективных фактов:

1. Про размер уже сказали выше.
2. Desktop приложения используют другую security model чем browsers для которых safe browsing это главное. Соответсвенно ограничения в их движках. В качестве примера: в <richtext> редакторе (встроенный WYSIWYG HTML редактор) можно вставить картинку из clipboard. В том же webkit такой операции нет как класса.
3. sciter2 использует GPU для рисования, webkit рисует «руками».
4. webkit по рукам и ногам связан стандартами. Я же могу делать то что реально нужно в настоящий момент. В качестве примера фича по имени , print и print-preview в теле документа: image

Пользуемся Вашей предыдущей разработкой htmlayout, которая очень глючная и со множеством косяков. Надеюсь, этот продукт лучше.
Ну не без проблем конечно. Про глючная не слышал особо.
Вот например Avast! использует HTMLayout. Вполне так все работает у них. Наверное готовить HTMLayout умеют ;-)
Про чем оно лучше чем Qt, MFC и т.д.

Вот конкретный вопрос был про то как сделать <input type="hex-number"> — элемент ввода шестнадцатеричных чисел с кнопками "+" и "-".

В sciter/htmlayout такое делается как тривиальная сборка такого input из трех стандартных lego блоков (DOM элементов): с behavior:edit плюс две кноки . Вот решение полностью.

В Qt например это можно рещить написанием класса отнаследованным от QAbstractSpinBox со всеми вытекающими.
Проблема в том что еще нужно знать что есть такой вот QAbstractSpinBox, исследовать что он может и т.д.
В Sciter, т.е. HTML/CSS/script задача разбивается на две независимые группы: нарисовать стили, создать DOM струкуру из универсальных кубиков и связать события/состояния между ними.

Sciter3 работает на Windows (XP и выше), Mac OS X и Linux (GTK 3 и выше)
В свете всё большего использования ES6 табличка сравнения terrainformatica.com/sciter/js-dart-tis.htm видимо потеряла свою актуальность. Вы не планируете перенос плюшек ES6 в свой скрипт или переход на ES6 полностью?
Перенос плюшек планирую. Не всё, но вот скажем destructuring assignment:

const jsonDate = "2015-01-01";
var [year, month, day] = jsonDate.scanf("%d-%d-%d");


сделаю ибо полезно. Как дополнение к существующему multi-return и multi-assignment:

var x = 10, y = 20;
(x,y) = (y,x); // swap values

Sign up to leave a comment.

Articles