Интересная ситуация сложилась с облачными IDE. Они не используются программистами с такой же скоростью как другие облачные технологии. Почему их внедрение и распространение продвигается так медленно?
Сегодня обсудим причины и разберемся в разных точках зрения по этому вопросу.
Современная ситуация
За последние десятилетия многие продукты перешли от локального программного обеспечения к работе в облачной среде. Так, в 2002 году Amazon создал «Cloud Web-service». Веб-сервис позволял хранить различную информацию и выполнять вычисления. Еще через 5 лет компания создала «Elastic Compute Cloud». Этот сервис позволил запускать собственные приложения непосредственно в облаке. Затем за похожие сервисы взялись такие гиганты, как Microsoft (Azure в 2010 году) и Google (Google Compute Engine в 2012 году).
Все больше пользователей начали переносить свои данные и проекты в облако.
Со временем появились и облачные интегрированные среды разработки (IDE). Они работают в облаке и предоставляют пользователям доступ к своим продуктам и инструментам через веб-браузер.
Наиболее известными облачными IDE являются Cloud 9, CodeTasty, Gitpod и другие.
Однако разработчики не торопятся переходить на указанные облачные платформы, продолжая использовать привычные десктопные IDE.
В чем причина этого?
Что предлагают облачные IDE?
Преимуществ у облачных IDE множество. Самое важное заключается в том, что облачная среда разработки доступна из любого места, главное, чтобы был Интернет. Облачные IDE работают в браузере, поэтому они не зависят от операционной системы или аппаратного обеспечения компьютера. Это означает, что их можно использовать на любом устройстве, которое поддерживает веб-браузер. Есть возможность работать с проектами не только из дома или офиса, но даже с мобильного устройства.
Специалист по облачным технологиям The Duckbill Group, Кори Куинн в своей статье «Настоящая причина задержки внедрения облачных IDE» подчеркнул, что именно возможность удаленной разработки стала для него решающей в выборе в пользу онлайн IDE.
Также большинство сторонников использования облачных сред разработки подчеркивают их особую безопасность. Ведь исходный код хранится в облаке, а не на локальном компьютере. Так что кофе, пролитое на ноутбук, не грозит такими уж печальными последствиями.
Кроме того, облачные IDE предоставляют более удобную и быструю настройку рабочего пространства. Новичку, пришедшему в команду, за пару кликов могут предоставить доступ ко всем необходимым исходникам.
Критика и недостатки
Но, не смотря на множество плюсов от внедрения облачных сред разработки, программисты продолжают использовать локальные инструменты.
Кори Куинн уверен, что причина кроется в недостаточно развитом UX . Разработчики привыкли к удобным средам и большое внимание уделяют отзывчивости интерфейса, скорости работы программы.
Кроме того, главное преимущество облачных IDE напрямую зависит от наличия Интернета, поэтому любители путешествовать определенно столкнутся с проблемой доступа к Сети.
Непонятно, как действовать в случае сбоев и падении сервисов. Ведь даже наиболее популярные облачные решения, такие как Gmail, Dropbox, Google Docs, сталкивались с внезапными сбоями в работе сервиса.
Также сложно себе представить, как будет осуществляться перенос проектов на альтернативные ресурсы. Ведь облачная IDE может прекратить свое существование. Что тогда делать с проектами?
Спорным вопросом является и безопасность. Если рабочие проекты с IDE попадут в чужие руки, разработчики могут потерять результаты своего труда.
Эрик Бернхардссон, создатель системы музыкальных рекомендаций в Spotify, в своей статье «Мы все еще рано переходим к облаку: почему разработка программного обеспечения требует перемен» обращает внимание на недоработанность некоторых технических моментов и приводит такие примеры:
Нет простого способа запустить 1000 безсерверных функций и распараллелить компиляцию проекта.
Облака требуют выполнения низкоуровневой настройки.
Для развертывания все еще необходимы адаптеры, такие как Docker.
Облачное решение не спасает от среду разработки от внешних зависимостей. Проблема «работает на моей машине» все еще существует, просто не на локальном компьютере, а в облаке.
Тенденции на ближайшее будущее
Таким образом, хотя облачные среды разработки позволяют работать над проектами из любой точки мира и на любом устройстве с доступом в Интернет, для программистов они пока еще не must-have.
Разработчик Зак Ллойд в блоге Warp говорит о том, что выгода от внедрения облачных IDE потенциально более значительна для компании, чем для отдельного разработчика. Ведь облачный подход позволяет сэкономить финансы. Нет необходимости покупать каждому программисту дорогую технику. Да и держать код не на локальном компьютере также довольно удобно с точки зрения безопасности. Ллойд предполагает, что внедрение облачных сред разработки может идти сверху вниз, от компании к разработчикам.
В целом большинство программистов уверены, что среды разработки перейдут с десктопа в облако. Просто на данный момент нет достаточно важных стимулов для этого. Опыт облачной разработки все еще имеет ряд минусов, которые тормозят этот процесс.
А Вы как считаете?
Комментарии (21)
dprotopopov
09.11.2023 10:58Я с удовольствием пользуюсь разными тулзами в сети - не надо тащить всю инфраструктуру и среду разработки/тестирования себе на комп для разовой задачки
Ну а если сидишь на какой-то технологии - то логичнее всё-таки иметь всё у себя - это и надёжнее (нет отказов из-за разрыва связи) и быстрее работает, но по поводу тестирования - это сложнее вопрос ...
ZlobniyShurik
09.11.2023 10:58+11Используешь импортный облачный сервис - в самый неподходящий момент отключают отечественных разработчиков.
Используешь отечественный облачный сервис - туда не могут достучаться коллеги из-за бугра или командированные.
Вывод? Любишь облака - подымай свои :)
Einherjar
09.11.2023 10:58+10доступна из любого места
чтобы был Интернет
Это взаимоисключающие понятия. Да и в чем преимущество непонятно, мой ноут тоже доступен мне из любого места если я его беру с собой, только интернет не нужен чтобы код писать.
Это означает, что их можно использовать на любом устройстве, которое поддерживает веб-браузер
На телефоне запускать IDE как то глупо, а десктопные и так есть кроссплатформенные под любую десктопную ОС, потому тоже как то слабовато. Да и оверхед из за браузера приведет к тому что тормозить это все будет и жрать еще больше памяти.
MAXH0
09.11.2023 10:58+6Тут разницу в отзывчивости между vim и VS замечают и разводят холивары. А вы о каких то облачных сервисах.
Ugli
09.11.2023 10:58Непонятно, как действовать в случае сбоев и падении сервисов.
понятно же, как действовать - никак
ChessMax
09.11.2023 10:58Иде тормозят постоянно, даже при банальном наборе текста. Что дико раздражает. Облачные Иде к этим задержкам ещё добавят время на передачу данных на сервер и обратно. И получим этакое программирование по переписке?)
tentakle
09.11.2023 10:58-13Наркоман что ли? Когда это сообщение набирал тоже задержки испытывал?
tentakle
09.11.2023 10:58-5Судя по минусам на Хабре и правда остались одни наркоманы.
Да еще и судя по профилю вы еще и разработчики. Онлайн редактор у них с задержками.
Так и живем.
Tony-Sol
09.11.2023 10:58Минусы навесили вполне справедливо - сообщение это «отправил-забыл», но код писать это постоянное взаимодействие с intelliSence/language-server’ом, а оно даже на локалке бывает тупит и подтормаживает
По требованиям к каналу и задержкам, все равно что сравнить сетевую игру в какой-нибудь многопользовательский шутер типа battlefield с homm 3
igurylev
09.11.2023 10:58+7Можно же как? Написать продвинутую логику клиентского кеширования всего кода, чтобы всё работало локально, включая сканирование всей структуры проекта для работы автокомплита. А синхронизировать между устройствами можно, например, git-ом. Хотя постойте...
kovserg
09.11.2023 10:58Облачные IDE работают в браузере, поэтому они не зависят от операционной системы или аппаратного обеспечения компьютера
А вот браузеры теперь зависят от операционной системы. Новые браузеры на отрез отказываются пускаться на чем попало, только свежие ос. А старые браузеры новыми веб интерфейсами не поддерживаются.
Разработчики привыкли к удобным средам и большое внимание уделяют отзывчивости интерфейса, скорости работы программы
И что в этом плохого. Как только локальные иде будут тормозить меньше браузера то можно будет о чем-то говорить. А так браузер жрёт необоснованно много ресурсов для решения любых задач.
работать над проектами из любой точки мира и на любом устройстве
Работать в иде с телефона или планшета - это мазохизм.
Да и если есть интернет то подключаться к удалённым серверам по rdp или ssh никто не мешает. Нафига лишние посредники?
IvanTheCrazy
09.11.2023 10:58Да просто облачные ide - это в том числе работа на удаленной виртуальной машине. С инпут лагами в том числе. Спасибо, но нет
tommyangelo27
09.11.2023 10:58+1Как-то пришлось в одной компании работать по RDP, примерно месяцев 8 так трудился. Периодические лаги при наборе и редкие проблемы с коннектом - бесят страшно. Так это учитывая, что на другом конце привычная IDE, а не какая-то новая облачная.
GBR-613
09.11.2023 10:58+3Обычно человеку нужен не только IDE. Человеку нужна ещё электронная почта, поиск файла по содержимому в файловой системе и т.д. И вот у меня Cloud9 и Gmail. Всё хорошо, все облачно, только как мне послать по почте прикреплённый файл? Как посмотреть сгенкрированную моим кодом картинку? Получается, что все время работать на удалённой машине не получается, нужно всё время файлы таскать туда-сюда.
Функциональность Cloud9 по сравнению с PyCharm ограничена. Не смертельно, но неприятно.
Вот пример из жизни. Я работаю на Питоне и мне надо дебаггировать один и тот же код разными venv. Как мне переключить Cloud9 на использование одного из них? Я пытался разобраться, и мне это просто надоело. Ну его, этот Cloud9...
solotony
09.11.2023 10:58Ключевое неудобство - нужен интернет. В поезде/самолете не поработаешь. На даче или на море - как повезет.
gen_dalf
09.11.2023 10:58Проблема "работает на моей машине" как раз таки решается. Представьте, что вы можете запустить среду разработки как любой другой контейнер сразу в нужной среде. Например на QA. Сразу получаете все необходимые доступы и внешние зависимости. Ваше запущенное под отладкой приложение уже пишет логи куда нужно, уже находится за балансером и к нему могут обращаться другие приложения - сразу крутиться в целевой инфраструктуре. Красота же!
KEugene
09.11.2023 10:58+1Так что кофе, пролитое на ноутбук, не грозит такими уж печальными последствиями.
Какова вероятность пролития кофе и отказа доступа к облачному сервису?.. А на случай пожара, потопа и нападения инопланетян я делаю регулярно бекап на диск, который лежит в пожарозащищенном кейсе вместе с важными документами.
Из-за особенностей бизнеса, приходится пользоваться гуглодиском (с файлами на нем работает команда). Пару лет назад был инцидент и пропал ряд файлов. То есть, файлы были видны, но они все были 1 к. Служба поддержки признала, что что-то в этом есть, и они готовы восстановить, если я дам пути и размеры файлов. Понятно, размеров у меня не было. С тех пор я регулярно делаю резервную копию данных облака на локальный компьютер. Можно сказать, теперь я "дую на холодное молоко". Но ничего важного в облаке я держать не стану.
Ratenti
09.11.2023 10:58Равное имеется в виду когда код не был скопирован никуда потому что был в процессе написания
Ratenti
09.11.2023 10:58Примечательно, что самое большое преимущество, которое такое приложение, как Google Таблицы, дает работнику умственного труда – устранение перекосов версий и создание системы учета – на самом деле не является стимулом для сред разработки к переходу в облако.
profFortran
А нафига оно надо? Emacs или Vim поставил и программируй на здоровье.