GooRoo
+2

На самом деле я просто хотел убедиться, что семантика Qt/QML в вашем PureQML сохранена. Но потом увидел вот это:


// ...
setPos(long, lat): {
    // ...
}
// ...

Для Qt/QML это в принципе невалидная запись, что меня и заинтересовало.


На мой взгляд разница между одной записью и другой всё же есть. Если я правильно понял, то для вас эти две записи эквивалентны:


function foo() { }

и


foo: { }

С одной стороны вторая запись слишком похожа на binding какого-то выражения к свойству foo. Окей, допустим, вы не стали делать различия между свойствами и методами (мемберы и есть мемберы, почему бы и нет). Но в Qt/QML есть другая штука. Вот эти две записи с его точки зрения эквивалентны:


propName: jsExpression

и


propName: { return jsExpression; }

Таким образом, если мы хотим забиндить ("забайндить" не звучит, так что буду называть это забиндить) на свойство не результат выполнения блока кода, а сам этот блок кода, то в Qt/QML мы пишем как-то так:


property var foo
// ...
foo: function() {
    // ...
}

или даже


foo: {
    return function() { /* ... */ };
}

В общем, немного сложно понять, что происходит.


С другой стороны вы, возможно, не стали делать различия между методами и обработчиками сигналов. Окей, тоже почему бы и нет. Фактически, единственное, что их у вас отличает, это наличие префикса on. На мой взгляд, это различие недостаточно явное. Например, предположим, у нас есть компонент Foo, описанный в Foo.qml следующим образом:


Item {
    foo: { 
        console.log("inner"); 
    }
}

Потом мы его используем как-то так:


Item {
    Foo {
        id: _foo

        foo: {  // переопределение метода, объявленного внутри
             console.log("outer");
        }
    }

    onSomeEvent: {
        _foo.foo() // выводит только "outer"
    }
}

В случае же с сигналами всё работает немного иначе. Допустим, Bar выглядит так:


Item {
    signal bar()
    onBar: { 
        console.log("inner"); 
    }
}

Потом мы его используем как-то так:


Item {
    Bar {
        id: _bar

        onBar: {  // пишем свой обработчик сигнала
             console.log("outer");
        }
    }

    onSomeEvent: {
        _bar.bar() // выводит сначала "inner", потом "outer"
    }
}

Другими словами, если бы вы позволяли объявить таким же образом метод, начинающийся с on, то была бы вообще полная неразбериха. А так только наполовину, на мой взгляд. Странно всё это :)

GooRoo
0
Ну ок, не заменили, а добавили. Тем не менее синтаксис новый (и на мой взгляд добавляет путаницу), причём на сайте в разделе с различиями с оригинальным QML я этого не нашёл.
GooRoo
0
Я чего-то не знаю про QML или вы заменили QML-ный синтаксис объявления методов на TypeScript-овый?
GooRoo
0
Про симпатичность анимации это шутка, надеюсь.
GooRoo
–2
Слава богу, автор пилит тулзы, а не игру.
Небось для пробной реализации какой-то игровой идеи пришлось бы сначала составлять дополнение к диз.доку, писать спецификацию на фичу по ГОСТам, аппрувить в трёх разных отделах с обходным листом и треугольной печатью из седьмого кабинета и т.д.
Мы бы даже в первую часть ещё не поиграли.
GooRoo
+1
Ну как минимум теперь ясно, что ожидать это не стоит. Спасибо.
GooRoo
+1
Управление с клавиатуры там божественное
GooRoo
+1
Раньше на хабре не было подсветки синтаксиса для кода. Выживали, как могли. Сейчас уже западло менять, учитывая, что ломал не я :)
GooRoo
0
В QML для этого есть специальный модуль: doc.qt.io/qt-5/qtquick-qtquicktest.html

А будете Вы его использовать или нет, это уже дело Ваше.

Кстати, на заметку, QT = QuickTime, Qt = Qt.
GooRoo
+1
QML работает внутри обычного нативного приложения, обрабатывается специальным движком, рендерится через OpenGL, декларативность-реактивность из коробки, скриптовать можно на JS, расширять на С++.
GooRoo
+1
Но мне кажется будущее всё же за github.com/nylas/N1 типа приложениями (технологии Electron, React, Flux). Кросс-платформенное, код на CoffeeScript, покрытие кода тестами.

Зачем, если есть QML?
GooRoo
+1
Винда внезапно умеет делать то же с приложениями, поставленными из стора. Да и данные переносить не нужно — OneDrive из коробки.
GooRoo
+2
удобный файловый менеджер, адекватный шелл

Total Commander, PowerShell + ConEmu
GooRoo
0
Спасибо ) Теперь можно и доиграть в неё.
GooRoo
0
А ачивки уже работают в стиме?
GooRoo
0
Ага, например, Insanely Twisted Shadow Planet одна из таких.
GooRoo
0
Майкрософт давно забила парить свою систему (была Games for Windows Live). Тот же ремастер Fable вышел без подобных штук.
GooRoo
+1
Я б сказал, это нечто посередине.
GooRoo
0
Например, вот store.steampowered.com/app/48240 (Кстати, рейтинги ей слили как раз за эту DRM: там привязка к железу компа, и нельзя поставить игру больше, чем на три разных конфигурации, кажется).
GooRoo
0
GOG начал активно развиваться. Будем ждать, а то в стиме долгое время был застой, а сча вроде снова активизировались.
GooRoo
0
В некоторых играх там сторонние DRM-технологии. Полагаю, и отключить можно при таком раскладе.
GooRoo
+2
Так коллективная работа и в MSO вроде есть теперь, даже на десктопе.
GooRoo
+8
Серверные админы? Ну так и сказали бы сразу, что Вы в казарме живёте ) Или может в пионерлагере вожатый…
Вроде речь шла о десктопах, нет?
GooRoo
+2
Windows 10 — это натуральный шаг назад в плане юзабилити.

Особенно с тач-скрином :(
GooRoo
0
Ну, 90 ГБ инсталлях — это явно болезненная тяга к коллекционированию. У меня тоже такое было.
GooRoo
0
Как буду под виндой, скину Вам скрин.
GooRoo
+2
Посмотрите отчёты компаний, которые делают те же антивирусы. Иногда «станет известно» — это вопрос года, а то и больше.

Я как-то и под виндой на вирусы не жалуюсь. Но есть всякие любители отключить UAC первым делом после установки винды, например.
GooRoo
+16
Метафора про хрущёвку и дом — это лукавство. Если линукс по-вашему — это коттедж, то у него разве что фундамент норм, но стена легко может рухнуть, когда Вы решите забить в неё гвоздь для картины.
GooRoo
0
Ну как минимум нативный офис там есть (не тот, который Metro). А значит возможность есть.
GooRoo
+3
Ну вообще-то да, документы в облаке не подвержены поломкам винчестеров и десктопным вирусам.

Мне как-то Dropbox прислал письмо: извините, мы просрали ваши файлы. Не все, конечно, но увы, мы сделали всё, что могли.

На десктопе несложно перехватывать клавиатуру, на мобильном это почти невозможно.

Да ладно. На андроиде программа (например, какая нибудь очередная клавиатура) просто попросит соответствующее разрешение. Что мешает нажать ОК так же не глядя, как это все делают на десктопах?
GooRoo
+26
Наверное где-то есть специальные подпольные клубы, в которых линуксоиды придумывают лозунги. А может это вообще через слюну передаётся и вызывает деформацию сначала рук, а потом и соответствующих отделов головного мозга.

Стоит кому-то успешно перейти с винды на линукс, как он сразу начинает рассказывать, как он 20 лет страдал без вима и с нормальными дровами на видяху.
GooRoo
+2
Вы бы удивились, узнав, каково на мобильных с этим делом.
GooRoo
–1
MS тогда не стал ничего менять не потому, что пути назад не было, а потому, что они знали, что делают. Тот же риббон наверняка не с потолка взяли, а проводили исследования, и лично мне он сразу понравился больше, но люди в основном ретрограды по сути. И сейчас с аудиторией Microsoft взаимодействует не менее тесно. Я очень жалею, что они сдались под напором негодующих консерваторов и вернули кривой и неудобный «Пуск» в винду.
GooRoo
+3
Что-то я давненько не наблюдаю ничего нового в Inbox.

Если сравнить риббон в офисе и новый кинопоиск, то первым как минимум можно было смело не начинать пользоваться весьма долгое время.
GooRoo
0
Можно смело юзать стим в качестве магазина приложений :)
GooRoo
0
Время попробовать Resharper C++. Он очень ок.
GooRoo
–1
Согласен. Мне вот даже этим инструментом и пользоваться не пришлось, чтобы понять.