Pull to refresh

Comments 26

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

Вообще вы сделали очень классно. Прям «дзен»-программирование во всех смыслах :)
Спасибо за добрые слова добрый человек! Не очень понял сути пожелания? Git репозиторий на sourceforge чем не устроил? Есть клон на github и думаю может и на google.code сделать, раз уж Линус так настаивает что distributed это наше всё.
Существует node-webkit (о котором я упоминал 1, 2, 3, 4 раза на Хабрахабре) — проект объединения Node и WebKit (точнее, не просто WebKit, а Chromium — и в дальнейшем, вероятно, Blink) для создания GUI-приложений методами веборазработки (код на JavaScript с употреблением API от Node.js, интерфейс на HTML и CSS) под операционные системы Windows, Mac OS X и Linux.

Ознакомьтеся. Там гораздо меньше всякого яоя.
Webkit не совместим с iOS устройствами. Webkit не дает возможность писать нативные UI приложения.
Верно?
Да, к сожалению, не существует версии node-webkit для iOS (а также и для Android, и для мобильных Windows).

Что же касается нативности, то она у него не хуже, чем у YaUI.

Чтобы запустить YaUI-программу в Windows, надо указать её первым параметром yaui.exe: «yaui.exe race.yaui».

Чтобы запустить приложение под node-webkit в Windows, достаточно указать папку приложения первым параметром nw.exe: «nw foldername». Но также можно, следуя инструкции, упаковать эту папку (в ZIP) и дописать её в хвост файла nw.exe — тогда достаточно будет открыть сам файл, чтобы оно запустилося. (И в Linux, и в Mac OS X примерно то же самое.)
Видимо у нас разные понимания «нативности». Для меня это близость к системному (нативному) API, и никак не механизм запуска.
Тоже улыбнуло понимание нативности. Eсли не указывать первого параметра, по умолчанию будет запущен файл main.js.
Yaui — открытая маленькая библиотека, и никто не мешает перекомпилить тестовое приложение и наделить его любыми свойствами, иконками, инсталерами. Кстати на Windows перекомпилировать проще всего «cl.exe yaui.cpp libwinimage.cpp -I cpp -I v8/include»

Хм, а зачем кросс-платформенному приложению близость к системным API? Мне всегда казалось, может быть наивно, что ему, как раз наоборот, наиболее полезен некоторый уровень абстракции, «равноудалённый» ото всех тех нижележащих системных API, один из которых он употребляет в зависимости от системы.

Вон наверху среди основных принципов YaUI первым указан вот какой: «иметь как можно меньше нативного кода». Это хороший, это правильный принцип.
Вы видимо хорошо знаете разработку приложений для браузеров, и вам кажется что отказ от любимого браузера совершенно ненужный шаг. Как же жить без CSS и div? Есть же canvas и прочая. Что же вы задумали отступники? Сбежать из хрома?
Я вам вот что скажу: лучше бы вы подумали о уникальной ситуации, что проект запущеный российским разработчиком и обращенный в первую очередь к таким-же российским разработчикам, может открыть невиданые перспективы. И вам самому было бы интереснее вдохновлять российский опенсорс, который надо признать — неприметен, а не пинать его.
Из моего опыта, javascript не достаточно удачный язык для больших проектов.
UFO just landed and posted this here
Опыт основан на проекте, который я делал два года и который включал серверное исполнение JavaScript + интерфейс в Хроме, интенсивно использующий JS (закладки, плавающие окна, undo и пр.) На клиенте использовался только jQuery. На сервере собирался движок V8 для и серверные скрипты работали на JavaScript.

Работа с JavaScript мне напомнила старую шутку про «если опель поставить в тихом лесу, то можно услышать как он гниет». С JavaScript эту шутку можно сформулировать как «если отвернуться на минутку от куска JavaScript-кода, то можно услышать как он устаревает».

Т.е. основную проблему JS сформулировал бы так: «никогда нет уверенности, что этот кусок кода работает оптимальным образом». Поскольку JS слишком гибок, он позволяет делать одно и то же разными путями и нет понимания — какой путь лучше. В других языках не так. Там более-менее ясна логика работы и ясно, где может быть узкое место. В JS понять это трудно. Некоторые места приходится переписывать по 10 раз и все равно непонятно — достигнут ли приемлимый уровень быстродействия.

Оптимизированный код на JS сложен для понимания программистом. Его трудно читать, много неявного происходит.

Еще никакой встроенной поддержки для разделения логики нету. Ни модулей, ничего. JavaScript настолько легко перемешивается в кучу, что просто диву даешься.

Да это все, вообщем, давно уже было сказано. Что вас удивило в моем замечании-то? Не зря же «улучшителей» JS больше, чем китайцев в Китае… :)
Нашел такой вариант SpiderMonkey под iOS (возможно будет полезно):
github.com/gameclosure/spidermonkey-ios как и основной проект, который к слову имеет базовые UI примитивы — github.com/gameclosure/devkit (gameclosure.com)

Так же возможно следовало сразу интегрироваться с проектами вроде github.com/3dseals/Ejecta-X (http://impactjs.com/ejecta) — для удобной работы с графикой в HTML5 стиле
Я уже запутался в этих репозиториях spidermonkey, скорее всего и этого я пробовал скомпилировать, но точно не помню, придётся дать ему шанс) Если сработает, останетесь в моём сердце надолго.
Простите за занудство, но большинство JavaScript-программистов привыкли к camelCase-именованию. Цепочки — несомненно плюс, но методы стоит переименовать, пока проект молодой.
Ну да, нос явно морщится читая ваще сообщение, но видимо так и надо сделать, всё переименовать на такойМанер, (хотя бы внешнее API). Мне, кстати, это Яп говорил.
А ещё, за такой код:
with(c.race) {

канделябром бьют.

Используйте strict mode или как минимум, избегайте «злых» мест как with.
Действительно, пока еще кода немного, переименовать стоит. Яп вам не зря говорил.
Спасибо что просмотрели код моей скромной персоны кстати. Не по буддийски ввязываться в битву на канделябрах. Ножом нельзя размахивать, это не значит что им нельзя вообще пользоваться.
Просто блоки с with() {} дорогие в плане производительности, так что если вам она хоть немножко важна — а я так понял, что — да, тогда нужно от «with» отказываться. Благо его заменить довольно просто. А так, скажу вам — занимаетесь хорошим делом — удачи!
Неудобно кстати отвечаете, не на сам комментарий, а на главный пост. А вообще with это deprecated, оно не рекомендуется, как и другие вещи «заблокированные» в strict mode. Просто совет к тому, что, возможно, в следующих версия JS и вовсе не будет поддержки этого оператора.
Спасибо Будде, и тем кто писал-переводил-публиковал, сегодня на хабре опубликован манифест разработчиков минималистов:

habrahabr.ru/post/176813/

Ведь это именно те самые принципы которые использованы в yaui.
А можно как-то протянуть компонент кэнваса или хотя бы реализовать доступ к видеопамять через ArrayBuffer? Это сразу откроет перспективы для геймдева. Лично баксов сто задоначу при таком векторе развития (если есть куда донатить).
Судя по вашему вопросу, мы мыслим в одном направлении) Хотя сейчас мне лично не до геймдева, надеюсь на помощь. Сейчас пока сделал Pixmap для всех трех платформ. v8 позволяет напрямую мапить участки памяти к массивам JavaScript, собственно это и есть ArrayBuffer / ByteArray. С мозиллой труднее, никак не скомпилирую свежую spidermonkey под ios, а маппинг там только с 1.8.5. Но pixmap это UIImageView/BitBlt — это не низкоуровневый доступ к графической системе.
Выше один хороший человек предлагал кооперироваться с проектом gameclosure. Который вроде именно это и стремится сделать (геймдев, канвас на javascript crossplatform native). Я им пока не написал. Ибо понимаю что моих скромных ресурсов не хватит на адекватный merge или fork.
Спасибо за предложеные 100 баксов. Думаю может поискать кого то на freelancer.com под ваши спонсорские)
BitBlt в принципе уже неплохо. Тут хрен знает где золотая середина — прямая манипуляция с пикселями всё таки медленновата на жс и жрёт ресурсы. Скорее всего достаточно возможности fill\stroke ломаной линии, определённой массивом точек, или только филл полигона и умение рисовать линию, остальное можно сделать в общей библиотеке на js с использованием этого набора. Погляжу на код вечером.
Да мы с вами шпрехаем на одном лэнгвиче! Для геймдева насколько я могу представить, наиболее насущная тема — манипуляции с блоками, то есть копирование прямоугольников с возможностью зума и поворота. С полной поддержкой альфа канала. И с возможностью держать эти «спрайты» где то в системном загашнике. Хорошо бы текст ещё на пикс-мап системным вызовом выводить.
Sign up to leave a comment.

Articles