Как уже упоминалось другими, это вопрос компромиссов и наличия правильных знаний.
Единственная ловушка, которую вы можете рассмотреть, заключается в следующем: в своем вопросе вы упоминаете, что в качестве преимущества вы видите в Интернете «кроссплатформенность». Но так ли это на самом деле? Подумайте об этом так: если вы разрабатываете что-то для настольного компьютера, вам нужно определить список платформ и их требования к поддержке.
Не заблуждайтесь, то же самое для Интернета. И хотя это уже невероятно просто, чем раньше, если вы разрабатываете широкое общедоступное приложение, вам придется иметь дело со всеми возможными версиями каждого веб-браузера. А если это скорее корпоративное приложение, то приготовьтесь и очень точно подготовьте требования к поддерживаемым платформам браузера.
Не думайте, что вы избежите взлома для конкретной платформы, если создадите что-то существенное.
А потом самое интересное. Что лучше? Браузеры, которые обновляются почти прозрачно, очень регулярно, как Chrome? Или те, которые выпускают обновления безопасности только ежемесячно, а основные функции - каждый каменный век (например, IE)? Ответ не так очевиден, как вы можете подумать, потому что некоторые из этих частых «прозрачных» обновлений могут нарушить ваш код, и вам нужно будет следовать этому и быстро реагировать. Или следите за бета-версиями и предварительными выпусками при разработке и тестировании. Для всех браузеров вы по глупости сказали, что хотите поддержать (удачи).
Да, и давайте не будем забывать о UI. Вы также сталкиваются радость решить , хотите ли вы последовательный интерфейс ЧЕРЕЗ всех целевых платформ или последовательного интерфейса WITHцелевая платформа каждого хоста. Видите все эти маленькие кнопки, которые вы можете просматривать на веб-страницах? Вы хотите, чтобы они были везде одинаковыми или интегрировались в среду, используемую вашим пользователем? Конечно, эта проблема не нова и существовала для других моделей разработки, но здесь она кажется более важной и зависит от типа целевых пользователей и их ожиданий. Публичный конечный пользователь, как правило, хочет, чтобы вы интегрировались с его платформой, но все равно хочет, чтобы вы «вау!» они с причудливыми вещами - в то время как корпоративный пользователь захочет что-то похожее на настольное приложение И мобильные платформы получили новое измерение для всего этого.
Для последних двух абзацев обычной идеей иногда является упаковка предварительно настроенного веб-браузера с вашим установщиком, который затем подключается к вашему веб-приложению (локально или через Интернет). Это здорово, потому что вы контролируете частоту обновления и можете «заморозить» состояние, и вы точно знаете, что нужно поддерживать и тестировать. Плюс вы можете добавить классные вещи, такие как выделенные пользовательские расширения Например, упаковка «замороженного» Chromium с небольшими расширениями Chrome, разработанными вами для облегчения использования вашего веб-приложения для разных типов пользователей, может быть очень приятной. С другой стороны ... теперь вы несете ответственность, если нарушение безопасности происходит из-за того, что вы заморозили цикл выпуска, и ваше приложение не выиграет от повышения скорости (если оно есть).
Как и многие вещи, это обоюдоострый топор.
Примечание: у меня есть сильное предубеждение против Интернета, потому что я в основном большая куча недоделанных технологий (и я вежлив здесь), вплоть до уровней OSI, на которых мы продолжаем добавлять слои дерьма, скрывающие проблемы, не решая их по-настоящему или исправляя их.
При этом я поддерживаю сеть за ее вездесущий характер в качестве платформы. Я думаю, что шаг вашей компании (вероятно) правильный. Очевидно, это зависит от вашего целевого рынка и платформ, к которым вы стремитесь. Если вы хотите представить что-то в качестве службы, то вам, вероятно, стоит пойти (хотя и в этом нет необходимости). Если нет, то, возможно, причин для этого не так много.
Хм, и ждите забавных событий в будущем, теперь, когда в мобильных средах (нетбуках, смартфонах, КПК, планшетах, электронных книгах ...) все больше появляются легковесные варианты существующих операционных систем, при этом основной упор делается на использование легких встроенных браузеров. ... но со всей их новой долей глюков рендеринга пользовательского интерфейса.
Что касается технологий на основе плагинов ... Я бы сказал, держись от них подальше. Они увеличат мощность вашего приложения, но ограничат его проникновение на рынок. В некоторых случаях это будет плюсом с точки зрения межплатформенной поддержки, пока новая платформа не откажется от их поддержки. Веб-стандарты здесь по какой-то причине (будьте осторожны, чтобы не слишком волноваться обо всем в HTMl5, иначе это может взорваться у вас на лице).
РЕДАКТИРОВАТЬ: другие вещи, чтобы рассмотреть ...
Прием на работу
Очень сложно найти знающих веб-разработчиков. Вы могли бы подумать, что их стадо, но они потерялись в огромном пуле, ну, в общем, довольно некомпетентных людей, которые думают, что им удалось написать 700 строк JavaScript / ECMAScript для реализации некоторой проверки в их формах, и это в конечном итоге и все, что может быть достигнуто с точки зрения навыков высокого уровня.
Я не шучу, в последнее время мой первый вопрос для всех интервью веб-разработки заключается в том, как объявить переменную, а затем, есть ли разница между использованием var
или нет (в зависимости от того, как они отвечают). Это удручает. Мне гораздо труднее найти среднего или продвинутого веб-разработчика, чем найти среднего или продвинутого разработчика для настольных компьютеров.
восприятие
Никто никогда не будет относиться к вам серьезно, когда вы говорите: «Я веб-разработчик». Это для подкласса программистов, разработчиков, не так ли? Те, кого ты игнорируешь и издеваешься издалека, и не присоединяешься, когда идут за кофе. :)
Это, очевидно, не соответствует действительности, но все сводится к тому, что вы разрабатываете для среды, которая в основном управляется для вас. Браузеры исправляют вашу испорченную разметку, ваши испорченные стили, и даже исправят ваши испорченные скрипты для некоторых из них, и оптимизируют их для вас, если хотите. И если вы веб-разработчик, люди не будут предполагать, что вы имеете представление о программировании более низкого уровня, так что вы должны быть полным идиотом, верно?
И тогда они понимают, насколько безумно сложным может быть ECMAScript, но отказываются пересматривать их мнение. Потому что это сеть. Нам не нравится это по сути, нам просто нравится то, что оно позволяет нам делать.