Интересная ситуация сложилась с облачными 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)


  1. profFortran
    09.11.2023 10:58
    +12

    А нафига оно надо? Emacs или Vim поставил и программируй на здоровье.


  1. dprotopopov
    09.11.2023 10:58

    Я с удовольствием пользуюсь разными тулзами в сети - не надо тащить всю инфраструктуру и среду разработки/тестирования себе на комп для разовой задачки

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


  1. ZlobniyShurik
    09.11.2023 10:58
    +11

    Используешь импортный облачный сервис - в самый неподходящий момент отключают отечественных разработчиков.

    Используешь отечественный облачный сервис - туда не могут достучаться коллеги из-за бугра или командированные.

    Вывод? Любишь облака - подымай свои :)


  1. Einherjar
    09.11.2023 10:58
    +10

    доступна из любого места

    чтобы был Интернет

    Это взаимоисключающие понятия. Да и в чем преимущество непонятно, мой ноут тоже доступен мне из любого места если я его беру с собой, только интернет не нужен чтобы код писать.

    Это означает, что их можно использовать на любом устройстве, которое поддерживает веб-браузер

    На телефоне запускать IDE как то глупо, а десктопные и так есть кроссплатформенные под любую десктопную ОС, потому тоже как то слабовато. Да и оверхед из за браузера приведет к тому что тормозить это все будет и жрать еще больше памяти.


  1. MAXH0
    09.11.2023 10:58
    +6

    Тут разницу в отзывчивости между vim и VS замечают и разводят холивары. А вы о каких то облачных сервисах.


  1. Ugli
    09.11.2023 10:58

    Непонятно, как действовать в случае сбоев и падении сервисов.

    понятно же, как действовать - никак


  1. ChessMax
    09.11.2023 10:58

    Иде тормозят постоянно, даже при банальном наборе текста. Что дико раздражает. Облачные Иде к этим задержкам ещё добавят время на передачу данных на сервер и обратно. И получим этакое программирование по переписке?)


    1. tentakle
      09.11.2023 10:58
      -13

      Наркоман что ли? Когда это сообщение набирал тоже задержки испытывал?


      1. tentakle
        09.11.2023 10:58
        -5

        Судя по минусам на Хабре и правда остались одни наркоманы.

        Да еще и судя по профилю вы еще и разработчики. Онлайн редактор у них с задержками.

        Так и живем.


        1. Tony-Sol
          09.11.2023 10:58

          Минусы навесили вполне справедливо - сообщение это «отправил-забыл», но код писать это постоянное взаимодействие с intelliSence/language-server’ом, а оно даже на локалке бывает тупит и подтормаживает

          По требованиям к каналу и задержкам, все равно что сравнить сетевую игру в какой-нибудь многопользовательский шутер типа battlefield с homm 3


    1. igurylev
      09.11.2023 10:58
      +7

      Можно же как? Написать продвинутую логику клиентского кеширования всего кода, чтобы всё работало локально, включая сканирование всей структуры проекта для работы автокомплита. А синхронизировать между устройствами можно, например, git-ом. Хотя постойте...


      1. JerryI
        09.11.2023 10:58

        Вы открыли vscode…


  1. kovserg
    09.11.2023 10:58

    Облачные IDE работают в браузере, поэтому они не зависят от операционной системы или аппаратного обеспечения компьютера

    А вот браузеры теперь зависят от операционной системы. Новые браузеры на отрез отказываются пускаться на чем попало, только свежие ос. А старые браузеры новыми веб интерфейсами не поддерживаются.

    Разработчики привыкли к удобным средам и большое внимание уделяют отзывчивости интерфейса, скорости работы программы

    И что в этом плохого. Как только локальные иде будут тормозить меньше браузера то можно будет о чем-то говорить. А так браузер жрёт необоснованно много ресурсов для решения любых задач.

    работать над проектами из любой точки мира и на любом устройстве

    Работать в иде с телефона или планшета - это мазохизм.

    Да и если есть интернет то подключаться к удалённым серверам по rdp или ssh никто не мешает. Нафига лишние посредники?


  1. IvanTheCrazy
    09.11.2023 10:58

    Да просто облачные ide - это в том числе работа на удаленной виртуальной машине. С инпут лагами в том числе. Спасибо, но нет


  1. tommyangelo27
    09.11.2023 10:58
    +1

    Как-то пришлось в одной компании работать по RDP, примерно месяцев 8 так трудился. Периодические лаги при наборе и редкие проблемы с коннектом - бесят страшно. Так это учитывая, что на другом конце привычная IDE, а не какая-то новая облачная.


  1. GBR-613
    09.11.2023 10:58
    +3

    Обычно человеку нужен не только IDE. Человеку нужна ещё электронная почта, поиск файла по содержимому в файловой системе и т.д. И вот у меня Cloud9 и Gmail. Всё хорошо, все облачно, только как мне послать по почте прикреплённый файл? Как посмотреть сгенкрированную моим кодом картинку? Получается, что все время работать на удалённой машине не получается, нужно всё время файлы таскать туда-сюда.

    Функциональность Cloud9 по сравнению с PyCharm ограничена. Не смертельно, но неприятно.

    Вот пример из жизни. Я работаю на Питоне и мне надо дебаггировать один и тот же код разными venv. Как мне переключить Cloud9 на использование одного из них? Я пытался разобраться, и мне это просто надоело. Ну его, этот Cloud9...


  1. solotony
    09.11.2023 10:58

    Ключевое неудобство - нужен интернет. В поезде/самолете не поработаешь. На даче или на море - как повезет.


  1. gen_dalf
    09.11.2023 10:58

    Проблема "работает на моей машине" как раз таки решается. Представьте, что вы можете запустить среду разработки как любой другой контейнер сразу в нужной среде. Например на QA. Сразу получаете все необходимые доступы и внешние зависимости. Ваше запущенное под отладкой приложение уже пишет логи куда нужно, уже находится за балансером и к нему могут обращаться другие приложения - сразу крутиться в целевой инфраструктуре. Красота же!


  1. KEugene
    09.11.2023 10:58
    +1

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

    Какова вероятность пролития кофе и отказа доступа к облачному сервису?.. А на случай пожара, потопа и нападения инопланетян я делаю регулярно бекап на диск, который лежит в пожарозащищенном кейсе вместе с важными документами.

    Из-за особенностей бизнеса, приходится пользоваться гуглодиском (с файлами на нем работает команда). Пару лет назад был инцидент и пропал ряд файлов. То есть, файлы были видны, но они все были 1 к. Служба поддержки признала, что что-то в этом есть, и они готовы восстановить, если я дам пути и размеры файлов. Понятно, размеров у меня не было. С тех пор я регулярно делаю резервную копию данных облака на локальный компьютер. Можно сказать, теперь я "дую на холодное молоко". Но ничего важного в облаке я держать не стану.


    1. Ratenti
      09.11.2023 10:58

      Равное имеется в виду когда код не был скопирован никуда потому что был в процессе написания


  1. Ratenti
    09.11.2023 10:58

    Примечательно, что самое большое преимущество, которое такое приложение, как Google Таблицы, дает работнику умственного труда – устранение перекосов версий и создание системы учета – на самом деле не является стимулом для сред разработки к переходу в облако.

    https://www.warp.dev/blog/why-is-it-taking-so-long-for-cloud-dev-environments-to-catch-on#:~:text=Notably%2C%20the%20biggest%20single%20advantage%20that%20an%20app%20like%20Google%20Sheets