Сегодня мы пытаемся кратко просуммировать, что творится с веб-разработкой в масштабах всего веба, и делаем прогнозы на то, как будет выглядеть веб-разработка через 2-3 года.
Яков-зачинатель (и лучше уже, наверное, не скажешь):
http://jakobz.livejournal.com/236681.htmlВаня-продолжатель:
http://gliv.livejournal.com/125078.htmlUPD: дискуссия размазывается - комментарий Льва:
http://lionet.livejournal.com/130032.html А вот моя версия:
Крупные компании (G) пиарят свои решения: Dart и Angular, что им еще остается делать. Наверное, Dart рано или поздно можно будет использовать, но нужно понимать, что это примерно Джава. Что шаг вперед по сравнению с js, конечно, но всё равно. Принюхиваются к нему пока осторожно. То ли он слишком неамбициозный, то ли все его плюсы сводятся к стратегическим плюсам для самого Гугла, но что-то как то энтузиазма не видно.
Ситуация обстоит так, что если нужно сделать что-то небольшое, всё равно что брать. Вопрос только в том, что брать для большого, разрастающегося проекта. Мне кажется, что сейчас основной вопрос не в выборе языка, а в выборе фреймворка - как организовать код, зависимости, потоки событий, работу с DOM. Чем бы таким обложиться, чтобы не сойти с ума и не сильно воняло. Конкуренты - это старенький backbone, angular, ember, react.
Что касается языка, то писать на чистом JS я особого смысла не вижу. Ну то есть, вот прям вообще уже никаких аргументов за него не осталось. Как язык JS никогда ничем не привлекал. Производительность? Google Closure умеет advanced компиляцию и минификацию кода, в стандарт JS добавлен strict mode, всё это заточки на производительность, которые не работают с ручным кодом, только с кодом, который генерят компиляторы в JS. Отладка? Нормальные компиляторы уже умеют или скоро научатся делать source maps.
В ближайшие 2-3 года:
- сообщество начнет наконец закапывать JS как язык и оставит его как VM.
- Chrome введет несовместимые расширения и еще больше углубится в создание своего отдельного web.
- Dart научится запускать в Chrome нативно, во всех остальных браузерах через js трансляцию.
- Во фреймворки придет понимание что надо разделять DOM и JS как GPU и CPU и синхронизировать батч-обновления DOM с vsync, раз в кадр.
- Вместо всех имеющихся фреймворков вырастет какой-то новый, корявый и избыточный, на который все пересядут
- Фреймворки начнуть строиться вокруг push-state через web sockets по умолчанию.
- Мы увидим очень много client-side rendering. Гуглу и Яндексу придется deal with it.
- HTTP/2 примут, но Хром будет поддерживать свою несовместимую версию SPDY 5 и всё это останется уделом маргиналов, потому что трудно вспомнить как именно мы ставили и настраивали себе Апач 10 лет назад чтобы теперь эту красоту на нем включить.
- ECMAScript Committee предложит следующее поколение стандарта, в котором они продолжат развивать язык и на который можно будет безопасно перейти через очередные 10 лет.
- Microsoft объявит о внеплановом продлении поддержки IE 6 еще на 5 лет и объявит что поддержка свойства border-radius появится в IE 16.
- Про single page applications: появится фреймворк/плагин к jQuery/мода перехватывать клики мышки по ссылкам и вместо перехода по ссылке грузить страницу средствами JS и анимировать как-то переход. Будут забывать менять url / html history или наоборот, менять его неправильно, коряво обрабатывать ошибки, js будет ломаться. Будет полный бананас. Мы получим юзабилити флеш-сайта под православным брендом html5.
- Мобильные браузеры объявят что не будут поддерживать border-radius и box/text-shadow потому что и так ресурсов с гулькин нос. Наступит ренессанс эпохи нарезания картинок с тенюшкой на 9 частей. Мобильные браузеры объявят следом что не будут поддерживать полупрозрачность и смешивание, только булевые маски.
- Разработчики забьют на адаптивный лайаут и начнут тупо делать отдельные мобильные версии.
- Появится первый фреймворк, который рендерит сайт полностью внутри canvas.
- В стандарт CSS 4 добавят переменные. Их не будет поддерживать ни один браузер, а IE 16 будет еще и падать, если где-то увидит переменную.
- Помимо Майкрософтовской директивы Chrome введет директиву «if not IE». Изменение будет портировано во все остальные браузеры, включая мобильные, в течение недели.
А ваши версии?