— Илья, как Вы оцениваете текущее состояние JavaScript-разработки в России? Стоит ли вкладывать в эту область IT время и деньги?
Когда мы говорим о JavaScript, то в первую очередь это – интерфейс. Здесь наши сайты сильно уступают зарубежным. Ведь интерфейс – это клиентский сервис, а ему-то в России редко уделяется много внимания.
Поисковики развиваются, и SEO все больше вытесняется старым-добрым «делать сайты для людей». Такова общая тенденция современной разработки. И в нее отлично вписывается JavaScript.
— Но есть же и другие технологии?
Да есть, но если вы посмотрите – именно JavaScript за последние 5 лет пережил «Большой Взрыв». Потому что альтернативы нет. И не предвидится.
Flash, Silverlight, Java не интегрированы с HTML, а HTML сильнее них, что он успешно доказал хотя бы фактом своего выживания. А где HTML- там и JavaScript.
Именно этот язык сейчас стремительно развивается, составители стандартов придумывают все новые возможности, а браузеры их реализуют — часто даже до того, как стандарт обретает окончательную форму. Они «ставят» на JavaScript.
Конечно, сейчас JavaScript серьезно отстает в ряде областей. Но он наверстает. Скорость современных движков уже близка к скорости нативного кода, а остальное – вопрос API.
Сервер на JS уже есть, графика – есть и развивается…
— Вы говорите о 5 годах – а сколько вообще времени лично Вы занимаетесь JavaScript?
Мог бы, конечно, сказать: «10 лет», но это было бы полуправдой. JavaScript в современном виде существует всего лет 6-8, до этого был ад и танцы с бубнами. С трудом вспоминаю, как уже тогда писали достаточно сложные приложения… Впрочем, человек, а в особенности – девелопер, приспосабливается ко всему.
— Хвалить язык – это хорошо, а что вы скажете о недостатках?
Применительно к современным реалиям, недостаток один – большое время на разработку и отладку. Эта ситуация постепенно исправляется.
Сейчас она гораздо лучше, чем хотя бы 3 года назад, и вектор очень положительный. В частности, радует принятие многих стандартов в новой версии IE (прим. ред. - IE9).
Принципиальный недостаток с точки зрения эффективности – javascript очень нужен формат на основе полукомпиляции, такого же типа, как имеет CLR, JVM. Ведь сейчас что происходит – код пересылается в виде сжатого текста. Браузер разжимает его и осуществляет синтаксический разбор и, в зависимости от движка, оптимизацию и компиляцию (V8), а уже затем исполнение. Это означает сравнительно большой размер пересылаемого кода и ограничения на быстродействие.
Думается, в этом плане у JavaScript все впереди. Язык-то хороший.
—Да, пожалуй, нашим потомкам будет жить лучше, чем нам. Не могли бы Вы рассказать о своих проектах?
Так получилось, что хобби у меня связано с образованием. Преподавал математику – школьникам, потом и студентам. Но разработка оказалась интереснее, так и появились проекты http://algolist.manual.ru – из FAQ для RU.ALGORITMS сети ФИДО…
—ФИДО? А оно еще живо?
Уверен, что живо... Но интернет больше. Поэтому там и появился сайт по алгоритмам.
Ну а позже мне дали понять, что было бы неплохо открыть личные заметки, которые я достаточно долго писал в закрытый блог, для себя. Так и появился проект http://javascript.ru.
Уже потом сайт обзавелся сервисами, тестом знаний, при помощи профессионального переводчика был, наконец-то, переведена спецификация языка. А позже – появились мастер-классы по JavaScript.
—Что представляют собой Ваши мастер-классы? Кто посещает эти мероприятия?
Идея мастер-классов возникла несколько лет назад, когда знакомые предложили сделать семинар по AJAX, ориентированный на опытных разработчиков.
Семинар был посвящен AJAX и COMET, и раскрывал многие секреты, которые тогда нигде не публиковались. Были технические внутренности клиентской части Gmail, способы обходы багов браузера, работа с history, и многое другое…
—А что, бывает что-то такое, что нигде не публикуется? Неужели сложно найти?
Поискать-то можно. А получить полную картину по теме из результатов поиска – увы, очень сложно. Это как большой паззл, который собирается постепенно. В этом плане JavaScript отличает очень большое количество неактуальной или не совсем корректной информации в сети.
Мастер-классы http://javascript.ru/mk – моя попытка, на основе опыта разработчика и преподавателя, поделиться собственным опытом во время общения вживую, которое гораздо эффективнее чем интернет.
—И как, получается?
Мастер-классы проводятся уже около 3 лет. Их посещают, преимущественно, опытные разработчики.
Знаете, когда говоришь, что проводишь «мастер-класс» - это накладывает некоторые обязательства. Приходят люди, которые делают реально серьезные проекты.
И нужно поддерживать собственный уровень как разработчика на достаточно высоком уровне, чтобы отвечать на их вопросы, давать советы по сложным интерфейсам и предлагать решения на месте.
Впрочем, конечно, бывают и новички, и программисты на смежных языках, которые уже немного знают JS.
Считаю, это здорово, если человек может сходить на мастер-класс еще до того, как он потратил много своего времени, узнать технологии, возможные грабли и способы их обхода. Все это, в конечном счете, экономия времени, более быстрая и качественная разработка.
—На странице мастер-классов нет отзывов участников. Почему?
Думаю, репутация у мастер-классов в сообществе уже сложилась. А, значит, отзывы публиковать ни к чему.
Впрочем, лично для себя я использую страницу http://javascript.ru/mk/afters. Эта ссылка полузакрытая, ее работа не гарантируется в дальнейшем, но сейчас отзывы участников есть там.
—Что ж, большое спасибо за информацию. Если кто-то из наших читателей решит посетить мастер-классы, на какой Вы бы порекомендовали сходить?
Ну, во-первых, вопрос географии. Ближайшие мастер-классы пройдут в Москве, Санкт-Петербурге, а также в Харькове и Киеве.
Если говорить о темах – то все зависит от того, например, использует ли человек jQuery. Если да, то определенно стоит посетить «Секреты jQuery».
Если есть планы по созданию сложных AJAX и COMET-приложений – то мастер-класс по «Тонкостям Web 2.0». Там же и вопросы безопасности, кстати.
Если он вообще использует JavaScript – тогда «Профессиональное JavaScript -программирование».
Ну а мастер-класс по оптимизации – в том случае, если о ней вообще бывает разговор, если планируется оптимизировать скорость загрузки страниц или интерфейсы.
Пусть посмотрит страницу мастер-классов http://javascript.ru/mk – там больше информации о самих мастер-классах и программе, а потом уже решит. Единственно –лучше определиться сейчас, т.к. с планами на мастер-классы в дальнейшем некоторая неопределенность.
—Мастер-классов больше не будет?
Да, они, вместе с прилагающейся к ним работой по материалам, отнимают достаточно много времени, я не предполагал, что так будет. Я сейчас как раз думаю, что с этим делать. Посмотрим, конечно, год еще впереди, и это все зависит не только от меня.