Будущее программирование-2
Интересно, что хоть я в своем предыдущем посте явно и написал, что работа в облаке и работа в браузере — две совершенно перпендикулярных оси, я все равно получил пару комментариев от людей, которым кажется, что ЕСЛИ ты хочешь чтобы IDE работала в облаке, НЕОБХОДИМО, чтобы она работала в браузере.
если у тебя браузер лишь отвечает за фронт, то ресуркоёмкие вещи (индексация всякая, подсказочки, рефакторинг, компеляция) можно отдать серваку (по-моему пока ms додумались до language server, не?).
Не секрет, что многие считают идею очень прожорливой, поэтому мне кажется это было бы отличным выходом запихнуть иде в браузер где все сложные и ресурсоемкие операции выполнются на сервере, а тебе предоставляется только окошко терминал.
Поэтому я на всякий случай повторю еще раз:
Можно сделать локальную, прожорливую ИДЕ нативно. Классика: IDEA, Eclipse, Visual Studio. Подход прост и понятен всем.
Можно сделать облачную ИДЕ в браузере: Cloud9, Jupyter. Это то, что считалось будущим программирования, но пока стало очень нишевой штукой. Но это НЕ единственный возможный вариант.
Можно сделать локальную, прожорливую ИДЕ в браузере. Это то, что сделали VS Code и Atom. Не очень понятно, что они от этого выиграли, кроме того, что попали в волну, когда всем показалось, что будущее за JavaScript.
Можно сделать облачную ИДЕ с нативным приложением. Примеров ИДЕ пока нет, но самому подходу сто лет, называется тонкий клиент, отлично себя зарекомендовал.
Никто не мешает отгружать вычисления, ворочать облачными ресурсами и делать все остальное, НЕ будучи засунутым в браузер. Еще раз: браузер это довольно странная, во многом ограниченная и компромиссная платформа, которая дает leverage простым веб-страницам, но стоит начать делать что-то чуть более сложное (да, приложения, причем ЛЮБЫЕ приложения, даже самые элементарные), как она тут же начинает путаться под ногами и мешать.
Ну серьезно, подумайте, вот начали вы облачную ИДЕ делать, чем браузер вам поможет? HTTP-клиентом? Серьезно, там больше НИЧЕГО нет, одни ограничения.
Да, у веб-страниц есть ОЩУЩЕНИЕ что они легковеснее, чем нативные ИДЕ. Но это только ощущение. Если нужна максимальная производительность, то внезапно оказывается, что JS очень медленный язык, грузит он не так уж и мало, интерпретирует долго и КАЖДЫЙ РАЗ.
Единственное, почему, как мне кажется, в умах облачное == браузерное это репутация нативных ИДЕ как прожорливых монстров. Но это просто XCode или там Idea так написаны, как супер-комбайны «все и сразу». Они портят репутацию нативных ИДЕ, но это не значит что любые нативные ИДЕ должны быть такими. Нативные приложения могут быть легкими, шустрыми, простыми. Так мало кто делает, но это возможно и гораздо проще, чем заставить быстро работать браузер.