Ваше приложение медленное? Это потому, что наша цивилизация гибнет

С Вашего позволения, пускай и немного в философской оболочке, я бы хотел продолжить тему «Почему мобильные веб приложения такие медленные?», которая уже засветилась на Хабре через другой пост: «HTML5 в мобильной разработке — что выбрать?».

Перевод поста «Your App Is Slow Because Our World Is Ending».

image
Как обычно, на этой неделе, исследуя Интернет, я наткнулся на взрывающий мозг пост, который возможно станет предвестником роковых событий. Я имею ввиду превосходную статью Дрю Кроуфорда «Почему мобильные веб приложение такие медленные?». Она объемная и очень содержательная, но с ней определенно стоит ознакомиться, если ваш уровень познаний находится на достаточно высоком уровне, чтобы проследить за идеей автора.

Если кратко, то его идея звучит приблизительно так: HTML5 приложения будут значительно уступать родным приложениям не только следующие год или два, но и в течение следующих 5-10 лет, вследствие существенных технических ограничений, присущим мобильным платформам. У меня было пару замечаний к некоторыми из его аргументов, но он убедил меня, что две статьи, которые я написал два года назад, в которых я призываю IOS к сборке мусора и утверждают, что HTML5 будет править всем через несколько лет, возможно, должны быть пересмотрены в свете новых доказательств.

Хорошо, хорошо, я скажу это: я ошибался. Но, справедливости ради, следует отметить, что в моем призыве по «сборке мусора», я обрел хорошую компанию в лице самого бога программирования — Джона Кармака. «Хорошая статья Почему мобильные веб...?. Я склонен думать, что сборка мусора в некоторых случаях оправдана даже для игр на больших платформах», — пишет Кармак . Но я также уверен, что HTML5 не может быть подходящим решениям для любого действительно нетривиального IOS приложения ни сейчас, ни в ближайшие годы; это положение мне кажется верным и для других мобильных ОС.

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


Из раннего Кроуфорда: «Решение очевидно! Просто сделайте ARM в 10 раз быстрее, и этого будет достаточно, чтобы конкурировать с x86, и тогда мы увидим мгновенное выполнение JS! Хотите соглашайтесь, хотите нет, это все зависит от вашей веры в закон Мура на фоне мощностных возможностей мобильных чипов с 3-унциевыми батареями».

Эта цитата бросилась мне в глаза, потому что не так давно я заметил всплеск новостей, которые предупреждали, что «Мы отстали от Закона Мура, с тех пор как Intel уперлась в „Стену мощности“ (The Power Wall) еще в 2005 году», — цитируя Линли Гвенапп.

Не будет преувеличением, если я скажу, что закон Мура был единственной наиболее важной и мощной направляющей координатой нашей цивилизации в течении последних пятидесяти лет. По той причине, что „технологии, нравится нам это или нет, являются экономической и культурной доминантой нашего времени“. Так вроде бы ничего плохого в этом и нет…

Но спросите AMD, спросите Broadcom; значительное количество доказательств, кажется, указывают, что за последние несколько лет головокружительной экспоненциальный рост вычислительной мощности, который создал индустрию высоких технологий, какой мы ее знаем, и изменил весь мир и жизнь каждого отдельного человека… наконец замедляется.

Конечно, люди неоднократно предсказывали его окончание в течение десятилетий, и каким-то образом тот рост мощностей продолжал себе расти, не обращая внимания на прогнозы. Но теперь, кажется, мы попали в ловушку между Сциллой тепла и рассеиваемой мощности на одной стороне и Харибдой фундаментальных квантовых ограничений с другой стороны. Хотя в данный момент и обсуждаются различные инновации, и некоторые из них на самом деле могут удаться, давайте не будем забывать про первоначальную формулировку закона Мура, где говорится о „количестве компонентов в интегральной схеме при минимальных затратах/стоимости“. Кажется разумным относится скептически к новым подходам/технологиям, которые вряд ли дадут нам подобное соотношение цены и качества, которое мы привыкли ожидать.

Мы привыкли думать, что каждые несколько лет технологии становятся на порядок быстрее/меньше/дешевле, — но на самом деле, когда вы остановитесь и подумайте об этом серьезно, это может показаться вам невероятно причудливым и сумасшедшим. Неограниченный экспоненциальный рост должен когда-то закончиться, по определению; и это, когда это произойдет, не станет для нас большим ударом, но все же это нас удручит. Мы не врежемся в стену, мы просто… начнем… медленно… терять… скорость. И мы заметим, это произойдет в первую очередь на большинстве аппаратных устройств с ограниченными возможностями, то есть на наших телефонах.

После того, как мы попадем в историю, я думаю, нашу эпоху назовут „эрой Мура“. Сейчас мы, возможно, являемся свидетелями начала конца. Это не значит, что прогресс остановится; даже в худшем случае, ударная волна от пятидесяти лет стремительного технического роста, как эхо, отразится на всем человечестве и всем, что мы будем делать в течение еще нескольких десятилетий. И еще вполне возможно, что Рэй Курцвейл и сингуляритаристы правы, и что закон Мура будет продлен или заменен чем-то еще более безумным. Но также возможно, что мы, наконец, подойдем к концу наиболее быстро меняющейся эры в истории и к будущему человечества.

Если так, то, возможно, новые поколения будут оглядываться на исторический период с 1963 по, ну, допустим сегодняшний день, и вздыхать тоскливо: „Наверное, это было самое захватывающее время во всей истории человечества“. Шутка, конечно. Что мы можем знать о будущем? Но все же, на всякий случай, если это конец, давайте сделаем что-нибудь такое, после чего о нас в будущем будут вспоминать только в хорошем тоне.

[от переводчика] Наткнулся на интересную статью по этому поводу Закон Мура против нанометров. Может быть очень полезна тем, кто хочет вникнуть в эту тему и поспорить с автором топика.
Поделиться публикацией

Комментарии 75

    +4
    «новые поколения будут оглядываться на исторический период с 1963 по, ну, допустим сегодняшний день, и вздыхать тоскливо: „Наверное, это было самое захватывающее время во всей истории человечества“»

    Что-то мне подсказывает, что так и будет.
      0
      Скептиков не любят на хабре, бро.
        +2
        любят
          0
          Какой-то неправильной любовью.
            +1
            В итоге, любителей скептиков и нелюбителей скептиков примерно равное колличество (рейтинг коммента =0). Интересно, кто же победит?
            +1
            Неоправданный оптимизм — тоже плохо. Вообще любые крайности плохо. По информации, которой я располагаю сейчас, мне очевидно, что все темпы развития начнут спадать со временем. Подобное ведь что-то уже было в 19 веке, тоже очень много чего нового и интересного появилось. А что потом имеем в начале двадцатого века?
            • НЛО прилетело и опубликовало эту надпись здесь
                +1
                Я имею в виду не крайне узкую направленность, а какое-то развитие охватывающее более широкие слои населения. Ведь под «потомки будут думать что это было самое захватывающее время в истории человечества» явно это не подразумеваются какие-то эксперименты британских ученых в лабораториях, а нечто, к чему имеют доступ много людей. Вы считаете очень интересным «СТО, кванты, строение атома, радиоактивность»? Я не говорю про полезность, а именно Вам это интересно?
                Предвидя, что просто чтоб со мной поспорить Вы отвечаете — «Да», скажу, что под интересом я подразумеваю то, чему Вы считаете нужным посвятить основное свое время. Иначе если программируете, но «кванты, атомы» интереснее, то как-то печально выходит.
                  +3
                  Резерфорд — 1905 год — открытие планетарной структуры атома.

                  Атомная энергетика за каких-то 50 лет, несмотря на все споры и т.д., отхватила 3% мировой энергетики, и эта цифра будет только расти.

                  Фон нейман — изобретение современной архитектуры компьютера — создание ЭВМ, без которых сегодня не обходится ничего. Хотите сказать, что электричеством и «компьютером» пользуются одни британские ученые в лабораториях?..

                  И это только самые яркие исследования. Сколько всего было обнаружено в химии, биологии, экономике…
                    +1
                    Мы сравниваем лишь темпы развития. В девятнадцатом веке темпы были более захватывающими. Понятно что в 20 веке будет что-то новое и захватывающее, но так ли много как в 19? И не забывайте, что это «захватывающее» часто означает лишь то, насколько оно повлияло на жизнь людей и насколько люди это понимают. Т.е. изобретение радио, телефона вызывает гораздо больший вау-эффект, чем открытие строения атома и все остальные открытия в химии, биологии, экономике.
                      +2
                      ммо рпг, контактик, твиттер, фейсбук — куда уж более «ВАУУ» и попсовей я и не знаю даже…
                        0
                        Именно, я про это и говорю. Но Вы не упомянули самое важное, на чем все это стоит — Интернет. Но в чем конкретно Вы не согласны я не до конца понимаю?
                          +2
                          Скорее интернет стоит на ЭВМ, а не наоборот.

                          С чем я не согласен? А разве непонятно? Ваши слова, фактически, «XX век не дал человечеству ничего принципиально важного, в отличие от предыдущих». С тем же успехом можно говорить, что со времен изобретения колеса не было никаких выдающихся открытий, сопоставимых по значимости. Насчет «узкой направленности» — электричество было открыто еще в древней греции (эбонитовая палочка, знаете наверное), однако более-менее значимых успехов добились лишь с приходом таких людей, как Тесла, Эдисон, Максвелла и прочих. Многие теоретические «непонятные и заумные» математики находят такое применение, о котором даже помыслить никто не мог. Даже квантмехом сейчас пользуются — те же туннельные диоды построены на них. Или по-вашему то, что используется в электронном оборудовании, 100% уходит в бункер к британским ученым? То, что вы не знаете, с чем работаете, не означает, что это фигня. Это как в древнем Риме, люди думали «ах, нафига нам математика (некоторые), она нужна только саксонским ученым в подземных казематах», однако акведуком пользовались исправно…
                            0
                            Мои слова фактически Вы отлично перекручиваете. Не «ХХ век не дал», а «люди не заметили, что он дал». Я больше говорю о восприятии сегодняшнего времени «новыми поколениями», а не реальную его ценность, по сравнению чем бы там ни было.
                  • НЛО прилетело и опубликовало эту надпись здесь
            +3
            я думаю, все еще впереди…
            Главное вырваться в космос или наоборот в гулбины планеты, и начать там развиваться… это тоже очень «захватывающее время во всей истории человечества»… еще ведь столько не изведано…
              +4
              «Сегодня — китайцы на Луне, завтра — миллионы нелегалов на Марсе!»

              Эх, кто бы пластиковые бутылки из океанов отловил… А вы про космос…
                +1
                Если бы оно там все бутылками и пакетами плавало, то отловить не проблема. Но фотодеградация все портит, там мелкие частицы в пару миллиметров в толще воды до 20 метров с концентрацией в среднем 5.1кг/км^2
                Проблема отловить и не погубить весь планктон в процессе. Но работа в этом деле идет и даже спонсируется.
                  +1
                  Ну, если бы мы были в некотором не очень отдаленном будущем, я бы предложил использовать ГМ-организмы. Сложно сказать, какие именно, возможно, планктон.
                  Бактерии, которые жрут полимеры уже придумали, вроде как, осталось развить идею.
                    +3
                    «Штамм „Андромеда“» вспомнился.
                    • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Правда? Это радостная весть для меня. Надеюсь, человечество таки приберёт за собой.
                +3
                Будут вспоминать примерно как вспоминали эпоху золотой лихорадки, но лишь до новой подобной эпохи, которая точно не за горами. Есть у нас много путей развития еще, где возможен взрывной рост.
                  +1
                  Перечислите?
                    +8
                    Я бы поставил на медицину и биология в целом. Сложно рассказать основной массе людей, почему нужно тратить тонны денег на освоение космоса. А частным инвесторам, еще сложнее. Тогда как за продление жизни, молодости или даже банальные твики огранизма готовы заплатить очень многие. Когда высокие технологии замедлятся в развитии, думаю, инвестировать будут именно туда, в биотехнологии.

                    Но даже если процессоры не станут в ближайшее время сильно быстрее, IT еще есть куда развиваться;) Собственно, на рост мощности процессоров уже много лет особо не рассчитывают, закон Мура работает больше в пользу многоядерности.
                +1
                Я несколько недопонял статью. HTML5 считается чем-то вроде серебряной пули, так? Почему так плохо делать нативные (кстати, имхо native лучше не переводить) приложения? Потому что это предполагает найм двух лишних программистов (WP+iOS+Android)? А с каких пор и в какой ещё отрасли создание лишних рабочих мест начало быть плохим признаком?

                P.S.: Да, статья не совсем об этом. Но мне действительно интересно, почему аксиоматизируется тормознутость и безальтернативность HTML5? Может эти и подобные условия дали неверный вывод?
                  +3
                  Не задавай вопросов, это просто топик зла.
                    +5
                    Да ну, фигня. Они просто думают, что сейчас на хабре единственная и неповторимая эра анонимных минусовщиков.
                    Их смоет мягким шёпотом эволюции, как и всегда :)
                    +1
                    Люди которые что-то пишут, даже в хороших источниках… Как бы это сказать помягче…
                    Не всегда достаточно, назовем это, квалифицированные.
                      +1
                      А с каких пор и в какой ещё отрасли создание лишних рабочих мест начало быть плохим признаком?
                      Где-то с середины девяностых золотой мечтой всех контор, производящих прикладные приложения, было снижение потребной квалификации разработчика. Т.е. количество-то фиг с ним, пусть даже вдвое вырастет, но это должны быть люди «недорогие» (т.е. порог вхождения в технологию должен быть минимальным) и «неспециализированные» (чтобы не создавались «тайные знания», в результате которых растет цена работника).
                      +1
                      Что убийца флэша не состоялся? Зато везде флэш-плеер на мобилах отключили вместо того чтобы тупо сделать его запуск по тапу.
                        +1
                        не везде, в Blackberry 10 вроде есть, но работает странно.
                          +1
                          Вот тут пишут Flash Player есть, тут даже есть отчёты об исправлении уязвимостей.
                          Кроме того, некоторые производители современных Android-смартфонов, такие как HTC, делают с Adobe специальные версии Flash Player.
                            +1
                            Почему этот комент не слили?<_< Невнимательные!
                              +1
                              И в dolphin browser для андроида встроен
                          +2
                          Мой прогноз: да, темпы смены ИТ-технологий замедлятся и, может быть, даже существенно. Но будет новая тема, которая сейчас пока только разгоняется и поэтому не сильно заметна. Например, биотехнологии, генетика, психология, да хз что. Может, даже, что совсем экстравагантное вроде нового вида транспорта или жилья.

                          И это тоже поменяет мир также, как во второй половине 20 века сделали компьютеры и электроника.

                          Запомните дату поста и поставьте напоминалку в гугл, 15.07.2033 проверите.
                            +1
                            А потом скажут, что календарь рассчитан только до 15.07.2033 года племенем Omni и снова будут ждать конца света.
                            • НЛО прилетело и опубликовало эту надпись здесь
                              +1
                              Вряд ли стоит ставить напоминалку, такой прогноз давали уже 100500 разных людей
                                +1
                                А как в google calendar быстро промотать на 2033 год? Я не смог.
                                +4
                                Добро, добро, добро!
                                  +3
                                  Херушки
                                  0
                                    +2
                                    Это пост зла?
                                      +1
                                      Истинное лицо Хабравчан :)
                                        +1
                                        Скорее, какое-то другое место.
                                      +1
                                      Законы Мура и развития процессорной техники так же как релятивистская и квантовая межаники не одно и то же, Не стоит создавать аксиомы там где ты незнаещь в каком направлении пойдёт наука в этой области. Или хотя бы ограничить их рамками используемых технологий и их граничных возможностей. На мой взгляд, прогресс, так же имеет волновую природу, Сегодня мы достигаем минимума но прийдёт кардинально новая технология и все волна начнет опять нарастать. И именно этот минимум заставит копать с утроенной энергией ниву технологий. Посмотрим.
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                          +1
                                          Глобально пути назад для маятника нет.
                                          В некоторых локальных нишах маятник действительно качнется в сторону вылизывания кода, но в глобальном масштабе индустрии растут сами масштабы решаемых задач, а путей по развитию практически не видно. Распределенные системы уже уперлись в скорость света и фундаментальную плохую распараллеливаемость подавляющего большинства известных решений подавляющего большинства задач.

                                          В случае прорыва в математике-алгоритмизации прогресс в вычислениях продолжиться, но фундаментально проблему может решить только прорыв в аппаратных технологиях, будь то квантовые сопроцессоры или компьютеры или еще что-нибудь…

                                          P.S. В мобильных же технологиях главная проблема не столько вычислитель, сколько аккумулятор. Пока в них прогресса не будет качественные изменения затруднены или даже невозможны.
                                            +1
                                            Ну не скажите, у нас, к примеру, код не прошедший code review просто не сольется в мастер. Для чего-то хоть сколько-то нового — архитектурное ревью. Целая куча тестеров и внутренние прогоны внутри компании, прежде чем выкладывать релиз. Или это по вашему не вылизывание?
                                              +2
                                              sCrasher говорил про вылизывание производительности, Вы же говорите о внешнем виде и безбажности кода.
                                              Производительность — это отдельная задача, которая ревью кода и архитектуры да QA-тестами не решается, а решается исследованиями этой самой производительности и эти исследования — отдельный самостоятельный процесс, только результаты которого попадут в описанную Вами цепочку.
                                                0
                                                Не скажите, буквально неделю назад в ходе code review получил вопрос по тому, как изменения сказываются на производительности.
                                                  0
                                                  Скажите пожалуйста, а это единичный вопрос или у вас есть процесс по целенаправленному комплексному анализу производительности, а не только отдельных изменений кода?
                                                    0
                                                    На этот вопрос тяжело ответить однозначно. С одной стороны нет, с другой — почему бы и нет. Объясню подробнее.

                                                    1. В своем коде — да.
                                                    Мы наследуем принципы хромиума. Мы не допускаем изменений, которые:
                                                    * Значительно увеличивают размеры файлов (10Кб — уже значительно);
                                                    * Замедляют приложение даже на доли секунды;
                                                    * Значительно увеличивают потребление памяти;

                                                    2. В чужом коде — нет.
                                                    То что наш проект основан на хромиуме, дает нам хорошую базу и между тем немного связывает руки — чем радикальнее наши изменения, тем сложнее merge на новую версию. В общем целом, провести радикальное ревью мы не можем (директория с проектом на рабочем компе у меня сейчас занимает 82Гб — такие объемы очень тяжело отрефакторить, у нас пока маленькая команда, да и чем больше изменения, тем сложнее их отдать в апстрим.

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

                                                    Обращаю внимание, что это ни в коем случае не официальная позиция. Это личные впечатления.
                                            +1
                                            Хабратопик проклят
                                              +1
                                              По правде говоря первый раз вижу топик где подряд одни минусы )) Карма Киллеры Взбунтовались ))
                                              +6
                                              Номер поста 186660. 18 это 3 по 6, то есть — 666, а после — деление на ноль… Действительно, конец близок.
                                                +3
                                                Без унифицирования процедур и функций разных алгоритмических языков любое развитие алгоритма в «тормозной» среде — это начало «конца».
                                                  +27
                                                  Вот чего-чего, а этот говнопост с техкранча увидеть на хабре не ожидал. Когда собираются умники и начинают вещать, что закону Мура конец, сингулярность по Курцвейлу отменяется… Детки, дядя Курцвейл знал и учитывал предстоящий буквальный конец закона Мура в своих прогнозах еще тогда, когда вы об этом законе слыхом не слыхали.

                                                  В отношении же безголовых разработчиков софта, которые считают выходом из проблемы дождаться нового проца со скоростью 10х, актуальнее вспоминать не закон Мура, а закон Мерфи. О том, что каким бы ни был софт, его всегда могут написать и напишут так, что он будет тормозить вне зависимости от скорости железа. Я когда-то поставил висту на погнанный C2Q с 4 гигами, думал уж на этом железе точно тормозить не будет. Фиг — эти тормоза от того, что кто-то кого-то бездумно ждет, а не потому что он так занят вычислительной работой. Мур тут не поможет — тут только морг поможет.

                                                  И это управляемый полунативный код .net, а что говорить о следующем уровне программной надстройки HTML? Это еще один дополнительный уровень геморроя и стремления разработчиков решать проблемы по закону Мерфи так, что никакой закон Мура им не поможет. Речь не о том, что сам тренд движения к решению прикладных задач внутри дополнительной контролируемой надстройки .net/Java/HTML5 выбран неверно, а что он предполагает ответственность всех сторон за производительность. Этот шаг делается в целом для извлечения максимальной пользы от закона Мура в глобальном масштабе — т. е. чтобы софт как таковой в мире мог выполнять все больше задач в самых разных сферах, для чего он как минимум кем-то должен быть написан — но вместе с тем это лишает отдельных разработчиков повода рассчитывать на ускорение со временем отдельно взятой софтины путем простого увеличения аппаратной мощности.

                                                  Это не конец закона Мура — это просто конец индивидуальной ответственности разработчика за скорость работы софтины, переход к такой парадигме разработки, где глобальная взаимосвязанность и универсальность важнее локальной скорости. То есть если ты начинаешь писать под хтмл5, то нужно учитывать весь нижележащий стек. И на хтмл5 не напишешь майнер биткойна — для этого лучше не то что нативное, а вообще аппаратное решение. Вот куда уходит закон Мура и вот почему нельзя считать его универсальным рецептом для исправления косяков сидящих в комфортных фреймворках прикладных веб-разработчиков. Даже для нативщиков в свое время не так все было просто — а эти привыкли, что дядя Мур все сделает за них. Фигушки. Наиболее впечатляющая закономерность развития в современном мире — не для криворуких, это инструмент для умных людей. В чем-то они напоминают особо клинических фэнбоев сингулярности, обчитавшихся Никитина и обитающих на соответствующем форуме. Те тоже думают, что они автоматически, ничего не делая, станут недосягаемой вершиной эволюции и на всех остальных навсегда забьют болт, потому что они где-то увидели опережающий рост отдельного параметра. А фиг вам, двигать прогресс — это значит думать и придумывать решения, а не откинуться на спинку кресла, пока тебя оттуда в шею выгонит разработанный другими бот.
                                                    +4
                                                    Программисты не всегда безголовые. Мир меняется, и сегодня решаются сложные задачи нового уровня. Вот напишите gmail, dropbox или facebook на ассемблере. За те же сроки, как стартапили эти проекты. И развивайте его, конкурируйте, поддерживайте. Я бы посмотрел на результат.

                                                    Аппаратное, ассемблер, с++, JS — все найдет свою нишу. Это нормально. Если кто-то напишет майнер на JS — туда ему и дорога. Не используйте такой майнер. Если вдруг все напишут майнейры только на JS, то тут стоит задуматься — может так и надо? :) Может так выгоднее в итоге всем? По крайней мере, не нужно будет фиксить баг паяльником.

                                                    По поводу сабжа. Любовь программистов к ожиданию аппаратного прогресса никуда не денется. Нас ждет параллелизм и языки нового уровня, и все пойдет по новой. Рост будет продолжаться еще долго, и только потом потребуется новый скачок на новый уровень, но что-то мне подсказывает, что снова речь пойдет вовсе не об оптимизации старого.
                                                      +1
                                                      Не нужно писать gmail, dropbox или facebook на ассемблере. Речь не о том, что навороченные высокоуровневые фреймворки не нужны, или что их пишут сплошь безголовые идиоты. Речь о том, что они сами по себе являются не менее сложной технологией, чем то железо, на которых они работают, и поэтому рост производительности нового железа еще не гарантируют, что старый софт на нем будет работать пропорционально быстрее. Софт — отдельное направление технологий, которое нужно совершенствовать параллельно с железом. Был когда-то показательный пример, взяли какой-то алгоритм сортировки 1977 года и прогнали на маке 2007 г. выпуска, и наоборот — алгоритм 2007 на древнем маке. Последний оказался быстрее, несмотря на очевидный прогресс закона Мура. Разумеется, ускорить так можно не всякий алгоритм, есть фундаментальные математические ограничения. Но если брать не отдельный алгоритм, а комплексную распределенную задачу, типа построения социальной сети, для совершенствования архитектур там непочатый край работы. И чем сложнее задача, тем меньше шансов, что ее существенно ускорит улучшение показателей отдельно взятого компонента пусть даже в 2 раза — будь он железный или программный. Тот же пример с параллелизмом — это означает необходимость коренной переделки алгоритмов и архитектур. Я ни в коей мере не отрицаю, что на этом пути будут достигнуты значительные успехи; я просто указываю на то, что зависит это от усилий всего сообщества разработчиков стека технологий, а не от одних только производителей процессоров или еще какого-либо железа.
                                                      +6
                                                      P.S. Управляемый код (Java, JS, .NET) — это все не так медленно, как может показаться. Разработчики сред выполнения не спят ночами, приводя их скорость максимально близко к нативному коду. И это прекрасно, что мы можем писать, управляя разработкой проще, если результат по скорости не сильно отличается от идеального. Весь сложный стек низких уровней допиливается по необходимости, когда петух клюнет. JS существует очень давно, а за его разгон взялись относительно недавно. Так что я не удивлюсь даже «майнерам» в веб-исполнении через N лет.
                                                        +5
                                                        Тормоза происходят не от управляемого кода, а от сборщика мусора и работы с памятью в этих песочницах.
                                                        Причём если в C# всё достаточно шикарно, можно даже напрямую к нативной памяти обращаться, если в Java всё более-менее неплохо, то в JS наблюдается просто лютый кошмар.
                                                        У программиста нет ни малейшей возможности не то что повлиять на работу сборщика мусора и аллокатора памяти, но даже хоть как-то учесть её при оптимизации приложения, т.к. не существует никакого стандарта, никакой документации, и даже профайлеры (довольно хреновые, к слову) в браузерах появились совсем недавно.
                                                        Вот и выходит, что JS зачастую тормозит на ровном месте, когда вдруг оказывается, что на неудачно оформленном цикле некоторые браузеры внезапно отъедают до 400Мб памяти, а по окончании цикла идёт 2 секунды фриза, т.к. вся эта память начинает высвобождаться…
                                                        В статье по ссылке выше как раз говорится, что скорость работы таких песочниц повышается с увеличением количества доступной оперативки, а скорость процессора там и так по-максимуму задействована. Т.е. если в мобильных устройствах удастся увеличить объём оперативки до 8Гб (а лучше больше), вся эта тормознутость вдруг покажет вполне приличные результаты, даже если не увеличивать мощность процессора и количество ядер.
                                                        Проблема лишь в том, что по невыясненной причине (косяк инженеров?) память интегрирована внутрь ARM, т.е. просто так взять и поставить побольше невозможно — сразу начинаются сложности с площадью кристалла, охлаждением, компоновкой и т.д.
                                                          +1
                                                          Ничего там не интегрироано, package over package — это просто бутерброд из чипов. Да и микросхемы высокой плотности, вроде бы, есть. Вот только DDR — DRAM. И ее нужно обновлять. Постоянно. И если процессор можно выключить в фоне — то память нет.
                                                      +6
                                                      Закон Мура может еще достаточно долго быть актуальным, если включить в игру параллельные вычисления. Задачи, которые не распараллеливаюстя — да, упрутся в некий лимит, из-за того, что гигагерцы начиная с определенных значений обходятся слишком дорого.

                                                      А вообще, замедление скорости роста производительности железа вполне может вызвать другое явление — возможно, мы увидим более продвинутые штуки для разработки. Скажем, код можно будет писать на чем-то вроде C#, а то, что получится на выходе, будет работать так быстро, как будто мы писали на C++.

                                                      Думаю, каждый программист вспомнит из личного опыта не одну историю, когда в его программе находился фрагмент, оптимизация которого ускоряла работу программы круче, чем 10 лет роста производительности процессора согласно закону Мура. :)
                                                        +1
                                                        Но, справедливости ради, следует отметить, что в моем призыве по «сборке мусора», я обрел хорошую компанию в лице самого бога программирования — Джона Кармака
                                                        Не надо причислять здесь Джона Кармака. Смотрим ваше сообщение:
                                                        пишет Кармак: «Но я также уверен, что HTML5 не может быть подходящим решениям для любого действительно нетривиального IOS приложения ни сейчас, ни в ближайшие годы; это положение мне кажется верным и для других мобильных ОС».
                                                        Идем по ссылке и смотрим оригинал:
                                                        Good article: sealedabstract.com/rants/why-mobile-web-apps-are-slow/ … I tend to think that garbage collection in some contexts even for games is justified on big platforms.
                                                        Что в переводе звучит совсем по другому:
                                                        Хорошая статья: sealedabstract.com/rants/why-mobile-web-apps-are-slow/… Я склоняюсь к мысли, что сборка мусора в некоторых контекстах, даже для игр, является оправданной на больших платформах.
                                                        Судя по контексту о мобильных веб приложениях, речь идет именно о сборке мусора в этих самых веб приложениях
                                                          +1
                                                          Дело же не в сборке мусора. Сравните хотя бы производительность HTML5-игр, написанных на JS, и игр на C# под Unity.
                                                            +1
                                                            Эмм… А зачем так усложнять сравнение. Можно сравнить HTML5@JS и Unity@JS. :)
                                                              +1
                                                              В Unity вовсе не JS, там UnityScript, который JS напоминает лишь издалека, если приглядеться. В UnityScript отсутствует множество чисто динамических возможностей JS, а также можно использовать статическую типизацию. Это значительно упрощает компиляцию и выполнение скриптов на UnityScript по сравнению с JS.
                                                              +1
                                                              Но вы правы в том, что дело не в сборке мусора. Основная причина победы Unity в сравнении с HTML5 — в Unity на JS будет описана только, грубо говоря, логика. А в HTML5 на JS будет написано всё.
                                                            +1
                                                            Сначала мобильные приложения в большинстве своем адски тормозили (прекрасный пример — лаги в интерфейсе Android, сохраняющиеся, даже когда сменились несколько мобильных процессоров). Но все больше и больше разработчиков (google в пример) постоянно оптимизируют их. Возможно, из тех-же соображений, что доносит нам эта статья, об оптимизации стали задумываться многие. Почему? Да из-за тех же рекомендаций, что и при создании веб-сайтов: веб-сайт открывается быстрее — посетитель с большей долей вероятности задержится на нем. Быстрые приложения вытесняют медленные.

                                                            Так что, мне кажется, все хорошо!
                                                              +3
                                                              Перестанут расти мощности — будем по-новой учиться писать оптимальный код, как когда-то умели. Сейчас благодаря мощностям процессоров во главу угла ставят читаемость, портируемость, простоту и максимальное использование внешних фреймворков. Что закономерно привело к ситуации, когда Word, выполняющий ровно те же функции что и 20 лет назад, требует в 100 раз более мощной машины.
                                                                +1
                                                                Тут скорее проблема не в том, что тот же ворд требует более мощной машины, а что в 100 раз более мощная машина, превышающая все мощности NASA на момент запуска Apollo, используется в основном для того же ворда и незначительных усовершенствований ОС. Что начало тормозить спрос на новые ПК и опосредованно — процесс разработки железа той же Intel. В 2003-2007 тот же ворд достиг настолько приемлемого качества, что до сих пор используется в качестве стандарта большинством юзеров, а иные вообще перешли на Google Docs. И поднялся вопрос, а зачем апгрейдить софт, а следовательно и железо теми же темпами, которые были характерны для времен их куда более заметной бажности и тормознутости. С другой стороны, спрос на чистые терафлопсы в последнее время начал удовлетворяться облачными решениями — а это опять же тормоз для эволюции ПК. В итоге ПК из авангарда прогресса бизнес-вычислений начал прекращаться в некое полустатичное клиентское устройство, фактически терминал, с сохранением всей периферии и ее оффлайн-функций, но без особых темпов роста количественных показателей (кроме памяти, которая все больше диверсифицируется по типам и назначению). Фактически сегодня ПК все чаще апгрейдят из-за качественных недостатков — отсутствия такой-то функции в железе или его банального физического износа, а моральное устаревание характерно больше для 5-7-летнего периода, а не 1,5-2, как когда-то.

                                                                Но за закон Мура и его преемника я спокоен — спрос на них не тормозится, в отличие от спроса на гигагерцы ПК среди большинства бизнес-пользователей, а растет за счет опережающего роста данных, которые нужно обрабатывать. Например, генетических — вот показательная аналитика о том, что на данный момент является самым узким местом прогресса секвенирования, и это — ИТ. «Поздравляю»… Но это также говорит о том, что деньги в следующие качественные поколения ИТ-железа — с фокусом уже не на ПК, а на обработку данных — пойдут не менее активно, чем когда-то в доПКшные технологии.
                                                                www.kurzweilai.net/dna-data-overload
                                                                releases.jhu.edu/2013/07/12/solving-dna-puzzles-is-overwhelming-computer-systems-researchers-warn/
                                                                0

                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                Самое читаемое