Один из разработчиков из проекта Mozilla представил (http://haxpath.squarespace.com/imported-20100930232226/2011/...) результаты эксперимента, целью которого была демонстрация производительности современных JavaScript-движков, способных справляться с выполнением ресурсоёмких задач. В качестве задачи было выбрано создание приложения для декодирования видеопотоков H.264, написанного целиком на JavaScript.Для реализации проекта был выбран готовый декодер H.264, написанный на языке Си, который был упрощён, преобразован в биткод LLVM и транслирован в JavaScript при помощи компилятора Emscripten (http://www.opennet.me/opennews/art.shtml?num=31155). Результат оказался впечатляющим - используя только штатные оптимизации Emscripten удалось достигнуть производительности декодирования видео в браузере с частотой около 30 кадров в секунду. По мнению разработчиков, применив дополнительные оптимизации, такие как задействование WebGL для использование средс...
URL: http://haxpath.squarespace.com/imported-20100930232226/2011/...
Новость: http://www.opennet.me/opennews/art.shtml?num=32188
Интересно, через сколько лет они Firefox на JavaScript перепишут?
> Интересно, через сколько лет они Firefox на JavaScript перепишут?
> In computer programming, XUL (pronounced /ˈzuːl/ zuul), the XML User Interface Language, is an XML user interface markup language developed by the Mozilla project. XUL operates in Mozilla cross-platform applications such as Firefox.
> ...
> XUL relies on multiple existing Web standards and Web technologies, including CSS, JavaScript, and DOM
Я все понимаю - just for fun и все такое, но что за мода - всех и вся переписать на java-script'е для выполнения в браузере? Когда прекратится этот идиотизм? Почему бы уж тогда сразу не сделать сугубо аппаратную реализацию браузера-джаваскрипт-машины (а-ля Лисп-машины) и писать под нее?Зачем нам линуксы, си-плюс-плюсы, нормальные (быстрые, стабильные) библиотеки, инструменты и приложения? Давайте все дружно откроем окна браузеров и забудем про то, что есть еще куча полезных программ...
И скажите мне, пожалуйста, знающие люди: неужели глобальная "вебоизация", переход от нормальных маленьких и юрких приложений к проприетарным, выполняемым "где-то в Гондурасе" тупым и тормознутым веб-недоприложениям - это будущее?
Корпорациям надо мир захватывать, твои проблемы их не интересуют.
Это не мода, это поигрывание мускулами.Они теперь настолько развили теорию алгоритмов и оптимизаций, что применив знания на практике смогли сделать из простого интерпретатора настоящий шедевр.
Интересно, каким железом и алгоритмами они раскалывают сейчас код ДНК, пока Ванька на печи смотрит китайский телевизор.
> Интересно, каким железом и алгоритмами они раскалывают сейчас код ДНКСтрашно не то, что раскалывают (если существует возможность расколоть - рано или поздно это сделают), а как потом эти знания будут использоваться. Что-то мне подсказывает, что не на пользу человечеству...
>> Интересно, каким железом и алгоритмами они раскалывают сейчас код ДНК
> Страшно не то, что раскалывают (если существует возможность расколоть - рано или
> поздно это сделают), а как потом эти знания будут использоваться. Что-то
> мне подсказывает, что не на пользу человечеству...Недавно по телевизору крутили Resident Evil 3.
Показательный пример)
это же комбикорм для домохозяек мужского пола.
На пользу инопланетян?
> На пользу инопланетян?На пользу корпораций и их владельцев, в ущерб всем остальным //Капитан.
паникер
10 лет назад сантехники бредили тонкими клиентами на жабе. Где теперь санки? Сейчас этим бредит гугль и мозила. Надеюсь история развивается по спирали...
Сейчас к этому подоспели технологии, каналы связи, так что может быть что так и будет.
> 10 лет назад сантехники бредили тонкими клиентами на жабе. Где теперь санки?
> Сейчас этим бредит гугль и мозила. Надеюсь история развивается по спирали...Имхо, если бы не пузырь доткомов, могло бы быть что-то близкое.
>> 10 лет назад сантехники бредили тонкими клиентами на жабе. Где теперь санки?
>> Сейчас этим бредит гугль и мозила. Надеюсь история развивается по спирали...
> Имхо, если бы не пузырь доткомов, могло бы быть что-то близкое.Да не было "пузерей дот.комов". Это кризиз Индустриального Общества, который пытается бороться с Информационным обществом. И он как начался тогда, в 2000-м, так и идет до сих пор. Индустриализм падет! Но для этого нужны информационные ресурсы и оптимальный КОД! ... вот про что и статья!
> 10 лет назад сантехники бредили тонкими клиентами на жабе. Где теперь санки?А теперь и ваш любимый мелкософт бредит хтмл5, так что выбрасывайте ваш дотнет, шлите смс с текстом "не лох!" и переучивайтесь, пока еще не поздно, потому что ваша компартия за вас уже все решила :)
К сожалению MS "бредит" HTML5 точно также как она бредила HTML4. Лучше бы вообще не пытались сделать, если сделать не могут....
>> 10 лет назад сантехники бредили тонкими клиентами на жабе. Где теперь санки?
> А теперь и ваш любимый мелкософт бредит хтмл5, так что выбрасывайте ваш
> дотнет, шлите смс с текстом "не лох!" и переучивайтесь, пока еще
> не поздно, потому что ваша компартия за вас уже все решила
> :)7 лет назад все говорили что мелкософт бредит .net-ом, выбрасывайте этот winapi. Но в MS ведь не идиоты сидят. Они и WinAPI развивают, и .net, и сервелат, и, вот скоро, MetroUI появится. Так что ничего страшного не случится.
>Так что ничего страшного не случится.ничего необычного не случится ;)
весь ворох увлечений МС - кучей хлама, костылей, заплаток... оседает в ОС для домохозяек
требуя всё более производительного железа
> ничего страшного не случится.Зависит от того как у вас определено понятие "страшное". Да, ядерные взрывы в вашем городе от этого не произойдут.
А сервелат по сути официально убит в пользу хтмл5. Duplicate функционал.
> А сервелат по сути официально убит в пользу хтмл5. Duplicate функционал.Можно ссылку на офф. заявление? А то домыслов много, а сервелат всё не умирает, скоро новая версия выходит. Смею также заметить что сервелат позволяет использовать существующие наработки и легче интегрируется с инфраструктурой на .net, а вот для html5 пилить прийдётся больше.
>Зачем нам линуксы, си-плюс-плюсы, нормальные (быстрые, стабильные) библиотеки, инструменты и приложения? Давайте все дружно откроем окна браузеров и забудем про то, что есть еще куча полезных программ...И наоборот. Зачем нужна венда, когда можно взять любую легкую, безопасную, удобную, просто и быстро развертываемую, короче годную операционку, открыть браузер, и пользоваться всеми теми же веб приложениями.
> Почему бы уж тогда сразу не сделать сугубо аппаратную реализацию браузера-джаваскрипт-машины (а-ля Лисп-машины) и писать под нее?разработать один-раз-и-навсегда стандарт HTML-for-HW ? и потом 5 лет не вводить новых улучшений? :-) [такой тормаз прогресса (5 лет!) ещё никогда небыл настолько фэйлвым :-)]
...вобщем говоря -- устанавливать каждые 2 месяца новую версию браузера -- я себе позволить МОГУ....
а вот покупать каждые 2 месяца новую аппаратную-железку (которая каждый раз всё лучше и лучше будет поддерживать новые HTML-технологии) -- увы для меня это слишком ДОРОГО :-(
я свой компьютер ито покупал аж целых 8 лет назад
# p.s.: "HTML5" это всеголишь брэнд а не пятая версия протокола HTML... намёк на то что врядли когданибудь можно ожидать что его "заморозят" на одном уровне
> # p.s.: "HTML5" это всеголишь брэнд а не пятая версия протокола HTML...
> намёк на то что врядли когданибудь можно ожидать что его "заморозят"
> на одном уровнеулыбнули. А ничего что HTML5 Это не протокол?? ))))
да, разумеется ничего :-)... от того какое слово подставите -- суть не поменается
--и получат впечатляющие результаты ;)
> или предложений по замене JavaScript на языки подобные Google Dartпо-моему, у предложения от гугля совершенно другая мотивация, и ускорить работу скрипта там не самая приоритетная задача, хотя и не без того, скорее уж исправить изъяны языка
> исправить изъяны языкаИсправить один самый главный изъян.
Изъян таки один - большие проекты на JS писать - идиотизм, и идут на такое только от отсутствия альтернатив.
> Изъян таки один - большие проекты на JS писать - идиотизм, и
> идут на такое только от отсутствия альтернатив.вообщето, по моему скромному мнению -- поглядев Dart я не нащёл там ничего такого (отличающегося от Javascript) что моглобы ОСОБО СИЛЬНО помочь писать большие программы :-)
например:
* синтаксис Dart описывает конструкторы в декларативном стиле. но разве это особо както влияет на возможность писать большие проекты? это всеголишь синтсксический сахар укорачивающий код на пару строчек
* Dart более строго обрабатывает ситуации с концом операции внутри блока кода и ";" (в конце каждой перации дролжна быть ";"). но болшой проект так-и-так предпологает что разработчики не будет раводить whitespace-срач внутри программы. следовательно здесь Dart помогает только маленьким программам (в которых как раз разработчик возможно захочет разести whitespace-срач, и Dart ему в этом поможет)
* проверка типов (строгая типизация, хоть и зачаточная) в Dart, и всякие там Интерфейсы. это весьма спорно улучшает разработку боьших проектов... например программисты Python щитают что как раз именно динамическая типизация в Python позваляет сократить код программы в несколько раз, по сравнению с аналогичным кодом программы на Java
* в Dart есть синтаксическая конструкция позваляютщая осуществлять импорты модулей. в Javascript такой синтаксической конструкции нет. но для больших проектов никто не мешает написать внутри Javascript -- новую функцию require() [которая будет загружать код Javascript-модуля через операцию-XHR и потом инициализировать этот модуль через функцию Function() или eval()].. подобный механизм require() -- займёт не более одной~двух страниц Javascript-кода. но в Dart ничего писать не придётся -- оно уже есть как синтаксическая конструкция! и это значит МАЛЕНЬКИЕ (но много-модульные) программы в Dart будеть писать ещё прощще! однако здесь-то мы говорим про БОЛЬШИЕ программы (такие большие что +/- одна страница кода будет незаметна на фоне всего кода :)).... и выходит что опять-таки никакого особого приемущества в Dart для больших программ нет
* в Dart более строгое отношение к глобальным фукнциям (и прочим глобальным вещщам). например, всё что описанно "глобально" -- оказывается изолированно [тоесть оказывается всёже не глобальным]. но в Javascript умные люди тоже не создают ничего глобального...
там используют конструкцию (function () { /* ...много строчек кода... */ })()
другими словами в больших Javascript-программах есть своя культура стиля-кода... просто разработчики её должны сами (по своей ДОБРОЙ ВОЛИ) придерживаться :-)
Dart пытается навязать "добрую" волю насильно (я щитаю это хорошо! но тем не менее большие программы и так не пишут "злые" люди :):))# p.s.: повторюсь ещё раз -- тут я не пытаюсь критиковать Dart.. он весьма не плох! но для больших программ он ничего особо не помогает (хотя и не мешает!). но возможно маленькие программы будет на Dart писать намного прощще чем на Javascript
По-моему скорее у них задача ближе к той, которую решала Microsoft отказываясь от POSIX в пользу WINAPI и т.д. Своё казино с блек-джеком и.. пользователями
Ага, а по ссылке "посмотреть" видео на самом деле идет во флеше (даже не html5!). Нет чтобы на этом же примере продемонстрировать, как оно декодируется таким замечательным декодером.А чтобы посмотреть на декодер, который должен работать из браузера, предлагается.. что.. использовать внешнее приложения для скачивания проекта? В чем тогда профит проекта, который должен работать в онлайне?..
Брр. Кваку на дажваскрипте запускают, линукс на джаваскрипте запускают, видео декодируют.. что еще попытаются загнать в браузер?
>Брр. Кваку на дажваскрипте запускают, линукс на джаваскрипте запускают, видео декодируют.. что еще попытаются загнать в браузер?Так всё и загнать. При росте вычислительных мощностей мэйнфреймы для таких задач уже давно не нужны. Джаваскрипт же позволит вернуть всё обратно. Вот лет через 10 запустишь свой 20-и ядерник со 100 гигами оперативы, подключишься к гуглю через бровзер и начнёшь печатать примитивный документик. А если приплатить гуглю, то и музыку можно будет в фоне послушать. Глядишь, потом вырастит армия кодеров, которые будут серьёзно полагать, что декодировать H.264 можно только внутри бровзера посредством JS не иначе. Естественно, не без участия гугля или другого крупного провайдера.
> Ага, а по ссылке "посмотреть" видео на самом деле идет во флеше
> (даже не html5!). Нет чтобы на этом же примере продемонстрировать, как
> оно декодируется таким замечательным декодером.Дочитайте новость до конца.
Чтобы посмотреть видео, нужна ночная сборка firefox.
> Один из разработчиков из проекта Mozilla
> Чтобы посмотреть видео, нужна ночная сборка firefox.Интересно, насколько сильно пришлось подогнать firefox под данный конкретный скрипт?
> Интересно, насколько сильно пришлось подогнать firefox под данный конкретный скрипт?Ну зато хоть оптимизят джижок - хоть какая-то польза от всего этого непотребства.
На 7.0.1 работает.
> Брр. Кваку на дажваскрипте запускают, линукс на джаваскрипте запускают, видео декодируют.. > что еще попытаются загнать в браузер?Ну и пусть загоняют, можно подумать, что остальные подходы очень уж идеальные. JIT может заметно придать скорости, а интерпретруемый код сам по себе более безопасен и переносим, чем закачка разных там сишных плагинов, делающих незвестно что.
Даёшь емакс на JS!
можно реализовать на базе ace http://ace.ajax.org/ - там клавиатурные комбинации Emacs и Vim поддерживаются
Лисп-интерпретатор на джаваскрипте? Я даже не знаю, как это извращение можно назвать...
ни размер видео не указан, ни декодирующая машина... ну-ну.
> ни размер видео не указан, ни декодирующая машина... ну-ну.Да и без того понятно, что профиль около baseline, а машина - intel из топовых, на которой это выдео обычно декодируется с 10-15% загрузкой
вот лучше бы h264-профиль аппаратного раскодирования VDPAU для Gallium запилили.
там вот mpeg2 кое-как заделали, divx/xvid готовят, а с h264 всё напряг. про webm тоже больше трёпа, чем дела.
Сделали ли бы декодировщик FLAC ещё таким же образом.
флак то сделать совсем не проблема
> Демонстрацию ... можно посмотреть на данной странице.yfrog.com uses an invalid security certificate.
The certificate is not trusted because the issuer certificate is not trusted.В Мазиле бабло не платят, нет 150$ на сертификат?!
Imageshack != Mozilla
> В Мазиле бабло не платят, нет 150$ на сертификат?!А давно у мозиллы появился указанный домен?! По-моему, тебя глючит.
>> В Мазиле бабло не платят, нет 150$ на сертификат?!
> А давно у мозиллы появился указанный домен?! По-моему, тебя глючит.
> Imageshack != Mozilla"Один из разработчиков из проекта Mozilla представил ..."
Интересно, какое разрешение у этого ролика? А то у меня даже оптимизированный FFMPEG декодер на С, без ускорения на видеокарте, иногда кадры теряет на обычном FullHD. И комп вроде не ниже среднего...
А если стерео? Или разрешение повыше?
Относительно недавно была новость про mp3 декодер на js, так он на моём core2duo еле-еле справлялся, а с этим h264 что будет?
нам же ясно указали данные, нужен "20-и ядерник со 100 гигами оперативы" :)
Таки потестил: 15 FPS выдаёт это чудо...
> моём core2duo еле-еле справлялся, а с этим h264 что будет?Как что - слайд-шоу. Типа, фича :)
К сожалению, разработчики ОС, вследствии идеологических и религиозных причин, не смогли договориться о едином формате исполняемых файлов и драйверов. Вследствии этого один и тот же продукт, скомпилированный под одну ОС, если и можно запустить в другой, то лишь через задницу.Зато во всем ОСьках есть браузер с JS.
Вопрос на лям: на чём стоит писать ПО чтобы оно запускалось на всех ОС без перекомпиляции и не через задницу, пусть даже пожертвовал производительностью?
в форматах никаких проблем нет, прикрутить практически любой формат легко к лююой ОС. Проблема в ABI/API которые ОС предоставляют. И это в основном проблема только unix(posix) лайк апи против winapi.
> прикрутить практически любой формат легко к лююой ОССегодня время работы программиста на порядок дороже стоимости аппаратуры. А для ИТ компаний зар.плата - самая большая статья расходов. И ваше "[можно] прикрутить" - можно, но экономически неоправдано.
> И это в основном проблема только unix(posix) лайк апи против winapi.
Проблема ABI/API сложнее, чем кажется на первый взгляд. Достаточно сказать что проект UDI (Universal Driver Interface) так и не стал инициативой (если понимаете разницу между словами "проект" и "инициатива"), хотя поддерживался многими производителями аппаратуры.
> на чём стоит писать ПО чтобы оно запускалось на всех ОС без перекомпиляцииПроблемы проприетарщиков. У нормальных людей всё компилируется и работает.
"Нормальными" в психологии считается большинство. Большинство использует WinAPI. Остальные - "девиантные" ("отклоняющиеся" от нормы).
В психологии нет понятия нормы.
> "Нормальными" в психологии считается большинство. Большинство использует WinAPI. Остальные
> - "девиантные" ("отклоняющиеся" от нормы).В математике "нормаль" -- это перпендикуляр!
И не факт, что большинство программеров сидят на ВыньАПИ.
А "звери" -- ну на то они и "звери"...
>Большинство использует WinAPI.Какое смелое заявление. На десктопах лидирует winapi, но вы забываете про серверы, роутеры, автопилоты, холодильники, кофеварки итд.
Простите, не могли бы вы, оставаясь в рамках обсуждаемой темы, привести где необходимо декодирование h.264 на JS на "серверах, роутерах, автопилотах (!), холодильниках (!), кофеварках (!) и т.д."?
«демонстрация производительности современных JavaScript-движков, способных справляться с выполнением ресурсоёмких задач»
Сообразить какие ресурсоемкие задачи могут решаться на JS на "серверах, роутерах, автопилотах (!), холодильниках (!), кофеварках (!) и т.д." сможете?
На серверах как минимум node.js вспоминается. Для остального - графический интерфейс пользователя. А еще телефоны и планшеты есть...
Ну заменим отмеченное восклицательным знаком на Android, iOS, Bada, Tizen.
Помилуйте, не стоит кидать в один котелок ППО для ARM, холодильники, сервера и JS - не сварится у вас эта каша.Для ARM такой проблемы нет по причине недостатка производительности.
Встраиваемой технике JS не требуется по той же причине.
Сервера JS скрипты по декодированию видео выполнять не будут никогда, ибо сливать в унитаз производительность никто из админов, будучи в трезвом уме, не станет.
У описанного решения одна целевая аудитория - быдло. Ой, простите, домашние пользователи, которых можно е**ть и кормить г***ом. Ой, простите, предлагать решения которые удобны разработчикам, а не им, и они схавают, ибо на халяву и уксус сладкий.
> Сервера JS скрипты по декодированию видео выполнять не будут никогда, ибо сливать в унитаз производительность никто из админов, будучи в трезвом уме, не станет.Видео тут и правда не причем, а в js на сервере нет ничего особенного, да и действительно чем он тормознее перла или пыха?
Server-side JavaScript (SSJS) refers to JavaScript that runs on the server-side. The first implementation of SSJS was Netscape's LiveWire,[citation needed] included in its Enterprise Server 2.0 product,[1] released in 1996. Server-side JavaScript is becoming more popular because of faster JavaScript engines and the convenience of using the same language for both client and server.
> У описанного решения одна целевая аудитория - быдло.Ты однобоко смотришь, к тому же критично как школьник с духом противоречия непонятному.
Поучись почитай книжки, авось придумаешь еще одну целевую аудиторию
Если расширить, то стандарты заложил POSIX, внедрённый требованиями мин.обороны США и поддерживаемый сегодня во всех сколько-нибудь популярных ОС, используемых на территории США.Заметьте, не "национальная платформа" (имперское величие и замашки - в п***у), а именно API для запуска ПО.
Но требования POSIX ограничиваются требованиями военных. Жаль... Надо было дожать - и был бы если не рай, то счастье :).
> ...на чём стоит писать ПО чтобы оно запускалось на всех ОС без перекомпиляции...а вам [как этолонному пользователю] какая разница -- будет ли ПО "перекомпилироваться" или не будет?
вы как пользователь -- должны беспокоиться только лишь о том чтобы установка ПО занимала не больше 3х кликов мышкой :-) :-) ...а уж что будет происходить внутри компьютера [во время этих кликаней мышкой] -- вам как пльзователю вообще не должно беспокоить...
компилируются-ли там исходники, или подаётся сигнал на запуск ядерных боеголовок... главное что я нажал emerge gajim и у меня появиться Gajim на компьютере :-)
У меня Atom 550. У вас, полагаю, минимум Core i5.
За меня компилируют мейнтейнеры моего дистрибутива.
Вань, отличная целевая аудитория, поддерживаю, они запарили с этими технологиями и своими казино с блекджеком и программерами
В общем, ждём процессоров, нативно выполняющих JavaScript, и тогда наступит коммунизм.
И узнаем наконец что это такое, когда процессор глючит.
>И узнаем наконец что это такое, когда процессор глючит.Remote code execution through Intel CPU bugs
http://www.zdnet.com/blog/security/remote-code-execution-thr...
>Обычно, JavaScript-код полученный после компиляции Emscripten отстаёт от первоначального варианта на языке Си в 3-4 раза. Новая техника оптимизации в JIT-компиляторе Firefox позволила сократить данный разрыв.А как же любители объяснеть как JIT эффективнее обычной компиляции потому что ..... ?
> А как же любители объяснеть как JIT эффективнее обычной компиляции потому что ..... ?Врут, получается.
Уважаемые! Кто нибудь знает можно ли при помощи JavaScript кодировать видео (например с веб камеры)??? в любой современный формат?