Флудилка ушибленных яваскриптом

Всё, что не касается темы рогаликов
Аватара пользователя
Максим Кич
Администратор
Сообщения: 1559
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Флудилка ушибленных яваскриптом

Сообщение Максим Кич » 02 апр 2016, 19:30

Наткнулся на просторах этих ваших гитхабов на занятное: движок для roguelike на javascript.

В комплект входит несколько генераторов, несколько библиотек для FOV, поиск пути по Дейкстре и А* и ещё некоторое количество всяких приятностей.
Dump the screen? [y/n]

Аватара пользователя
Cfyz
Сообщения: 759
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: rot.js

Сообщение Cfyz » 03 апр 2016, 00:42

На местной wiki даже есть неоконченный перевод туториала, использующего rot.js (а вот страницы про библиотеку увы нет).
Cfyz теперь - наглая морда.

Аватара пользователя
kipar
Сообщения: 2076
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: rot.js

Сообщение kipar » 04 апр 2016, 06:39

Пользуйтесь поиском :lol:
http://rlgclub.ru/forum/viewtopic.php?f=7&t=1003

Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 06 апр 2016, 13:50

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

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1559
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 06 апр 2016, 14:01

Anfeir писал(а):Чистый жаваскрипт - один из худших языков в природе. Впрочем, нормальные либы типа jQuery уже можно пользовать, они прикрывают многие дыры.
Чистый яваскрипт на сегодняшний день умеет делать с DOM-деревом почти всё, что умеет jQuery. Node.js вообще использует ECMAScript 6 — с кучей всего, включая классы. Хотя ничего хорошего про классы в JS я сказать не могу. Жду, когда добавят поддержку Proxy (что-то типа magic-функций в PHP/Lua) — жизнь местами станет более интересной.

В любом случае, лично мне Lua как скриптовый язык кажется куда более продуманным.
Dump the screen? [y/n]

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 06 апр 2016, 14:08

Охохо, для меня лично это вообще больной вопрос. После питонификации сознания писать на js очень, очень больно. Ограниченно спасает фреймворк - тот же ember очень так неплохо позволяет пилить довольно сложные сайты без влипания в лапшекод (в который неизбежно превращаются сайты на том же jq, если ты не разраб 100-го левела), но даже так контактирования с хреново спроектированным языком не избежать. Кофискрипт не панацея, он тоже не очень - отчасти, как раз потому, что пытается быть похожим на js.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1559
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 06 апр 2016, 14:32

Феникc писал(а):Охохо, для меня лично это вообще больной вопрос. После питонификации сознания писать на js очень, очень больно. Ограниченно спасает фреймворк - тот же ember очень так неплохо позволяет пилить довольно сложные сайты без влипания в лапшекод (в который неизбежно превращаются сайты на том же jq, если ты не разраб 100-го левела), но даже так контактирования с хреново спроектированным языком не избежать. Кофискрипт не панацея, он тоже не очень - отчасти, как раз потому, что пытается быть похожим на js.
jq — это, строго говоря, не средство для разработки сайтов. Это просто вспомогательная библиотека для работы с DOM-деревом. Точно так же как lodash/underscore призваны разруливать типовые операции над массивами/объектами, а async (для любителей промисов — всякие богомерзкие q) — для развёртки асинхронного кода. Хотя опять же в ES6 напихали всяких елдов, но я с ними пока мало общался.

«Тяжёлые» фреймворки, типа ember, angular иже с ними — это уже более-менее основной инструмент, но, откровенно говоря, в последнее время они меня раздражают все. Хочется иметь простой angostic инструмент, к которому тот же бутстрап не надо прикручивать ржавой проволокой и third-party-магией, которая ломается через релиз.

Серверный JS — чуть-чуть другая история, потому что там много своих вкусностей и не надо ломать голову над кросс-браузерной совместимостью.

Кофескрипт (как и его злобный братец TypeScript) — это языки которые пытаются сделать из JS, что-то чем он не является, в итоге выкидывая то, что JS делает хорошо, чтобы добавить синтаксического сахара и сымитировать то, что JS делает плохо.
Dump the screen? [y/n]

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 06 апр 2016, 15:03

Максим Кич писал(а):jq — это, строго говоря, не средство для разработки сайтов. Это просто вспомогательная библиотека для работы с DOM-деревом. Точно так же как lodash/underscore призваны разруливать типовые операции над массивами/объектами, а async (для любителей промисов — всякие богомерзкие q) — для развёртки асинхронного кода. Хотя опять же в ES6 напихали всяких елдов, но я с ними пока мало общался.
Да. Проблема в том, что некоторые jq в таком качестве всё же используют... И я врагу бы не пожелал потом всю это лапшу поддерживать и допиливать #-o
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 09 апр 2016, 08:35

Современные плюшки в javascript - это, бесспорно, плюс. Ну а node.js - всё же вещь сомнительная: во-первых, тем, что таки придётся писать на жаваскрипте .) а во-вторых, насколько я слышал, уровень корявости существующих библиотек превышает разумные пределы.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1559
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 09 апр 2016, 19:08

Anfeir писал(а):Ну а node.js - всё же вещь сомнительная: во-первых, тем, что таки придётся писать на жаваскрипте .) а во-вторых, насколько я слышал, уровень корявости существующих библиотек превышает разумные пределы.
С node.js надо иметь в виду, что он сделан под конкретные задачи и на оперативном просторе он реально рулит. И надо понимать, когда нужен node, а когда проще взять какой-нибудь yii2 и не выламывать себе руки. Или надо выломать руки по полной и взять какого-нибудь энтерпрайзного монстра — потому что люди тридцать лет наворачивали систему вот для этого класса задач и там человекочасы давно за миллион перевалили. В общем,

Основные библиотеки, типа express.js или того же lodash — в node.js достаточно вменяемые. Биндинги под основные СУБД и всякие хипстерские монги — в наличии . Биндинги под основные пакеты типа gm, или там phantom — есть и работают. Если не тянуть зависимости без разбора — можно вполне нормально работать.

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

Прикидываю, не попробовать ли на node.js рогалик сделать онлайновый.
Dump the screen? [y/n]

Аватара пользователя
Anfeir
Сообщения: 651
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: rot.js

Сообщение Anfeir » 10 апр 2016, 10:15

Максим Кич писал(а):
Anfeir писал(а):Или надо выломать руки по полной и взять какого-нибудь энтерпрайзного монстра — потому что люди тридцать лет наворачивали систему вот для этого класса задач и там человекочасы давно за миллион перевалили.
Да уж... правда, чем длинней история и чем больше индусов вовлечено в разработку, тем сильнее эти миллионы человекочасов имеют результатом окаменелое говно мамонтов... типа оракла, дб2, вебсферы, (с чем сейчас приходится на работе иметь дело).

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1559
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 10 апр 2016, 21:03

Anfeir писал(а):
Максим Кич писал(а):
Anfeir писал(а):Или надо выломать руки по полной и взять какого-нибудь энтерпрайзного монстра — потому что люди тридцать лет наворачивали систему вот для этого класса задач и там человекочасы давно за миллион перевалили.
Да уж... правда, чем длинней история и чем больше индусов вовлечено в разработку, тем сильнее эти миллионы человекочасов имеют результатом окаменелое говно мамонтов... типа оракла, дб2, вебсферы, (с чем сейчас приходится на работе иметь дело).
Юмор ситуации в том, что окаменелое говно мамонтов всё равно оказывается более стабильным, совместимым и лучше задокументированным, чем очередная хипстерская безделушка, которую хайпят на всех конференциях в этом году, и которая уж точно убьёт технологию умирающую дольше, чем оные хипстеры живут на белом свете (а заодно прикончит самую хайповую технологию прошлого сезона).

Вот, боль моей души: «тяжёлые» клиенты (которые angular, backbone иже с ними). Ну и хит от корпорации убившей UX — React. Хайп вокруг убившего всех и вся реакта — это отдельная песня о том, что лучший комбайн — это кабина малолитражки. И 100500 способов, как прикрутить к этой кабине подходящую ходовую часть и мотовило. Справедливости ради надо сказать, что «типа-энтерпрайзный» Ext.js не слаще. В мире браузерного js реально нет подходящей давно умершей технологии (ну разве что многократно перезахороненный jQuery, но его одного мало).
Dump the screen? [y/n]

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 10 апр 2016, 21:34

А в чём проблема тяжелых клиентов, кроме того что они, собственно, немного тяжёлые? Вес-то у них приемлим обычно, а вот отзывчивость на всём, что чуть постарше многократно упоминаемого здесь говна мамонта - куда лучше.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1559
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: rot.js

Сообщение Максим Кич » 11 апр 2016, 09:46

Феникc писал(а):А в чём проблема тяжелых клиентов, кроме того что они, собственно, немного тяжёлые? Вес-то у них приемлим обычно, а вот отзывчивость на всём, что чуть постарше многократно упоминаемого здесь говна мамонта - куда лучше.
Ну, во-первых тяжёлые клиенты сами по себе никакой отзывчивости не реализуют. Во-вторых, как ни парадоксально, они мешают её реализовать. Ну, точнее не сами клиенты, а фреймворки под них. Потому что все они любят вступать в близость с DOM-деревом и не любят, когда то же самое пытается сделать, скажем, bootstrap. Поэтому есть обёртки и форки бутстрапа под каждый тяжёлый фреймворк, но сюрприз-сюрприз — вот этот конкретный плагин, который сэкономит нам кучу времени, с нашей обёрткой почти наверняка будет несовместим.

То есть, в принципе, я прекрасно понимаю почему это так. Что сделать реактивного агностика практически нереально. И я понимаю, что, во многом, идеология тяжёлого клиента ещё не до конца сложилась. Но когда задачу надо решать здесь и сейчас — от этого как-то не легче.
Dump the screen? [y/n]

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: rot.js

Сообщение Феникc » 11 апр 2016, 11:35

Ящитаю что просто вся идеология web-разработки ещё до конца не сложилась. И, кстати, я более чем уверен что проблема тут как минимум наполовину в самом js, который как язык - плох. Взять тот же ember - там ведь половина базовых вещей реализуется с нуля. Или, например, незабвенный left-pad, в ситуации вокруг которого все почему-то хейтят npm, а надо - js, в котором даже такая базовая функциональность требует костылей -_- Не знаю как можно делать что-нибудь более-менее сложное на языке, не дающем никаких гарантий, где практически все вещи, являющиеся обыденностью в любом современном высокоуровневом языке надо реализовывать самому или же брать с npm. То есть, конечно, знаю - плакать и кушать кактус, мы ж, разрабы, сильные и умные, справимся и с таким - но лично я этим заниматься не желаю.

Но, вообще говоря, сейчас схема [бэкенд с api + web-клиент (с опциональным серверным пререндерингом) + мобильные клиенты + стэндэлон клиент + тонны ботов] потихоньку становится стандартом де-факто. В её рамках тяжёлые клиенты дико расцветут - потому что мощности современных компутеров и оптимизации браузеров уже позволяют перекладывать всю логику визуализации на пользователя. И потому что хочется непрерывности, когда страница рисуется сразу после клика на ссылку, и плевать что ради этого "сразу" оперативка забита префетченными неиспользуемыми данными - для чего она мне ещё нужна-то?
Так что светлое будущее веба лежит на стороне клиента. После внедрения wasm, портирования на него хотя бы того же питона и написания под него нормального клиентского фреймворка (вангую что скрестят django и ember) я с облегчением вздохну и, возможно, даже стану натуральным full-stack'ом, тогда как сейчас фронтэнд я терпеть ненавижу, хоть делать его и приходится.
Думаю, это всё будет реализовано уже году к двадцатому и примерно тогда же "старые" фреймворки - та же джанга, рор и всякие пхп-базед - сильно потеснятся, потому что они даже уже сейчас морально устаревают, превращаясь в красивый адаптер бд-апи, следящий за пермишнами, исключительно к которому их роль вскоре и сведётся. Ну а вся логика визуализации, повторюсь, окончательно ляжет на тяжёлые клиенты, которые к тому моменту от детских болезней, на которые Максим жалуется, по большей части уже избавятся.
Что там дальше будет? Чёрт его знает. Думаю, браузеры научатся рендерить странички в отдельные окна ОСи (хотя они и так это уже умеют, те же хром-аппы) и все стэндэлон приложения потихоньку переберутся полностью в html+css, а браузер глубоко интегрируется с кишками системы (как chromeos, ага-ага) и как отдельное окошко вовсе исчезнет. Что смешно, пишу я это сообщение из Vivaldi (chromium-based браузер для любителей старой оперы), чей интерфейс полностью реализован именно на web-технологиях, хехе. Его можно даже его же встроенным отладчиком его прямо в режиме онлайн исследовать и менять.

Уфф, чего-то растёкся я мысию по древу - очень уж накипело. Пожалуй, тему надо переименовать в "Javascript" и унести в "За жизнь", тем более что по rot.js темка-то уже есть :)
Всё вышесказанное - ИМХО, если не указано обратное.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей