Компания Google анонсировала (https://developers.google.com/native-client/announcements) технологию Portable Native Client (http://www.chromium.org/nativeclient/pnacl/building-and-test...) (PNaCl), в рамках которой разработан многоплатформенный вариант системы Native Client, позволяющий выполнять приложения, написанные на C и С++, в специальном изолированном окружении web-браузера, независимо от текущей аппаратной архитектуры. Код PNaCl уже интегрирован в экспериментальную ветку Chrome 29.
В PNaCl вместо генерации машинного кода приложение компилируется в универсальный биткод LLVM и поставляется в непривязанном к конкретной платформе исполняемом формате ".pexe". В процессе запуска приложения промежуточный биткод LLVM (http://www.chromium.org/nativeclient/pnacl/bitcode-abi) транслируется в машинный код текущей платформы на стороне локальной системы пользователя. Иными словами собранное с использованием PNaCl приложение может выполняться в различных мобильных и настольных системах с разными аппаратными архитектурами (в настоящее время поддерживаются 32- и 64-разрядные системы x86 и устройства на базе архитектуры ARM). Другим важны отличием от ранее доступного Native Client является необходимость использования многоплатформенной библиотеки newlib (http://www.sourceware.org/newlib/), развиваемой комапанией Red Hat в качестве упрощённой (http://www.sourceware.org/newlib/libc.html) стандартной Си-библиотеки для встраиваемых систем. Библиотека glibc, обращение к Pepper API для выполнения мультимедийных операций и динамическое связывание с другими библиотеками пока не поддерживаются.
Для сборки универсальных исполняемых файлов pexe подготовлен (http://www.chromium.org/nativeclient/pnacl/developing-pnacl) специальный инструментарий pnacl, поставляемый в составе SDK-пакета pepper_canary. Новый инструментарий базируется на компиляторе Clang и компонентах LLVM (в Native Client использовался GCC). Для включения поддержки PNaCl в Сhrome 29, браузер должен быть запущен с флагом "--enable-pnacl", в этом случае транслятор биткода LLVM запускается в форме отдельного фонового процесса. Контролировать работу транслятора можно при помощи служебной ссылки "chrome://nacl".
Вынос стадии генерации машинного кода на сторону клиента позволяет разработчику не задумываться о низкоуровневых оптимизациях и поддержке новых архитектур - новые методы оптимизации и поддержка новых аппратаных платформ производится без пересборки пользовательского приложения, через обновление транслятора. После выхода финального релиза PNaCl и окончательной стабилизации промежуточного формата исполняемых файлов, пользователи получат возможность интегрировать переносимые PNaCl-модули в любые web-страницы, без необходимости размещения приложения в Chrome Web Store.
Проект Mozilla, в свою очередь, продвигает (http://www.opennet.me/opennews/art.shtml?num=36468) собственную технологию для запуска в браузере приложений, написанных на языках Си и Си++. В отличие от Native Client, приложения транслируются в специальное подмножество языка JavaScript, что позволяет запускать их в любых браузерах. При наличии поддержки в браузере специального JavaScript-диалекта со строгой типизацией - Asm.js, производительность выполнения таких программ существенно повышается и может отставать от нативных приложений примерно в два раза. В данный момент поддержка Asm.js уже интегрирована в бета-версию Firefox 22.
URL: http://www.theregister.co.uk/2013/05/18/google_portable_nati.../
Новость: http://www.opennet.me/opennews/art.shtml?num=36962
Что мешает это сделать отдельно от браузера. Зачем ЭТО в браузере
Вроде же очевидно - чтобы можно было зайти на страничку и пользоваться приложением. Пользовательское ПО постепенно перестает быть локальным. Хочется иметь возможность использовать приложение отовсюду, а не привязывать его к локальному компьютеру.
> Вроде же очевидно - чтобы можно было зайти на страничку и пользоваться
> приложением. Пользовательское ПО постепенно перестает быть локальным. Хочется иметь возможность
> использовать приложение отовсюду, а не привязывать его к локальному компьютеру.Вроде же очевидно - чтобы можно было зайти на страничку и послать свои данные левой компании. Пользовательское ПО постепенно перестает быть приватным. Хочется иметь возможность лишать себя свободы отовсюду, и привязывать себя к одному провайдеру SaaS.
Fixed.
Не вижу разницы с Java или Flash. Ну, будет какой-нибудь модуль pnaclblock просто.
так ими никто почти и не пользуется в браузерах. А теперь и вообще почти нигде
А по-моему, похоже на ActiveX
Особенно когда добавят динамическое связывание
>Библиотека glibc, обращение к Pepper API для выполнения мультимедийных операций и динамическое связывание с другими библиотеками пока не поддерживаются
У бесплатного ПО есть недостатки - нет мотивации делать (делать хороший продукт), особенно когда пользователей мало.
Основная мотивация - бонусы при устройстве на работу.
Практически везде спрашивают участие в открытых проектах и ссылки на код.
Меня про участие в открытых проектах не спрашивали ни разу (за 15 лет работы)
Несколько раз просили прислать пример кода который я пишу. Это скорее потому что хотели узнать качество кода который я пишу.
> Меня про участие в открытых проектах не спрашивали ни разу (за 15 лет работы)Я Вам сочувствую
не стоит сочуствовать мне. Человек обманывает, но не меня, других.
Или возможно он устраивается работать в компании которые на опенсорсе специализируются. Всё равно создаётся ложное, неправильное представление.
15 лет назад на линуксойдов смотрители как на папуасов на севере.
После '06-'07 года началось...
Как я понял основная мотивация - бонусы при устройстве на работу. И они больше чем просто работа за деньги?Как я понял из обсуждения: добрые компании (их большинство) хотят сделать добро людям, онии поощеряют бесплатную разработку ПО (странно, могли бы сами разработать и подарить программу миру) и "дарят" (в виде бонусов к зарплате) программистам деньги за работу.
> Как я понял основная мотивация - бонусы при устройстве на работу.
> И они больше чем просто работа за деньги?Ты точно программист? Как тебя 15 лет терпят, не понятно...
Взял и смешал разные временные части и положение человека:
до устройства на работу и уже работа.После такой заявы я тя уже точно не возьму, можно даже код не показывать.
> Как я понял из обсуждения: добрые компании (их большинство) хотят сделать добро
> людям, онии поощеряют бесплатную разработку ПО (странно, могли бы сами разработать
> и подарить программу миру) и "дарят" (в виде бонусов к зарплате)
> программистам деньги за работу.Вот не надо читать между строк!
"Бонусы при устройстве на работу" - предложение законченное и трактовке не подлежит.Если у тя есть патч на 100 строк, к планировщику задач ядра, это одно, другое что вроде:
- int ret;
+ ssize_t ret;
ret = write(fd, data, BUFSZ);
...
Опустим личные выпады..Вопрос практический:
1) мне поработать на опенсорсный проект + потом поработать устроиться на работу
2) мне устроиться сразу на работу
что выгоднее?
> поработать на опенсорсный проектне значит, что ты будешь работать за спасибо
а вот это вообще ни к чему:
> поработать на
> устроиться … на
> что выгоднее?создать опенсорсный проект и почаще думать
>не значит, что ты будешь работать за спасибоЕсли доход сколько нибудь сравинимый с рыночной зарплатой то это вообще не вопрос. Спорить не с чем.
>создать опенсорсный проект
тут надо понимать что опенсорс не везде конкурентноспособен.
> что выгоднее?Да кто Вас знает, что Вам выгоднее.
Я согласен с Павлом, поскольку моё "выгоднее" (это если вообще мерять в выгоде, и то не сводя её к деньгам) -- оно долгосрочное, а не вчера посаженую картошку выкапывать.
То, что Вас не спрашивали -- характеризует скорее компании, которые в моём списке кандидатов при таком событии как смена места работы оказались бы ниже среднего по умолчанию: или не профиль, или тормоза и расхлёбывать это будет уже безнадёга.
> Вопрос практический:
> 1) мне поработать на опенсорсный проект + потом поработать устроиться на работу
> 2) мне устроиться сразу на работу1. Кто тебя сразу возьмёт на работу?!
Сажать на испытательный срок даже на две недели никто не будет,
ты ж денег попросишь, за якобы вникание в суть.2. Анализировать спрос на рынке труда, на собственном примере, на публичном ресурсе,... хе... забавно.
3. Встань на другую сторону баррикады. Представь, ты - работодатель.
- Приходит noname Dmitry. Пальцы веером, сопли пузырями. Дипломы МГУ, Бауманки, МФТИ,...
"- Быстро меня взяли, а элитный программист! Вот вам хелловодры, смотрите мой CodingStyle"
- Приходит Вася Пупкин, 10 классов, второй курс Института Природоведения, г. Бабруйск.,
патчи в Гноме, в КДЕ, мож даже в ядре, форки с фиксами в github, тонны багрепортов в убунте...Угадай кто более интересен?!
> Угадай кто более интересен?!определённо не человек, у которого «тонны багрепортов в убунте».
Я так устраивался в одну контору, так там вообще опыт участия в open source проектах считался минусом O_o Якобы это сразу означает что человек научился не писать хороший код, а "хакать". Серьезно. Прям так и сказали. Так что ответ на ваш вопрос, не столь очевиден.
Мы вам не только верим, но и знаем эти конторы ;)
> После такой заявы я тя уже точно не возьму, можно даже код
> не показывать.так надо совсем с ума сойти, чтобы идти на работу к человеку, который пишет «линуксоЙды».
линуксоеды!
Основная мотивация при разработке бесплатного ПО как раз не в этом, а в том, чтобы как можно глубже засадить крючок в пользователя. Собственно, как и в раздаче бесплатного ПО.А ты сейчас описываешь одну из множества мотиваций написания свободного ПО.
Я Мне понастваили минусов..Поясню когда имеет смысл делать опенсорсное ПО, а когда нет:
1)Вы крупная компания и хотите уменьшить издержки на разработку продукта "А". В продукте продукта "А" заинтересованы ещё крупные компании, возможно их не очень много. Вы можете позволить держать штат программистов. Ваш основной доход - не доход от этого ПО. Ваша лицензия скорее всего будет либиральная: Apache или MIT и др.2) вы небольшая компания, вы пишите опенсорсный продукт зарабатываете на поддержке.
Ваши клиенты - небольшие компании и не могу позволить держать штат программистов - будет дорого.
Пользователей вашего продукто должно быть очень много. Ваша лицензия gpl, lgpl, agpl + комерческая (менее удобны Apache, MIT )
Пример компаний canonical, redhat, компании из MariaDB Foundation.3)Вы программист. Вы знаете продукт "А", Вы хорошо разбираетесь в нём вы его писали. Доступ к исходникм довольно простой.
В принципе не важно открытый продукт "А" или нет. Те кто писал ядро виндуса - скорее всего более ценны чем кто писал ядро Linux(конкуренция меньше).Когда опенсорс плохо работает
1) вы небольшая компания, Ваши клиенты - небольшие компании. которые не могут позволить держать штат программистов. Компаний-клиентов сравнительно мало(например потому что вы делаете специализированный продукт).
Сделав закрытый продукт вы можете сделать его:
-дешёвым потому что платят все, издержки распределяются более равномерно.
В SaS продукте издержки распределяются ещё более равномерно по времени (помесячная например оплата). Ещё меньше затраты на администрирование.2)Ваше конкурентное преимущество - ПО. сделав его открытым вы наплодите сильны конкурентов за свои деньги.
> Те кто писал ядро виндуса……совершенно бесполезны из-за NDA.
Из-за DNA тоже ))
Протестую! Здесь исключительно RNA, возможно даже только tRNA :)
> В принципе не важно открытый продукт "А" или нет.Ещё как важно, и история SCM тоже -- это сильная страховка от подделок.
> Те кто писал ядро виндуса - скорее всего более ценны чем кто писал
> ядро Linux(конкуренция меньше).Если бы Вы хоть немного посмотрели с другой стороны забора, то поняли бы -- те, кто умеет зажигать газовые фонари, довольно слабо востребованы на рынке труда, скорее в уникальных проектах (но там, как справедливо отмечено рядом, скорее всего их ценность должны свести к нулю условия контракта MS и NDA -- через N лет их остаточные знания будут ещё и неактуальны).
А уж какая там конкуренция среди аутсайдеров -- мало волнует тех, кому делать надо и чтоб работало, факт.
возможно, про ядро виндус не берусь утверждать
я хочу сказать люди хорошо знающие продукт (открытость не имеет значения) ценны. Кто более - сложный вопрос
> Сделав закрытый продукт вы можете сделать его:
> -дешёвым потому что платят все, издержки распределяются более равномерно.Вам бы Карла Маркса почитать насчет прибыли капиталиста.
Вот от чего конечная цена точно не зависит, так это от издержек на разработку.> В SaS продукте издержки распределяются ещё более равномерно по времени (помесячная например
SaS это не ПО, ПО в SaS может быть вполне бесплатным, а вот электричество, железо и персонал - нет.
> 2)Ваше конкурентное преимущество - ПО. сделав его открытым вы наплодите сильны конкурентов
> за свои деньги.Не сделав его открытым вы наплодите конкурентов на открытом ПО, потому что оно и его протоколы рано или поздно станет стандартом.
> Вот от чего конечная цена точно не зависит, так это от издержек
> на разработку.о, Иксперт По Экономике.
О ариска! Опять к экзаменам не допустили?
>> Вот от чего конечная цена точно не зависит, так это от издержек
>> на разработку.
> о, Иксперт По Экономике.Издержки не только на разработку, но и на рекламу,исследование рынка, и др.
В ближайшей перспективе цена зависит от спроса-предложения
в долговременной перспективе, когда смогут появиться конкуренты: завистит в основном от затрат.
>Не сделав его открытым вы наплодите
> конкурентов на открытом ПО,
>потому что оно и его протоколы рано или поздно станет стандартом.Если пользователей мало, они не крупные, то думать что все кинуться писать открытое ПО - ошибка.
Представь что одной компании понадобилась программа, специализированная под именно их бизнес. Вряд ли кто согласится писать под неё бесплатно. Компания зарабатывает деньги и ты не получишь ничего
>[оверквотинг удален]
> Когда опенсорс плохо работает
> 1) вы небольшая компания, Ваши клиенты - небольшие компании. которые не могут
> позволить держать штат программистов. Компаний-клиентов сравнительно мало(например
> потому что вы делаете специализированный продукт).
> Сделав закрытый продукт вы можете сделать его:
> -дешёвым потому что платят все, издержки распределяются более равномерно.
> В SaS продукте издержки распределяются ещё более равномерно по времени (помесячная например
> оплата). Ещё меньше затраты на администрирование.
> 2)Ваше конкурентное преимущество - ПО. сделав его открытым вы наплодите сильны конкурентов
> за свои деньги.Груг мой, складывается впечатление что вы много лет прожили в каком то заповеднике. В реальном мире все давно иначе. Комерческий софт пишут абы как только чтоб быстрее и за примерами ходить ненужно - win 2012. Опенсорс код вылизывается до идеального сотояния и время роли не играет - linux.
>Комерческий софт пишут абы
> как только чтоб быстрее и за примерами ходить ненужно - win
> 2012. Опенсорс код вылизывается до идеального сотояния и время роли не
> играет - linux.Это что в опенсорсе багов нет? или архитектура везде хорошая?
> Это что в опенсорсе багов нет? или архитектура везде хорошая?(устало) где мне взять исходные тексты винды, чтобы починить то, что достало и дописать то, чего не хватает? намёк ясен?
>> Это что в опенсорсе багов нет? или архитектура везде хорошая?
> (устало) где мне взять исходные тексты винды, чтобы починить то, что достало
> и дописать то, чего не хватает? намёк ясен?Исходные тексты винды защищены кучей патентов и не выкладывают их потому что стыдно ;) ...
Я себе вижу выгоду от разработки свободного ПО именно в коммерческой поддержке конечного продукта, а также в том, что некоторые модули открытого продукта могут быть закрыты и доступны за отдельную плату. Собственно, так многие и делают: пожалуйста, исходники открыты, делайте с ним все, что хотите, однако, нет доступного модуля кассира и т.д. Сможешь написать сам - ну и флаг тебе в руки и всенародное признание. Нет - мы продадим, не вопрос.
Отнюдь не маловажную роль тут играет и разделение ответственности за возможные сбои. Пример: некая крупная компания - оператор мобильной связи - заказывает другой компании СМС-центр. Исходный код ПО для продукта - открытый, можешь скомпилировать и использовать на свой страх и риск. Но кто же рискует, когда нагрузка на СМС-центр в часы наибольшей нагрузки достигает 1000, 2000 и более СМС в секунду при цене даже в 50 копеек за каждую? Поэтому заказывается готовый продукт с гарантией и поддержкой, а в контракте четко прописан так называемый SLA (Service Layer Agreement - cоглашение об уровне сервиса), например "при невостановлении сервиса в течение двух часов с момента открытия сервисного запроса первого приоритета - компании начисляется штраф в размере 10000 уе (сумма взята с потолка) за каждую последующую минуту простоя." За такую гарантию покупают и сам продукт, и все уровни поддержки, включая непосредственную поддержку команды разработчиков.
Вот вам и выгода за свободное ПО :-)
>У бесплатного ПО есть недостатки - нет мотивации делать (делать хороший продукт), особенно когда пользователей мало.Вообще не обосновано. Что значит нет мотивации? Если ты делаешь хороший продукт ты в любом случае получишь вознаграждение, оно может быть выражено в разных формах не всегда это сразу деньги.
Возьмем, например, Сысоева с Nginx? несмотря на бесплатность Nginx - это что плохой продукт? Сысоев на нем не заработал?
Будь Nginx изначально платный разве бы он взлетел? Я думаю никто бы про такой сервер не слышал даже.
Продукт, конечно, неплохой, но вот что там на нём Игорь заработал - это большой вопрос. Особенно если вспомнить сколько лет он над ним работал.
> У бесплатного ПО есть недостатки - нет мотивации делать (делать хороший
> продукт), особенно когда пользователей мало.Толстовато.
Такими постами вы на новый microsoft office баллов не заработаете.
Старайтесь лучше.
Вроде же очевидно - чтобы можно было поставлять софт as a service, за который пользователи будут платить, и который невозможно будет спиратить.
спиратить этот софт ещё проще, чем обычный
>Пользовательское ПО постепенно перестает быть локальным.об этом уже 20 лет болтают, как ПО все перестанет быть локальным, а оно не перестает, только твиттеры разные плодятся, да прочая развлекуха. И то, для мало-мальски популярных "веб-приложений" есть пачка standalone-клиентов.
Лет 20 назад? То есть это мне показалось что пропускные способности интернетов только недавно доросли до того что бы можно было нормальный software as a service поставлять? И то далеко не везде, о чём говорят пачки standalone-клиентов для мало-мальски популярных "веб-приложений".
Это, конечно, хорошо, но браузер-то тут зачем? Интернет это не только WWW.
> Пользовательское ПО постепенно перестает быть локальным....ведь корпорасы любят вендорлок :)
> Хочется ...Кому хочется?
Получится очередной Flash с предсказуемой судьбой
ваистену
Почему не очередная Java?
Потому что Java при всех её недостатках всё-таки портирована на практически все аппаратные платформы. LLVM же на что-либо кроме x86_XX и ARM портировать так и не удосужились, хоть авторы и уверяют, что при их архитектуре написание новых бэкендов легче, чем для gcc. Так что PNaCl — конкурент именно для Flash.
А сейчас по факту больше ничего и нет - во всяком случае такого, чтобы был смысл подобные приложения гонять. Ну где-то там призрак мипсов бродит. Остальное - вообще серверная экзотика.
Потому что C forever.
Возможные причины за
1)безопасность
2)автоматическое обновление
3)платформонезависимость
> Возможные причины за
> 1)безопасностьИ каким образом? То вы локально работаете, а то посылаете данные куда попало по (возможно) недоверенному каналу.
> 2)автоматическое обновление
Невозможность оставить себе старую версию из-за любви разработчика к выпиливанию нужных функций.
> 3)платформонезависимость
Ну это когда как. Но в принципе сойдёт за преимущество.
А сейчас я вам кину минусы.
1)приватность (ну её вообще нет)
2)невозможность проверить программу с которой работаете
3)зависимость от одного вендора
4)заведомо неудобный интерфейс (ну не делали браузер для этого)
5)тормознутость
6)в любом случае придётся платитьК self-hosted решениям относится не всё, но они мало распространены.
> посылаете данные куда попало по (возможно) недоверенному каналу.Какие данные? /etc/passwd ?
> Невозможность оставить себе старую версию
Чайники с Flash этим страдают.
> зависимость от одного вендора
С чего взяли?
> заведомо неудобный интерфейс
Видно, что вы в теме ;-)
> тормознутость
Ну, ерунду-то уже хорош пороть?
> в любом случае придётся платить
Если соберетесь, я дам номер счета ;-)
> Какие данные? /etc/passwd ?Да все, с которыми работаю. Они всегда у меня на компьютере, а вы предлагаете мне всё держать где попало. Ну, предложите мне ещё облачный офисный пакет, текстовый редактор и графический редактор.
> Чайники с Flash этим страдают.
Я сейчас не о тех приложениях, где безопасность критична.
> С чего взяли?
Ну... Дайте мне аналог Google Docs...
> Видно, что вы в теме ;-)
Ага, я пользователь. Я в теме. Мы ведь интерфейс не для себя создаём, а для пользователя. А делать в окне браузера ещё и окно программы... Ну вы поняли.
> Ну, ерунду-то уже хорош пороть?
Хмм... Последний i7? Не у всех последние компьютеры. Тут даже "в два раза медленнее нативных" критично для заведомо тяжёлых приложений.
>> в любом случае придётся платить
Я боюсь вы не поняли. Ну вот я использую у себя LibreOffice. Я ничего никому не плачу. В web-приложениях мне надо либо оплачивать подписку, либо смотреть рекламу - хостинг вам никто бесплатно не даст.
> Да все, с которыми работаю.Ни к каким данным юзера на диске у этих программ доступа нет. Они ограничены песочницей.
> А делать в окне браузера ещё и окно программы... Ну вы поняли.
Программу на HTML можно отобразить в отдельном окне и без "окна браузера"
Native Client can't run any off-the-shelf program compiled for an off-the-shelf operating system. The program must be compiled to comply with Native Client's rules. The details vary on each platform, but in general, the untrusted program:
Must not attempt to use certain forbidden instructions, such as system calls.
Must not attempt to modify its own code without abiding by Native Client's code modification rules.
Must not jump into the middle of an instruction group, or otherwise do tricky things to cause instructions to be interpreted multiple ways.
Must use special, strictly-defined instruction sequences to perform permitted but potentially dangerous actions. We call these sequences pseudo-instructions..., we apply a load-time validator that disassembles the program. The validator either proves that the program complies with our rules, or rejects it as unsafe.
> Ни к каким данным юзера на диске у этих программ доступа нет.
> Они ограничены песочницей.и, получается, на 100% бесполезны. хотя, конечно, если «а у нас все документы в гуглодоках, почта в гугломыле» и так далее… но мы же о людях говорим, а не о даунах.
> Native Client
nacl != pnacl. в nacl они попытались сделать верификатор для x86 — как у жабы для байткода. не знаю, был ли там ещё и виртуализатор, но если не было — то это epic fail. судя по требованиям к коду — не было.
>> Ни к каким данным юзера на диске у этих программ доступа нет.
>> Они ограничены песочницей.
> и, получается, на 100% бесполезны. хотя, конечно, если «а у нас все документы в гуглодоках, почта в гугломыле» и так далее… но мы же о людях говорим, а не о даунах.Они так же полезны как и другие js программы из браузера. Можешь не пользоваться
>> Native Client
> nacl != pnacl. в nacl они попытались сделать верификатор для x86 — как у жабы для байткода. не знаю, был ли там ещё и виртуализатор, но если не было — то это epic fail.Epic fail что ты не понимаешь, что виртуализатор не нужен, и документацию не осилил.
> Они так же полезны как и другие js программы из браузера. Можешь
> не пользоватьсяне пользуюсь.
> Epic fail что ты не понимаешь, что виртуализатор не нужен, и документацию
> не осилил.epic fail у того, кто не понимает, что виртуализаторы разные бывают. вида libvx32, например — которое «по сути» виртуализатор, а на практике — не пользуется почти механизмами виртуализации, и совсем чуть-чуть — трансляции.
в таком случае epic fail в том что документацию не осилил.Второй epic fail в том что ты думаешь, что ты умный, а в гугле идиоты. И это не осиливший документацию , а-ха-ха.
а я, кажется, русским по опеннету писал, что не знаю, есть ли виртуализатор. но чукча не читатель.
> Да все, с которыми работаю.Шлите по доверенному.
> Я сейчас не о тех приложениях, где безопасность критична.
Тогда зачем говорите про безопасность?
> Ну... Дайте мне аналог Google Docs...
Хорошо, хоть, не AutoCAD ;-)
>> Видно, что вы в теме ;-)
> Ага, я пользователь. Я в теме. Мы ведь интерфейс не для себя
> создаём, а для пользователя. А делать в окне браузера ещё и
> окно программы... Ну вы поняли.Кнопочку "раскрыть на полный экран" попросите.
> Хмм... Последний i7? Не у всех последние компьютеры. Тут даже "в два
> раза медленнее нативных" критично для заведомо тяжёлых приложений.Вы с чем сравниваете? Пользуйтесь такими локально.
>>> в любом случае придётся платить
> Я боюсь вы не поняли. Ну вот я использую у себя LibreOffice.
> Я ничего никому не плачу. В web-приложениях мне надо либо оплачивать
> подписку, либо смотреть рекламу - хостинг вам никто бесплатно не даст.Либо изучаете и делаете сами (интернет, вроде, есть у вас), либо платите. Это нормально.
Пропажа /etc/passwd не страшно, а вот если кошелек webmoney или файл с паролями интернет ресурсов, секретные чертежи и т.д., то это уже проблема.
безопасность - это не надо запускать непонятную программу на локальном компьютере. может она содержит вирус? крадёт данные?
>То вы локально работаете, а то посылаете данные
>куда попало по (возможно) недоверенному каналу.Куда посылаются данные - видно из адресной строки браузера. Скорее это недостаток если загружается исполняемый файл.
> безопасность - это не надо запускать непонятную программу на локальном компьютере. может
> она содержит вирус? крадёт данные?
> >То вы локально работаете, а то посылаете данные
> >куда попало по (возможно) недоверенному каналу.
> Куда посылаются данные - видно из адресной строки браузера. Скорее это недостаток
> если загружается исполняемый файл.Зачем непонятную? Приведите пример когда мне нужно запускать непонятную программу, пожалуйста. Либо всё работает через браузер когда оно нужно - например форум или личный кабинет, либо использует открытые стандарты - к ним есть нормальные доверенные клиенты. Ну а если что-нибудь сильно важное и сложное - тогда обычно есть приличные программы, которым доверяют и для которых репутация важнее, чем воровство данных. Особенно, если она открытая.
> Зачем непонятную? Приведите пример когда мне нужно запускать непонятную программу, пожалуйста. Либо всё работает через браузер когда оно нужно - например форум или личный кабинет, либо использует открытые стандарты - к ним есть нормальные доверенные клиенты. Ну а если что-нибудь сильно важное и сложное - тогда обычно есть приличные программы, которым доверяют и для которых репутация важнее, чем воровство данных. Особенно, если она открытая.Например, всё, что решалось в Винде с помощью ActiveX: тяжёлые клиенты для корпоративных приложений. Или работа с ip-камерами (сейчас с этим полегче, видео стало мейнстримом) из браузера раньше требовала установки ActiveX плагина или QuickTime.
Корпоративные - это self-hosted, речь не о них.
прямо сегодня было: я заказал из-за границы товар, спрашиваю
-на каком сайте можно отследить, когда его доставят?
мне отвчают:
-Здравствуйте! Для отслеживания посылки используйте эту программу, она лучше чем сайты для отслеживания.
и дают ссылку на программу.
Что за программа я не знаю, про репутацию не знаю, исходного кода нет, да и если бы был то не стал бы тратить время (неделя? месяц?) на проверку.Воспользовался сайтом.
> Воспользовался сайтом.Вот и пользуйтесь сайтом. Это не такая крупная задача, чтобы писать отдельное приложение, вообще можно было через RSS пункты прибытия сделать.
Про пихание приложений куда не надо я не говорю, можно ещё для каждого сайтика своё приложения делать (как сейчас на Android), но это очень странная идея.
я рассказываю почему я не воспользовался программой.
из-за безопасности, а очень хотелось - у неё функциональность больше чем у сайтов.
> я рассказываю почему я не воспользовался программой. из-за безопасности, а очень хотелось - у неё функциональность больше чем у сайтов.т.е. про небезопасность сайтов вы не знаете?
> т.е. про небезопасность сайтов вы не знаете?безопасность безопасности рознь.
Я буду уверен что мой диск не отформатируют, трояна мне не поставт, мои документы не украдут, деньги будут на месте.
Если я установлю неизвестную мне программу - всё это возможно.
>> Возможные причины за
>> 1)безопасность
> И каким образом? То вы локально работаете, а то посылаете данные куда
> попало по (возможно) недоверенному каналу....
Вы слишком узко (и неправильно) мыслите - под безопасностью вероятно имелись ввиду не только исключение утечек Ваших драгоценнейших данных. Даже, вернее, это там и не должно преследоваться, это уже решается технологиями, которые будут построены поверх этого pnacl (ведь язык C/C++ и стандартная библиотека не гарантирует исключение утечек Ваших данных - так же рассматривайте и этот native client). Никто Вам не мешает локально эти приблуды запускать (Вы же можете открыть локально хранящуюся HTML-ку с ява скриптами - так же будете открывать html-ку с каким-нибудь BASE64-кодированным куском pnacl-кода). А вот что там за код - ну, это уже как с обычным экзешником, скачанным из сети - запускаешь на свой страх и риск. И уверен, выполнение pnacl/nacl в браузере можно будет отключить, как отключается выполнение ява-скрипта.
Так вот, под безопасностью тут вероятно имелось ввиду еще и то, что вместо выполнения в какой-то "песочнице" нативного машинного кода здесь работает pnacl-транслятор с LLVM-биткода, в котором наверное легче контролировать всякие выходы за границы, обращения к освобожденной памяти и многое другое.
ага, технология ява-апплетов один-в-один должна была решать точно эти же задачи. И можно посмотреть бюллетени безопасности по яве, особенно за последние несколько лет - получилось хреновато. Разве что остается надеяться, что у гугловцев архитекторы/кодеры по-лучше окажутся
У гугловцев архитектура принципиально лучше. Но всё равно веб-приложения в нынешнем виде - зло.
> Что мешает это сделать отдельно от браузера. Зачем ЭТО в браузереЭто же очевидно - потому что сейчас пошел тренд делать операционки на базе браузера (или в браузере) - всякие хромОС, мозиллыОС и т.д. Вот они и раширяют возможности браузеров, а не чего-то вне браузера
>... Зачем ЭТО в браузере?Штобы верусы были платформонезависимы. Не?
>> производительность выполнения таких программ существенно повышается и может отставать от нативных приложений примерно в два разаУ меня возник когнитивный диссонанс: "производительность выполнения таких программ существенно повышается" и "может отставать от нативных приложений примерно в два раза"
>>> производительность выполнения таких программ существенно повышается и может отставать от нативных приложений примерно в два раза
> У меня возник когнитивный диссонанс: "производительность выполнения таких программ существенно
> повышается" и "может отставать от нативных приложений примерно в два раза"Т.е. другие технологии тормозят еще больше, чем в 2 раза, что ж тут непонятного?
переизобрели ява-плагин для выполнения ява-апплетов в браузере. Только язык программирования другой. Осталось подождать и посмотреть, какое кол-во уязвимостей будут находить в pnacl-трансляторе - такое же, как в ява-плагинах или больше.
уязвимостей будут находить значительно меньше, так как архитектура проще.
Гугл кроме поиска и почты ничего хорошего так и не выродил. Вот бы и оставались там.
Google Maps.
Maps не уникальны. Я почти полностью отказался от гугла, единственное для чего замены не нашел это поиск, реально аналоги не дотягивают.
> Maps не уникальны. Я почти полностью отказался от гугла, единственное для чего
> замены не нашел это поиск, реально аналоги не дотягивают.Попробуйте метапоиск типа nigma.ru. Их вообще много, причём с крутым уровнем приватности, но nigma единственная русский более или менее поддерживает.
Ок, спасибо. Попробую nigma. Пробовал duckduckgo - не устроило.
> Ок, спасибо. Попробую nigma. Пробовал duckduckgo - не устроило.DuckDuckGo - очень крутой поисковик, но не замена Google, это другая парадигма поиска.
> Google Maps.OSM намного детальнее, ога. Там где гугля видит один зеленый прямоугольник, OSM покажет дороги, грунтовки, тропинки, разнообразные объекты и прочая. Какая карта полезнее - догадайтесь сами.
обижаешь, попробуй банальный зонд поставить всем жителям планеты, да чтобы они еще и радовались и рекомендовали его другим. Удачи тебе что либо серьезное сделать ни разу не воспользовавшись гуглом и не попасть в его логи для аналитики. А это дорого стоит.
Ребята! Первый вопрос: а отдельно от браузера??? Неужели плохо иметь бинарник, написанный на нативщине типа плюсов, который бы работал на любой ОС и процессоре?Далее, тот же asm.js - тоже "может отставать от нативных приложений примерно в два раза".
> Ребята! Первый вопрос: а отдельно от браузера??? Неужели плохо иметь бинарник, написанный
> на нативщине типа плюсов, который бы работал на любой ОС и
> процессоре?зачем? исходник всегда можно пересобрать под другую архитектуру. а проблемы проприетарщиков — это проблемы проприетарщиков.
> — это проблемы проприетарщиков.Проприерасы очень хотят чтобы их проблемы кто-то другой на себя брал. Хаха, размечтались то.
Теперь майнить биткоины и перебираь пароли на стророне жертв станет ещё проще !
> Теперь майнить биткоины и перебираь пароли на стророне жертв станет ещё прощеРеквестирую доступ к opencl! :)
Нормально. Как бы ни кукарекали аналитеги.
Как будто аналитиков кто-то слушает ... Разработчики Google, думаю, даже не подозревают об их существовании.
> Как будто аналитиков кто-то слушает ...Правильно, нефиг. Настоящий баран понимает что его столько времени кормили не просто так только когда из него уже собираются варить суп.
Asm.js будет работать заведомо хуже, чем NaCL. Нативный код выиграет даже у самого быстрого интерпретируемого кода. Дума, нужно добавить в NaCl простой доступ к DOM, и возможность взаимодействовать с Js. А затем нужно запилить поддержку сабжа во все браузеры.
asm.js действительно будет работать заведомо хуже - но не потому что он интерпертруемый код (это, вообще говоря, байткод в виде, обратно совместимом с JS, и его основная идея - как раз компилироваться в натив), а потому что байткод там крайне хилый.
на самом деле, native client можно считать развитием той же идеи. Код на C/C++ транслируется в asm.js емскриптеном, использующим для этого LLVM, а гугл пошел еще дальше - встроил LLVM напрямую в браузер и избавился от промежуточного слоя в виде яваскрипта
Dmitry пишет и под ником Sylvia тоже.
Да всё равно PNaCl будет гораздо быстрее, чем Firefox + Asm.js.
> Да всё равно PNaCl будет гораздо быстрее, чем Firefox + Asm.js.это почему же?
PNaCl транслирует ассемблерный код в машинный, перед выполнением.
Asm.js тоже транслирует ассемблерный код в машинный перед выполнением.
PNaCl расчитан на разработку www-приложений с использованием C/C++ .
Asm.js тоже расчитан на использование C/C++ .
PNaCl работает с памятью напрямую (использование "опасных" указателей, без задействования сборщика мусора).
Asm.js тоже работает с памятью напрямую ("опасные" указатели), без задействования сборщика мусора.
с чего вдруг PNaCl должен значительно опередить Asm.js ?
разработчики NaCl уже писали (хвастались) о том что NaCl отстаёт по производительности от native-кода примерно в полтора раза. PNaCl будет отставать ещё больше.
"В отличие от Native Client, приложения транслируются в специальное подмножество языка JavaScript"
> "В отличие от Native Client, приложения транслируются в специальное подмножество языка
> JavaScript"специальное подмножество языка Javascript, которое к Javascript имеет такое же отношение -- как подмножество <нефтепровод> относится к множеству <транспорт>
хоть <нефтепровод> и является <транспортом> -- но всё равно фраза "покататься на нефтепроводе" звучит как-то странно :-)
напиши парочку приложений на Asm.js и узнаешь -- почему в слове "Asm.js" - больше "Asm" чем ".js" :)
JavaScript язык высокого уровня, значит медленее и ресурсоемкоснее
> JavaScript язык высокого уровня, значит медленее и ресурсоемкоснеевот только -- Asm.js -- это НЕ Javascript!
и уж точно НЕ высокоуровневый.
>> JavaScript язык высокого уровня, значит медленее и ресурсоемкоснее
> вот только -- Asm.js -- это НЕ Javascript!
> и уж точно НЕ высокоуровневый.значит, без отдельной поддержки браузером не работает? гыгы. тогда не нужен.
а, таки работает и без спецкода? опа, это javascript тогда. пичалька.
пичалька у тебя лично, что ты от браузеров шарахаешься.
прими антиупорина, пожалуйста.
> PNaCl будет отставать ещё больше.не больше, а на столько же.
> Asm.js тоже работает с памятью напрямую ("опасные" указатели)
пользовательское ПО напрямую работать не может.
Вообще сравнение по скорости идиотское, если в Nacl нет доступа к DOM, а в Asm.js есть.
> пользовательское ПО напрямую работать не может.ой, ну подумаешь что я вместо двух слов "виртульная память" написал просто одно слово "память"..
может мне ещё и слово "цифровой" добавлять везде?.. и слово "компьютерный"? :-)
> в Nacl нет доступа к DOM, а в Asm.js есть.
в NaCl -- ЕСТЬ доступ к DOM (это сразу демонстрируется в самых первых примерах).
более того -- гуглоразработчики при демонстрации NaCl на конференциях сразу так и говорили что мол NaCl нужно использовать лишь как вычислительный модуль, а ввод-вывод -- реализовывать через DOM.
Native Client будет быстрее Firefox с Asm.js, потому что за хромом стоит корпорация Google, а за Firefox - маленькая компания Mozilla.
У Mozilla нет ни денег ни возможностей, чтобы угнаться за Chrome.
Если бы вы внимательно следили за всеми новостями об этих браузерах, тогда и сами сделали бы такой вывод.
Пусть Mozilla хоть тысячу раз скажет, что их браузер "самый быстрый в мире", как у них это было написано на сайте, но в реале до Chrome им далеко и расстояние только увеличивается с каждой новой версией обоих браузеров.
> Native Client будет быстрее Firefox с Asm.js, потому что за хромом стоит
> корпорация Google, а за Firefox - маленькая компания Mozilla.
> У Mozilla нет ни денег ни возможностей, чтобы угнаться за Chrome.
> Если бы вы внимательно следили за всеми новостями об этих браузерах, тогда
> и сами сделали бы такой вывод.Вывод: афтар - пора идти спать завтра в школу.
> Пусть Mozilla хоть тысячу раз скажет, что их браузер "самый быстрый в
> мире"Пусть микрософт "хоть тысячу раз скажет, что их" виндовс "самый быстрый в мире" ...
в http://asmjs.org/spec/latest/ никаких упоминаний указателей на переменные нет. Только function pointers упомянуты.> в NaCl -- ЕСТЬ доступ к DOM
не прямой
C++ code cannot directly manipulate the DOM. however, the NaCl module can use the PostMessage interface to send strings to JavaScript code, which can then do the actual DOM manipulation. [ 'message' event, which fires when the Native Client module uses the PostMessage() method]
https://developers.google.com/native-client/devguide/tutorial
> в http://asmjs.org/spec/latest/ никаких упоминаний указателей на переменные нет. Только function pointers упомянуты.[quote]
The asm.js programming model is built around integer and floating-point arithmetic and a virtual heap represented as a typed array. While JavaScript does not directly provide constructs for dealing with integers, they can be emulated using two tricks:integer loads and stores can be performed using the typed arrays API; and
integer arithmetic is equivalent to the composition of JavaScript's floating-point arithmetic operators with the integer coercions performed by the bitwise operators.As an example of the former, if we have an Int32Array view of the heap called HEAP32, then we can load the 32-bit integer at byte offset p:
HEAP32[p >> 2]|0
The shift converts the byte offset to a 32-bit element offset, and the bitwise coercion ensures that an out-of-bounds access is coerced from undefined back to an integer.
...
[/quote]>> в NaCl -- ЕСТЬ доступ к DOM
> не прямой
> C++ code cannot directly manipulate the DOM. however, the NaCl module can use the PostMessage interface to send strings to JavaScript code, which can then do the actual DOM manipulation.ну.. доступ к DOM через PostMessage . всё нормально. не через libastral же будет доступ из низкоуровневого C/C++ в высокоуровневую среду.
а кстате, как ты вообще себе представляешь -- каким образом ты будешь на Asm.js НАПРЯМУЮ из C/C++_кода_(emscripten) выполнять операции с DOM-деревом?
Google NaCl находится в чуть более дурацком положении чем Mozilla Asm.js -- по отношению к DOM -- по тому что NaCl примотан ПРОВОЛОКОЙ (на соплях) через <embed> к HTML-страничке. но в принципе -- в любом случае -- писать C/C++ программы для выполнения их хоть на NaCl хоть на Asm.js -- и НЕ предназначено для большого удовольствия.
Дружище, сдаётся нам, ты вообще не понимаешь о чём говоришь.
Ну я так полагаю Java-"псевдопрограммисты" (экономисты, биологи, физики, жрущие хлеб программистов) могут начинать заказывать заупокойные и потихоньку искать новую работу...
Я десять лет ждал поддержки C/C++ в браузерах.