Они развивают. Делают самые что ни на есть передовые вещи — развивают графический стек, шейдеры, оптимизируют stage 3d. Никто не виноват, что разработчики не выживают из flash player того, что он может на самом деле, как это выжимают хардкорные студии в гейм деве на C\C++.
И они будут адово тормозить, в отличие от реализации на flash player, где отлично зарекомендованный stage 3d много лет оптимизируется, в отличие о Web GL.
Да, насколько мне известно, Adobe завис где-то в ступоре между «продолжать делать adobe air» как плагин, или развивать трансляцию в html 5 и web gl. Пока web gl адово тормозит, они не могут поставить на эту ставку. А плагин у них прекрасно развивается, последние версии stage 3d работают все оптимизированнее и лучше. Получается, что против них сами корпорации, конкуренты — ведь web gl точить они не торопятся, не давая flash-у вылезти через html5 web gl, а в плагин забивают гвозди. Складывается ощущение, что Google намерен подождать, пока action script полностью сдаст свои позиции в вебе (в mobile, desktop action script & haxe чувствуют себя хорошо), а затем резко оптимизирует web gl, чтобы выйти победителем.
:)
Как насчет unity web player? silverlight? Почему пропаганда идет против flash, но не против них? Это такие же плагины с C\C++ кодом внутри, такие же черные ящики, способные навести в моей Windows одному Тюксу известные ужасы, будучи в руках плохих разработчиков.
Это по поводу уязвимостей.
По поводу скорости. Web GL безбожно тормозит. Вы можете не верить мне, но проведите серию тестов на демо, используя ноутбуки с интегрированными видеокартами, с дискретными видеокартами, десктопы с видеокартами старых поколений. А flash player летает на максимальном fps, не нагружая процессор и видеокарту. При условии, что разработчики использовали stage3d как положено, и огранизовали внутреннюю кухню кода в самых лучших традициях гейм дева на C\C++.
Это практически политика. Они могли сделать галочку, опцию — но нет, по умолчанию они говорят как пользователям лучше. Flash Player прекрасная технология, и как любую технологию, в плохих руках ее можно использовать во вред. Думаете на html 5 нельзя сделать тормозящих скриптов, кривых фреймов, монструозных проигрывателей, шпионов? Это больше манипуляция рынком, нежели забота о пользователях. Очень жаль что я так привык к Chrome, и у него нет качественного форка.
Вот к примеру я делал на C++ raii аллокатор памяти. Само собой ни ffmpeg, ни png\jpg библиотеки ничего о нем не знали, но это не мешало мне писать врапперы под эти библиотеки, чтобы быть спокойным что утечек нет.
Про выход очень просто. Гейм-дев использует свои технологии, никак не коррелирующие с рынком. Где может еще потребоваться глубокий OpenGL\DirectX API, Lua, игровые движки и библиотеки? В других областях другие библиотеки, и на выходе из гейм дев индустрии мы вынуждены включаться в другие области практически с нуля
Про стремность, не знаю, это скорее ИМХО, но гейм дев постоянно ставит принципиально новые задачи, которые не решить старыми способами. Сколько не тренируйся и не набивай руку, приходит очередной менеджер с фичами, которые ему кажутся просто эволюцией старой, а по механике и оптимизации графики нужно изворачиваться заного. Стресс, овертаймы, неприятный осадок. :)
Нарушением иммутабельности состояния. Первое присвоение это _не_ изменение состояния, это его _создание_. Грубо говоря, все ваши переменные должны быть const, выглядеть как const и вести себя как const. Как в математике :)
Можно пример синглтона, который точно точно точно никогда никогда не станет классом?
Вот вам пример из недавней жизни. На изоморфном сайте есть загрузчик, который грузит первую страницу сайта. Сделаю его объектом в js, подумал я. Сделал, и понял что не могу сразу извлекать элементы через jQuery, потому что страница еще не загружена. document.ready? нет, загрузчик обязан появиться до того, как будет загружен html, вдруг страница — простыня на 2mb. Хорошо, значит нужно инициализировать загрузчик после его html представления. Что же, заведем функцию init? Но зачем мне лишняя сущность init, если я могу сделать класс, и после определения html элементов загрузчика вызвать var preloader = new Preloader. И все сразу хорошо, несмотря на то что у нас по идее preloader — типичный синглтон.
Да, можете. Чистые функции и иммутабельные данные лишь часть парадигмы функционального программирования. Дело в том, что в данном случае вы используете часть парадигмы — чистые функции, но при этом внутри функции императивны. Ваш вопрос должен быть уровнем выше — является ли код полностью функциональным, и тогда если внутри функции есть изменения локальных состояний, ответ будет нет.
Комитет далек от желаний рынка и простых разработчиков. Он хочет чистый язык, годами выписывать стандарты. Да и незачем обращаться в комитет, если можно разработать свой транслятор. Увы, все упирается в время и ресурсы.
Как насчет unity web player? silverlight? Почему пропаганда идет против flash, но не против них? Это такие же плагины с C\C++ кодом внутри, такие же черные ящики, способные навести в моей Windows одному Тюксу известные ужасы, будучи в руках плохих разработчиков.
Это по поводу уязвимостей.
По поводу скорости. Web GL безбожно тормозит. Вы можете не верить мне, но проведите серию тестов на демо, используя ноутбуки с интегрированными видеокартами, с дискретными видеокартами, десктопы с видеокартами старых поколений. А flash player летает на максимальном fps, не нагружая процессор и видеокарту. При условии, что разработчики использовали stage3d как положено, и огранизовали внутреннюю кухню кода в самых лучших традициях гейм дева на C\C++.
Про стремность, не знаю, это скорее ИМХО, но гейм дев постоянно ставит принципиально новые задачи, которые не решить старыми способами. Сколько не тренируйся и не набивай руку, приходит очередной менеджер с фичами, которые ему кажутся просто эволюцией старой, а по механике и оптимизации графики нужно изворачиваться заного. Стресс, овертаймы, неприятный осадок. :)
Вот вам пример из недавней жизни. На изоморфном сайте есть загрузчик, который грузит первую страницу сайта. Сделаю его объектом в js, подумал я. Сделал, и понял что не могу сразу извлекать элементы через jQuery, потому что страница еще не загружена. document.ready? нет, загрузчик обязан появиться до того, как будет загружен html, вдруг страница — простыня на 2mb. Хорошо, значит нужно инициализировать загрузчик после его html представления. Что же, заведем функцию init? Но зачем мне лишняя сущность init, если я могу сделать класс, и после определения html элементов загрузчика вызвать var preloader = new Preloader. И все сразу хорошо, несмотря на то что у нас по идее preloader — типичный синглтон.