LINUX.ORG.RU

Вышел GNU ease.js 0.2.4

 , ,


0

3

ease.js — классический объектно-ориентированый фреймворк для JavaScript, предназначенный для избавления от шаблонного кода и упрощения перевода на JavaScript с других объектно-ориентированных языков.

Это служебный релиз, исправляющий ряд ошибок, большинство из которых появились в версии 0.2.3 и в первую очередь представлены несовместимостью с ECMAScript 3. Пользователи, которым нужна поддержка сред ES3 (в частности, IE≤8), рассматривают версию 0.2.3 как сломанную. Версия 0.2.3 вышла на прошлой неделе 28 июля.

Изменения:

  • [багфикс] ссылки method.super в ease.js и тестовых примерах теперь ES3-совместимы
  • [багфикс] прототип Global, представленный в версии 0.2.3, использовал реализацию, которую не поддерживал IE≤8; теперь используется альтернатива
  • [багфикс] Interface.isInstanceOf теперь отрабатывает корректно, как задокументировано в разделе совместимости руководства
    • Когда передан объект, чей конструктор не является классом ease.js, он теперь откатывается в Interface.isCompatible (как и должно быть)
  • [багфикс] исправлен тест, сломанный Node.js 0.10.27
    • Для подробностей, что же изменилось в Node.js, см. коммит cef45cd0
  • Поддержка trait сейчас в разработке и будет раздокументирована к версии 0.3.0; в настоящее время она включена для ознакомления, функционирует и всесторонне оттестирована, но не завершена.
  • [превью] [багфикс] неаргументные trait'ы теперь применяют для «__mixin» пустой массив вместо «undefined», неподдерживаемого ES3.

>>> Источник

★☆

Проверено: Shaman007 ()
Последнее исправление: CYB3R (всего исправлений: 3)

Ответ на: комментарий от MiniRoboDancer

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

Объём кода, в том числе и "благодаря" ES3.

border-radius
()
Ответ на: комментарий от MiniRoboDancer

есть IE-специфичный инклюд.

Есть, но на общий объем кода это как-то влияет? Например, серверсайдный костыль для принудительной загрузки файлов для недобраузеров, не умеющих в <a download>.

Валяй тогда список нужнятины.

Вебкит, блинк, геко 30+, стандарты.

border-radius
()
Ответ на: комментарий от border-radius

Если что-то в стандарты не входит — оно не нужно? Осёл как платформа в своё время взлетел именно потому, что умел намного больше, чем тогда позволяли стандарты. А многие вещи в них в обозримом будущем не появятся, потому что сфера применения веб-технологий делает в них недопустимыми некоторые возможности, грозящие безопасности сайтов. И вне сайтов оно решается костылями или не решается вообще (кроссдоменные запросы и доступ к ФС, например, мы уже обсуждали). Сейчас ситуацию выруливает нода, но к веб-стандартам она как раз-таки отношения не имеет.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Если что-то в стандарты не входит — оно не нужно?

Если что-то делает юзера зависимым от индусыдлоподелия на проприетарной недооси, оно точно не нужно.

Осёл как платформа в своё время взлетел именно потому, что умел намного больше, чем тогда позволяли стандарты.

Осёл да, простимулировал развитие стандартов, дабы не допустить распространения подобного трояна (и для мозга в том числе) в будущем.

На самом деле мерзософт до сих пор ставит W3C палки в колёса: именно из-за его лобби (а не "принципиальной позиции" некоторых тормозилловцев) вместо шикарнейшего WebSQL в стандарты пропихнули унылейший IndexedDB с "железобетонным аргументом" "недопущения монополии SQLite". Когда IndexedDB всё-таки пропихнули, угадай, на чём его реализацию запилили все, кроме мерзософта? Правильно, на том же SQLite. Но отличную технологию уже закопали под надуманным предлогом. Просто сэмулировать IndexedDB на WebSQL (как и на чистом SQLite) гораздо легче, чем наоборот. А хомячки рады: "так им, поделом гугелю!" Никогда мерзософт ничего хорошего ни в одну IT-сферу не приносил. Никогда. Поэтому всё, что ослабляет его влияние - правильно.

кроссдоменные запросы

Ты всё ещё не прочёл об Access-Control-Allow-Origin, неуч?

border-radius
()
Последнее исправление: border-radius (всего исправлений: 2)
Ответ на: комментарий от border-radius

Если что-то делает юзера зависимым от индусыдлоподелия на проприетарной недооси, оно точно не нужно.

Кто сказал Хромось? И не надо мне заливать тут сейчас, что оно на основе швабодной Хромиумоси. Швабодка с проприетарными зондами хуже чистой проприетарщины.

вместо шикарнейшего WebSQL в стандарты пропихнули унылейший IndexedDB

Когда речь идёт о производительности, NoSQL безоговорочно уделывает SQL-решения. Ты сам-то можешь привести пример, нафиг на клиенте может быть нужен жирноSQL? С другой стороны, хотя бы неймспейсов там действительно не хватает...

Никогда мерзософт ничего хорошего ни в одну IT-сферу не приносил.

А Mono? А TypeScript? И не забывай, что первые веб-приложения появились именно в IE и Windows. Если бы не Active-хрень — неизвестно, покатились бы веб-технологии в ту сторону, в которую они катятся вот уже лет восемь. Поскольку нетшкаф создал JS именно для простеньких свистелок на сайтах. Впрочем, хорошо ли это — весьма спорный вопрос. Ибо веб-технологии стали универсальнейшим кроссплатформенным решением постфактум, когда браузер с поддержкой JS появился в каждой кофеварке. И теперь из этого непроизводительного и нестандартизированного говна всё пытаются сделать конфетку.

Ты всё ещё не прочёл об Access-Control-Allow-Origin, неуч?

Сервер-сайд костыль. В конечном счёте срач закончился на паутиноносках.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Швабодка с проприетарными зондами хуже чистой проприетарщины.

Покажи мне наконец зонды в хромиуме. Хоть один кусок кода, сливающий мою инфу. Или это как суслик? Или кто-то мирдверьмяч?

Когда речь идёт о производительности, NoSQL безоговорочно уделывает SQL-решения.

Ага, именно поэтому IndexedDB сэмулировали на том же скулайте. Самому не смешно?

Ты сам-то можешь привести пример, нафиг на клиенте может быть нужен жирноSQL?

Тот же скулайт нифига не жирный. Решение об отказе от WebSQL - ещё раз, чисто лоббистско-политическое, а не техническое. ИндекседДБ отстаёт лет на 20 по возможностям. Пример - хранение локальных настроек, которые удобно представлять в табличном виде. База загруженных композиций. В localStorage это стопицот сериализаций-десериализаций, в IndexedDB - курсорный адЪ, а в WebSQL всё логично и просто.

А Mono? А TypeScript?

Херь.

И не забывай, что первые веб-приложения появились именно в IE и Windows.

И что из этого вышло - всем видно. Эта херь затормозила веб лет на 10.

Поскольку нетшкаф создал JS именно для простеньких свистелок на сайтах.

Когда нетшкаф создавал JS, железо было слабым.

И теперь из этого непроизводительного и нестандартизированного говна всё пытаются сделать конфетку.

Непроизводительное и нестандартизированное говно - это твой ES3 и сопутствующие недобраузеры.

Сервер-сайд костыль.

Почему костыль, блин? Сервер что, уже не вправе решать, кому раздавать свои ресурсы?

border-radius
()
Ответ на: комментарий от border-radius

в хромиуме

То, что их нет в Хромиуме, вовсе не означает их отсутствие в Хроме. Хотя закладки могут быть вполне незаметными, недавняя история с OpenSSL тому отличный пример. И OpenSSL-то хоть маленький, а Chromium...

именно поэтому IndexedDB сэмулировали на том же скулайте. Самому не смешно?

Сэмулировали, потому что SQLite до этого в браузерах УЖЕ использовался, и пилить/тащить ещё что-нибудь смысла не было. Ботлнеком там и не пахнет. Пока.

Тот же скулайт нифига не жирный

Я не про конкретные СУБД, а про язык запросов. Возможностей у него дохренища, из-за чего парсеры выходят жирными.

Херь.

Обсоснуй. Mono — чуть ли не единственная адекватная замена торможабе. И строгой типизации в JS всерьёз не хватает.

Эта херь затормозила веб лет на 10.

Если бы не осёл, в 2004 году в браузерах уже были бы всякие канвасы и повороты? Не смеши мои тапочки. Тогда и мощные видеокарты-то не были нормой, о каких перделках и жирнобраузерах могла идти речь?

Когда нетшкаф создавал JS, железо было слабым.

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

Непроизводительное и нестандартизированное говно - это твой ES3 и сопутствующие недобраузеры.

Современные веб-технологии эволюционно исходят из старых. В этом их фатальный недостаток. А JS до производительности нормальных языков с сохранением его сути довести просто нереально. Равно как и лабать динамические интерфейсы на потомке языка форматирования текстов. Но свободных замен этому зоопарку костылей нет. Только всякие закрытые решения типа Silverlight и JavaFx. Поэтому кактус по-прежнему с причмокиванием обгладывается со всех сторон, в надежде, что иголки из него когда-нибудь перестанут расти. Но они не перестанут, потому что если перестанут — это уже будет не кактус.

Сервер что, уже не вправе решать, кому раздавать свои ресурсы?

Сервер вправе отдавать их не по HTTP.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от border-radius

Точно сказать невозможно — отправляются какие-то цифры, которые что-то содержать. Но как минимум, ваш уникальный инсталляционный ID (не стираемый как обычная кука) позволяет привязать все ваши перемещения к конкретной сессии. А если вы хоть раз залогинитесь в Google Accounts (на любом сервисе), то связать ваши перемещения с вашей почтой, записями в гугл ридере и т.д.
он не пингует, а отправляет какую-то информацию GET запросом

Позабавил кстати там один ответ на комментарий:

Мол, вот кто доверяет — нате вам хром. Кто нет — нате вам хромиум, только останетесь без автообновлялки и нескольких мелких фич.

В версии для Windows от Google. Версии же для Linux от мейнтеров популярных дистрибутивов ни в чём не уступают функционалу Google Chrome.

Это правда так? Или устаревшая инфа уже?

EvilFox ★★
()
Ответ на: комментарий от MiniRoboDancer

То, что их нет в Хромиуме, вовсе не означает их отсутствие в Хроме.

Напоминаю, у меня Chromium OS стоит девелоперская. Не хромось.

Я не про конкретные СУБД, а про язык запросов. Возможностей у него дохренища, из-за чего парсеры выходят жирными.

А я о том, что конкретно скулайт нежирный, а возможности не помешают.

И строгой типизации в JS всерьёз не хватает.

Для тех случаев, где её всерьёз (а не понтов ради) не хватало, в ES5 запилили Typed Arrays, но ES3-некрофилам не понять.

Если бы не осёл, в 2004 году в браузерах уже были бы всякие канвасы и повороты?

Да. По крайней мере, семантическая разметка, cache manifest и прочие немультимедийные навороты точно были бы.

жирный скриптовый язык

Да что ж у тебя всё жирное-то. Такое ощущение, что это не у меня железо восьмилетней давности, а у тебя. Только у меня JS на этом железе не тормозит, ибо система не нагружена всякой хурмой, как у виндарастов и кедерастов.

Современные веб-технологии эволюционно исходят из старых. В этом их фатальный недостаток.

А когда их наконец-то начинают революционно перепиливать - сразу вылезают те же некрофилы и орут "ААА, что вы делаете, мы тупые и ничего не можем нового освоить, верните нам нашу обратную совместимость с нашими недобраузерами!!1111" Решение простое - надо один раз этих упырей послать и сделать по-человечески, но кто же решится?

Сервер вправе отдавать их не по HTTP.

Нахрена велосипедить отдельный протокол для такой простой задачи?

border-radius
()
Ответ на: комментарий от border-radius

Напоминаю, у меня Chromium OS стоит девелоперская

Какая разница, что у тебя стоит? Я говорю про ChromeOS.

а возможности не помешают

Создатели ActiveX исходили примерно из того же. Возможности нативных библиотек в веб-приложениях не помешают. Алсо, костылять SQL поверх SQL таки намного костыльнее, чем NoSQL поверх SQL.

Typed Arrays

Большинство переменных — внезапно, не массивы, и костылять это на одноэлементных массивах по меньшей мере глупо. Ничё, JS дремуч и в нём таки есть костыли для типизации, которые активно юзаются в том же asm.js, например. Но это костыли. Поэтому писать код, в котором костыли на костылях и костылями погоняют, без синтаксического сахара тяжко.

семантическая разметка

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

Да что ж у тебя всё жирное-то

Язык везде одинаковый. Как ты думаешь, может ли в принципе быть нежирным язык, построенный на парадигме «всё — объект» вкупе с нестрогой типизацией?

давности

Так навскидку, мощность железа от его древности напрямую не зависит. Любители жирноты чуть что — сразу начинают уповать на закон Мура, а оптимизаторов называют байтодрочерами и нищебродами.

надо один раз этих упырей послать и сделать по-человечески

В 90-х со всякими гоферовайсами такое уже было. Но тогда и масштабы были куда меньше...

Нахрена велосипедить отдельный протокол для такой простой задачи?

Ты наркоман или притворяешься? Давай ещё однобайтовые пакеты по HTTP пересылать.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Алсо, костылять SQL поверх SQL таки намного костыльнее, чем NoSQL поверх SQL.

Ты наркоман или притворяешься? © Тормозилловец, который оправдывал ненужность WebSQL, сам признался, что "запилить WebSQL поверх существующих интерфейсов к скулайту можно за один день, но мы чисто из принципа это не делаем".

Большинство переменных — внезапно, не массивы, и костылять это на одноэлементных массивах по меньшей мере глупо.

В переменных типизация не нужна.

Никто не мешал произвольные имена тегов юзать и без стандартов.

Произвольные имена ≠ семразметка. Попробуй заюзать произвольные имена в HTML5 и кинь сюда выхлоп валидатора.

Просто фишка большинства тегов в их стандартном наборе свойств.

Только у всяких дедалов, не осиливших CSS3.

Как ты думаешь, может ли в принципе быть нежирным язык, построенный на парадигме «всё — объект» вкупе с нестрогой типизацией?

Да, блин. Микроконтроллерщик детектед.

а оптимизаторов называют байтодрочерами и нищебродами.

JS-код тоже можно оптимизировать, ты не в курсе? Вот из-за всяких индусов с быдложквери и возник миф, что JS тормоз.

Давай ещё однобайтовые пакеты по HTTP пересылать.

Зачем пересылать однобайтовые пакеты? Ты вообще, блин, понимаешь, как и зачем работает CORS?

border-radius
()
Ответ на: комментарий от border-radius

за один день

И получится решето.

В переменных типизация не нужна.

Обоснуй. Нафиг переменной менять тип на ходу?

Произвольные имена ≠ семразметка

С т. з. изначального HTML (языка форматирования гипертекста) стандарт HTML5 вводит как раз-таки случайные. Просто набор ограничен.

Только у всяких дедалов, не осиливших CSS3.

CSS3 ровным счётом ни при чём, так как уже CSS2 отражал все возможности, достижимые атрибутами HTML. Теги несут именно определённый набор дефолтных значений. А сейчас им пытаются придать семантическое значение, при этом оверрайд стандартных свойств никуда не девался.

Да, блин

И как же?

Микроконтроллерщик детектед.

Промазал.

JS-код тоже можно оптимизировать, ты не в курсе?

У оптимизации JS есть пределы. Из рантайма, жонглирующего объектами, банально не выжать столько, сколько можно выжать из нативщины. Даже обрезанный asm.js уступает её в производительности, а про полноценный JS и говорить нечего.

Зачем пересылать однобайтовые пакеты?

Да хотя бы в игре какой. Или банальный сигнал подтверждения коннекта. Примеров применения может быть множество.

Ты вообще, блин, понимаешь, как и зачем работает CORS?

Вотъ. Начали о применимости веб-технологий — и опять всё сводится к сайтопроблемам.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

И получится решето.

Не большее решето, чем localStorage.

Обоснуй. Нафиг переменной менять тип на ходу?

Нафиг переменной явно задавать типы? var m="12345";m=m|0

С т. з. изначального HTML (языка форматирования гипертекста) стандарт HTML5 вводит как раз-таки случайные. Просто набор ограничен.

Ты совершенно не понимаешь, в чём суть /b/ семразметки.

Теги несут именно определённый набор дефолтных значений.

Что ты несёшь? Ты можешь заменить <img>, <audio>, <video>, <iframe> другими элементами с тем же функционалом? Ну, ладно, в замене <img> ещё можно выкрутиться с background-image, а в замене <textarea> - атрибутом contenteditable или DOM-свойством contentEditable, но технически это всё далеко не одно и тоже.

И как же?

Молча. V8 не жирный, JSC тем более.

У оптимизации JS есть пределы. Из рантайма, жонглирующего объектами, банально не выжать столько, сколько можно выжать из нативщины.

Осталось выяснить, зачем.

Вотъ. Начали о применимости веб-технологий — и опять всё сводится к сайтопроблемам.

Значит, не понимаешь. Так вот, я тебе объясню: CORS, и в частности, этот самый заголовок, отвечает за раздачу ресурсов сайта скриптам, загруженным с других доменов.

border-radius
()
Последнее исправление: border-radius (всего исправлений: 1)
Ответ на: комментарий от border-radius

Не большее решето, чем localStorage

localStorage — банальный ключ-значение. Одну SQL-технологию поверх другой реализовать можно только обрезав возможности основной СУБД до возможностей стандарта и нагородив чутка костылей. Что повышает риск уязвимостей, позволяющих получить доступ к хостящей СУБД, а через неё — по меньшей мере к другим БД.

Нафиг переменной явно задавать типы? var m=«12345»;m=m|0

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

Ты совершенно не понимаешь, в чём суть /b/ семразметки.

В разбавлении функциональных тегов семантическими. Всего-то.

<img>, <audio>, <video>, <iframe>

Это всё, кроме <img>, прикручено к языку гипертекстовой разметки задолго после его создания. Заметь, я говорил про большинство, а не про все.

V8 не жирный

Нашёл что в пример привести...

Осталось выяснить, зачем.

Чтобы не ограничивать искусственно мощность железа. А то выходит, что на машинках с i7 в жирноязыках потолок производительности упирает в потолок нативщины на четверопнях. Зачем мощности наращивать тогда, спрашивается?

раздачу ресурсов сайта скриптам, загруженным с других доменов.

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

MiniRoboDancer ★☆
() автор топика
Последнее исправление: MiniRoboDancer (всего исправлений: 1)
Ответ на: комментарий от MiniRoboDancer

Одну SQL-технологию поверх другой реализовать можно только обрезав возможности основной СУБД до возможностей стандарта и нагородив чутка костылей.

Ты чего-то явно в глаза не видел - либо WebSQL, либо скулайта, либо того и другого.

Чтобы память попусту не расходовать.

Она и не расходуется, GC зачем?

Вот выделил ты память под строку, потом она преобразовалась в число, указатель переключился на число, а строка сборщику мусора улетела.

Ну так для этого он и нужен, нет?

А ведь можно было выделить память только под целое, без лишних указателей.

И вместо элементарной операции "a"+20 кастовать указатели? Спасибо, накастовался уже.

Это всё, кроме <img>, прикручено к языку гипертекстовой разметки задолго после его создания.

И как это уменьшает значимость этих элементов?

Чтобы не ограничивать искусственно мощность железа. А то выходит, что на машинках с i7 в жирноязыках потолок производительности упирает в потолок нативщины на четверопнях.

Сам придумал или кто подсказал? Современные движки умеют в JIT-компиляцию, твой любимый говнопресто или осёл8 - хз.

Зачем мощности наращивать тогда, спрашивается?

Чтобы кроссплатформенность.

Как доходит до того, чтобы на веб-технологиях слепить, скажем, распределённый мессенджер — тут и начинается веселье.

...сказал неосилятор ноды и вебсокетов.

border-radius
()
Последнее исправление: border-radius (всего исправлений: 1)
Ответ на: комментарий от border-radius

Она и не расходуется, GC зачем?

Вместо одного лишь целого городится указатель+целое.

И вместо элементарной операции «a»+20 кастовать указатели?

При чём тут указатели со стороны языка вообще? Я тебе про реализацию VM говорю.

И как это уменьшает значимость этих элементов?

Несемантической значимости у тех же audio/video нет — уже сто лет есть embed/object. И набор атрибутов там почти такой же.

Современные движки умеют в JIT-компиляцию

JIT в объектной парадигме мало что даёт, так как позволяет компилить только узкие участки кода. Как доходит хотя бы до ассоциативщины — там уже жопа.

Чтобы кроссплатформенность.

Решение проблемы зоопарка платформ путём создания платформонезависимых технологий вместо устранения зоопарка — это эпичнейший костыль.

...сказал неосилятор ноды и вебсокетов

Нода к браузерному JS прямого отношения не имеет. О паутиноносках речь не шла.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Надоело, короче, одно и то же по 20 раз переливать.

embed/object

Object подключает сторонние плагины. Audio/video - нативщина. А embed - это вообще хрень недобраузерная.

Нода к браузерному JS прямого отношения не имеет. О паутиноносках речь не шла.

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

border-radius
()
Последнее исправление: border-radius (всего исправлений: 5)
Ответ на: комментарий от border-radius

Object подключает сторонние плагины. Audio/video - нативщина

В том и дело, что нововведение искусственное. Ничто не мешало впилить воспроизведение встроенными средствами, если браузер данный MIME-тип поддерживает, и искать плагины, если их нет. А то сейчас получается, что ни embed не работает, если никаких QuickTime/VLC/etc не стоит, ни audio/video, которым вечно то GStreamer подрубить надо, то поддержку H.264.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Embed не должен работать. Нигде. Никогда. Object оно называется. Object. А чем тебя не устраивают плагины gstreamer? Голая шинда вон, тоже ничего не играет, кроме унылого wma.

border-radius
()
Ответ на: комментарий от anonymous

Тащем-то пофиг. Не хватало ещё и говорить по английский (:

MrClon ★★★★★
()
Ответ на: комментарий от border-radius

Embed не должен работать. Нигде. Никогда. Object оно называется. Object.

От смены названия суть не меняется. У object только пару параметров есть, которые ничто не мешает и в embed впилить.

А чем тебя не устраивают плагины gstreamer?

То, что GStreamer только в медиа умеет.

Голая шинда вон, тоже ничего не играет, кроме унылого wma

11-й WMP ~15 форматов поддерживает (в т. ч. всякие эмэрзэ, огги и даже мидяшки). Новые, наверное, ещё больше. Но NPAPI-плагина у него нет и браузеры с ним не интегрируются, да, даже ослик.

MiniRoboDancer ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.