Как стать автором
Обновить

Комментарии 112

Очень вдохновляет и радует, что это не Electron JS. В официальном блоге сообщили, что Fleet написан на Kotlin и Rust, а графическая оболочка построена на Skiko — котлиновском биндинге к известному фреймворку Skia.

интересно, почему не на https://github.com/JetBrains/compose-jb ?.. Получается в компании как минимум 2 собственных фреймворка для построения кроссплатформенного UI

Ну понравилось ребятам из JetBrains делать фреймворки. У них еще ведь есть биндинги Skia для Java. А вообще, для Fleet это объясняется так:

The UI framework is similar to Compose, but we started when Jetpack Compose wasn’t there :)

Видимо они много экспериментировали с графическими оболочками и возможно со временем какой то из фрейворков будет объявлен как deprecated.

О, я когда увидел новость, задался этим вопросом, а тут вон оно как. Моё, как говорится, уважение.
НЛО прилетело и опубликовало эту надпись здесь
То, что это ЕЩЁ ОДИН браузер.

Это движок для рендера иерархических графических компонентов, и при разработке достаточно сложного графического интерфейса своими силами у вас тоже получится такой же ЕЩЁ ОДИН браузер :). Дополню старинный тезис «любая достаточно сложная программа - это не дописанная лисп-машина» тезисом «любой достаточно сложный гуй - это не дописанный веб-браузер» :).

Так то да, но браузер имеет гору legacy и необходимость обратно-совместимо это всё поддерживать. Если писать "рендерилку иерархических графических компонентов" с нуля, то можно сделать "то что нужно", и не делать "то что не нужно". И быть в этом деле успешнее.

Собственно, в Qt и, если не ошибаюсь, в GTK+ так и сделали. Тем более, что сам формат HTML — это всё-таки формат для отображения текста на условную бумагу, а не формирования условного пульта управления с кнопками. То есть это заготовка для книги, а не проект строительства. Но его уже 20 лет пытаются использовать именно в таком качестве.

HTML (5) уже давно про приложения, а не про бумажную вёрстку, да.

И это плохо. Давно можно было сделать что-то вроде QML, который был бы создан специально для описания именно интерфейса, а не как HTML, был бы лишён наследия пяти предыдущих версий, которые были как раз про условно бумажный документ и так далее. А если нужно воткнуть именно документ — просто обеспечить вставку HTML и всё. Но это же надо подумать! Так что пусть программисты клеят пульт управления из бумажек с распечатанными на них текстами и строят из тех же бумажек сложные системы рычагов — ведь кнопок и проводов не завезли. А пользователи пусть покупают компьютеры раза в три мощнее, чем им нужно, потому что лишнюю мощность съест интерфейс, созданный инструментами, для этого не предназначенными.

Вы сильно демонизируете веб и браузеры, очень-очень-очень трудно будет написать движок лэяутов эффективнее того же вебкита (если у вас не просто пара кнопок в интерфейсе), а чтобы это ещё и кроссплатформенно было, и с богатствами типа видео или анимированных стилей, и с национальными шрифтами, и прочая и прочая. И ХТМЛ5 - это стек технологий, разрабатываемый СПЕЦИАЛЬНО для таких rich-приложений (на ХТМЛ4 он лишь "случайно похожий" некоторыми тегами, не более :))

очень-очень-очень трудно будет написать движок лэяутов эффективнее того же вебкита

Ну не знаю, по моему опыту приложения на QML в среднем заметно более отзывчивые, чем на Electron. При этом все перечисленные «богатства» и кроссплатформенность там есть.


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

Сижу на ВЦ-коде, после всех нативных и джавовых IDE - глоток свежего воздуха и эталон отзывчивости. Да, это субъективно, и да, такого качества разработчики добились не с самой первой версии (ооочень сильно переработали редактор под капотом, теперь хоть гигабайтовые файлы открывай), да и сам электрон с хромом не стоят на месте :). В общем, вполне может оказаться, что детские болезни, отвернувшие вас от «настольного веба», уже устранены (не знаю) :).

Ну как сказать, например, в Qt такой специализированный браузер уже есть, причём, он заточен именно под отображение интерфейса, а не документов. Проблема же браузера в том, что обрабатываемый им формат — это документ, а из него пытаются делать генератор интерфейса. Да, плоскогубцами тоже можно забивать гвозди, но всё-таки молотком забивать удобнее и быстрее.

Если не ошибаюсь, у GTK+ тоже есть подобный «браузер».
но всё-таки молотком забивать удобнее и быстрее.

А можно пример? Просто мне кажется, что браузер это уже не молоток, это давно мульти-тул. Скажем с появлением CSS3 многие вещи стали кратко удобнее. В HTML тоже много вкусных плюшек завезли. Да и inline SVG очень удобная штука. Для хитрых вещей есть canvas.

И вот тут мы натыкаемся на то, что мультитул — это либо инструмент для специфических ситуаций, когда нет возможности или просто очень неудобно менять предмет в руках, либо компромис между наличием инструмента и его неудобством, потому что рычаги маленькие, клинки короткие, пилы и отвёртки короткие, да ещё и крепление к рукояти так себе. Да, я люблю ножи и прочий подобный инструмент и уже некоторое время тщательно изучаю рынок мультитулов — хочу уже максимально удобный найти. Так вот, большая часть этих самых мультитулов содержит весьма странные инструменты вроде пилки для ногтей, непонятной фиговины для чистки рыбы (совершенно бессмысленная штука в мультитуле, хотя как отдельный инструмент на рыбалке или на кухне, вероятно, была бы полезной) и ещё куча всего подобного. Так вот, браузер, если рассматривать применительно к построению интерфейсов, это как раз такой плохо продуманный китайский мультитул.

А, да, он ещё и дорогой. Особенно, если учитывать бесполезность значительной части возможностей. Это если про мультитулы. А браузер — тяжёлый, потому что за универсальность надо платить. При том, что половина, если не больше, просто не нужна для построения интерфейсов. Не говоря уже об обеспечении обратной совместимости по отображению документов, которая тут вообще ни при чём.

Я потому и говорю, пример бы. А то может получиться что мультитул, хоть и медленнее узкоспециализированных конкурентов, но всё таки удобнее (как ни странно). И не потому, что мультитул. А потому что над ним работает уже которое десятилетие куча народу, и в него вливают тонны денег. Бывает так. что бабло побеждает логику. И теория не подтверждается практикой.

Пример чего? Системы, строящей интерфейс по документу с описанием? Так упоминал же Qt и GTK+ (начиная со второй версии, в первой тоже было, но как внешняя приблуда). Кажется, ещё FLTK так умеет, но не уверен: там такая штука есть в инструменте разработки интерфейса, а потом по документу генерируется шаблон кода на C++, а вот работает ли что-то подобное во время исполнения, даже не знаю. Наверняка есть и ещё что-то в этом роде.
Пример чего?

Пример того когда на web сделать UI неудобно, а не {other technology} удобно.


Системы, строящей интерфейс по документу с описанием?

Ну так в web такого полно. Ограничений нет. Одна из первым моих задача 12 лет назад была — написать генератор в меру сложных форм по JSON-у.

Пример того когда на web сделать UI неудобно, а не {other technology} удобно.
Почти всегда: в никуда сжираются ресурсы системы и время пользователя, не говоря уже о низкой надёжности такого интерфейса, ломающегося из-за чего попало. Да хоть баннерорезка может сломать.

Ну так в web такого полно.
Нет, это не по описанию, это средствами документа. Это похоже на интерфейс книги-игры. Да, играть можно. но настолько криво и неудобно, что только от плохой жизни таким пользоваться и будешь. Но нет, некоторые пользуются костылями и говорят, что ходить без костылей — это для гиков.

Вы на какой-то другой вопрос ответили. Я спросил про удобнее, а не про производительность. Про "средствами документа" ничего не понял. Приведите, пожалуйста, конкретный пример.


Да хоть баннерорезка может сломать.

А давно в GTK интерфейсах появились баннерорезки? Зачем вы приводите изначально не относящиеся к делу примеры?

Баннерорезки в браузерах. И иногда ломают интерфейсы сайтов. А в GTK+ всё, вроде бы работает. Как и в Qt.

Что касается «удобнее», то, видимо, стоит внимательнее изучить Qt c идущими в составе этого фрэймворка QScript и QML.
Баннерорезки в браузерах

Ага. В GTK их нет. Т.е. ваш довод можно трактовать так: "у них ломается то, чего у нас отродясь не было". Не понимаю зачем вы привели этот аргумент. Он точно не в пользу GTK. К тому же какие блин баннерорезки в Electron-е?


Что касается «удобнее», то, видимо, стоит внимательнее изучить Qt c идущими в составе этого фрэймворка QScript и QML.

Я думал вы пример приведёте. А вы меня посылаете изучать чужую платформу. Да ещё и внимательно. Это наверное с неделю. Спасибо что хоть не на три буквы (хотя это примерно тоже самое).


Давайте тогда завершим этот спор. Примеров у вас нет. Сообщения вы мои по диагонали читаете, посему отвечаете не на поставленные вопросы, а не те, которые сами хотите. Да ещё и нерелевантные аргументы приводите.


При всём при том, что мне просто интересен какой-нибудь кейс, когда на вебе что-то делать очень сложно, а на GTK очень удобно. Я ведь даже не спорю, что такие кейсы должны быть.

«у них ломается то, чего у нас отродясь не было»
Потому и не ломается, что не было. За ненадобностью. Но Вы почему-то считаете, что это недостаток.

А про баннерорезки — это не про Electron, а про веб, про который Вы помянули.

Я думал вы пример приведёте.
Таки пример чего именно Вам надо? Системы, которая генерирует интерфейс по описанию? Так ведь Qt+QML.

когда на вебе что-то делать очень сложно, а на GTK очень удобно
Удобство «сделать» зависит от набора актуальных навыков разработчика. А вот удобство «пользоваться» — вот тут Electron проигрывает с разгромным счётом, поскольку сжирает ресурсы компьютера в никуда, при том, что то же самое можно было бы сделать в разы более лёгким и быстрым. Да, я понимаю, что можно взять i9 о 128 ядрах и с парой терабайт ОЗУ и там всё будет летать, только это не показатель умения программировать, это показатель толщины кошелька пользователя и развитости вычислительной техники, компенсирующей криворукость разработчиков, которые изучили JS и немного CSS и несут это немногое везде, где могут.

Одно дело — временный костыль вроде AppImage, который позволяет скачать и сразу запустить и попробовать, и совсем другое — использование на постоянной основе.

Сложно с вами. Вы снова не читаете, но зато пишете. Кажется вам вообще не интересно мнение собеседника, поэтому получается монолог. Хорошего дня.

Ну и не забываем, что Qt и GTK+, в идеале, присутствуют в системе в единственном экземпляре, хотя на деле приходится тащить несколько версий. С другой стороны, чаще всего используется всё-таки только одна версия. А вот Electron, который на самом деле слегка порезанный Chrome, каждая программа тащит отдельно, из-за чего нет совместного использования этого движка. То есть сейчас у меня загружены 2 браузера: Firefox, который собственно браузер, и Skype, который не браузер, но тоже браузер. А если я запущу ещё VS Code, то этих браузеров сразу станет 3. Причём, Skype и VS Code даже не попытаются работать с одним экземпляром Electron-а. А если я захочу поставить клиент Discord-а, то в памяти будет висеть уже 4 браузера.

И при этом Pidgin и Leafpad будут использовать один экземпляр GTK2.0, а Claws Mail, XFCE4, Transmission и ещё куча всего пользуются одним экземпляром кода GTK3.0, хотя, конечно, это не очень хорошо: в идеале все они должны пользоваться одной версией и желательно — последней, но это уже мечты.

А за пределами Linux это тоже так работает?

Да. Пять лет назад работал в одной конторе, где от меня требовалось писать код, который потом работал бы на сервере под Linux, но установить Linux на рабочую машину не разрешили. Поставил Geany и Pidgin и они работали с одним экземпляром GTK. Так де в Windows используется один экземпляр WinAPI, хотя тащить с собой половину системы — это как раз в традициях Windows, перенятых Mac OS X. То, что в этих системах не упорядочивается работа с зависимостями, это недостаток, а не то, на что надо ссылаться, оправдывая лень разработчиков: то, что другие для забивания каждого гвоздя покупают отдельный молоток, не повод самим так делать.

А, да, во FreeBSD система зависимостей тоже работает.
это недостаток, а не то, на что надо ссылаться, оправдывая лень разработчиков

Я просто привык исходить из реальностей, а не фантазий\пожеланий. Нас, линуксоидов, два с половиной человека. Наши хотелки никому не интересны. А в других ОС, обычно, софт всё, что ему нужно, тащит сам с собой. Так выгоднее бизнесу. Да и в наш мир проникают эти appImage-ы, snap-ы и прочее. И мы можем сколько угодно ворчать о несправедливости и несовершенстве этого мира, от этого ничего не изменится.

Просто в других ОС любят лет 20-40 тормозить, а потом выдать то же самое за прорывное решение. Например, я отлично помню, как в 2001, кажется, году MS гордо заявила о совершенно новой и уникальной технологии Termial Server. А я хлопал глазами и не мог понять, что тут такого уникального, если в Linux это есть с самого начала, как и в UNIX, то есть идее и разным её реализациям уже 40 лет, включая и графический удалённый доступ. Не сказал бы, что стоит на такие «прорывы» ориентироваться и не бить по рукам тех, кто тащит такие решения в системы, где механизм зависимостей и пакетной установки есть и хорошо работает.
и не бить по рукам тех

Для нас и так толком никто софт не пишет, а вы тех немногих, кто пишет, предлагаете бить по руками. Ох.


и хорошо работает.

Плохо, плохо работает. Я уже не раз отказывался от софта, который не удавалось установить из-за конфликта совместимостей. Полезного софта.

Они не пишут софт для «нас», они кое-как сделали одну сборку, забив на то, где и как это будет работать, и всё. Ну вот кто просит засовывать интерпретатор Python в AppImage, если он уже есть в системе? Но нет, AppImage! Модно же! Я уж не говорю про то, что собрать DEB и RPM — это один раз файлы конфигурации написать, а потом только команду сборки запускать.

А с тем, чтобы что-то не ставилось из-за зависимостей, я не сталкивался уже лет 10, если не больше.
я не сталкивался уже лет 10, если не больше.

Ну вот кто просит засовывать интерпретатор Python в AppImage, если он уже есть в системе

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

«Фиксится» указанием конкретной версии библиотеки и этим часто злоупотребляют. Потому что это помогает запустить приложение сейчас, но потом надо отследить обновление библиотеки и установить без таких костылей. Потому что это именно костыль. И, кстати, в нормально поддерживаемых приложениях и репозиториях такое случается крайне редко.

P.S. Я таки питонист и как раз притаскивание своей версии питона жутко бесит, потому что в системе есть свой. Внезапно. И если система актуальная, то проблем не возникает. Проблемы вылезают, когда надо что-то делать на системе, которую собирали из какой-нибудь Ubuntu LTS года через 2-3 после выхода, а потом оставили вариться в собственном соку лет на пять. Тогда конечно ничего не будет запускаться.
Я уж не говорю про то, что собрать DEB и RPM — это один раз файлы конфигурации написать, а потом только команду сборки запускать.

А вы можете назвать хоть один программный продукт, авторы которого не поленились этого сделать и предоставляют пакеты для всех актуальных версий всех популярных дистрибутивов?
А если популярными считать не только Ubuntu, Mint и Fedora?


Существующие пакетные менеджеры хорошо работают для свободного/открытого ПО, потому что мейнтейнеры дистрибутивов могут сами собирать его в соответствии со стандартами, принятыми в конкретном дистрибутиве.
Для проприетарного же ПО обеспечение лёгкой установки и безпроблемной работы на всём многообразии линуксов — непосильная задача. И именно эту проблему и решают AppImage, Flatpak и snap, каждый со своими компромисами.

Я понимаю, что собрать для вообще всех — это практически невозможно. Но даже DEB и RPM перекроют большую часть дистрибутивов. И возможностями Flatpack и Snap не очень пользуются, просто запихивая Electron в пакет. А AppImage, как я уже отвечал Вам же, это про «надо запустить вотпрямщас и не колышет». И да, если такая программа одна, то AppImage — приемлемое решение. Но если надо поставить клиент Discord, а в системе уже есть Skype, то всё становится печально, потому что оба используют Elecctron, но каждый свою копию.
Но даже DEB и RPM перекроют большую часть дистрибутивов.

А вот и нет, уже с deb вы легко можете столкнуться с несовместимостью разных версий зависимостей, а с RPM всё ещё гораздо сложнее — его используют совершенно независимые друг от друга дистрибутивы, в которых легко одна и та же зависимость может иметь разное имя. Для SUSE и Fedora вам понадобятся два разных RPM.

В snap и Flatpak есть механизмы дедупликации зависимостей, а AppImage на мой взгляд временное явление.

Да, AppImage — когда надо запустить вотпрямщас и не колышет. А разного рода snap и Flatpack… Тоже не от хорошей жизни, потому что не очень умеют использовать то, что уже установлено в систему, насколько я понял. То есть вот стоит у меня какая-то версия Qt, а Flatpack легко и нерпринуждённо выкачивает второй её экземпляр. Ну или не в точности такую, но близкую версию, с которой программа должна работать без проблем. Только вот приложения, которые сделаны на Electron-е всё равно тащат свой экземпляр браузера, а зачастую и не только его, внутри пакета и плевать хотели на дедупликацию, которую обеспечивают ОС, система зависимостей самой ОС и система зависимостей Snap и Flatpack. Потому что зачем напрягаться? Тяп-ляп — и в продакшн. И никто не будет потом обновлять библиотеки и так и будут нести их в мир вместе со старыми багами и уязвимостями. Потому что МОГУТ!

Да, но с flatpak и snap это временная ситуация из-за малого возраста инструментария по сравнению с классическими РЕПами и в новых версиях этим активно занимаются. Даже была статья, кажется, в блоге гнома где они эту проблему подробно разбирали.

А если я захочу поставить клиент Discord-а, то в памяти будет висеть уже 4 браузера.

Знаете, я видел десктопный таск менеджер. Устроен он был так — фронт на электроне, как полагается. А еще там же был бэк — на PHP с апачем. И все это завернуто в десктопный пакет.

Значит, делал кто-то ещё более криворукий, чем обычно.

Если была б нода, то вышел бы очередной вскод. Вообще для подправить мне нравится Kate от кедов(да и вообще любой блокнот выпущенный для линукса, ведь линуксом пользуются программисты, и это все прекрасно знают).

Вскод на ссд открывается моментально, но на hdd electronjs даёт о себе знать

Так разницу и можно увидеть на слабом железе. А не когда у тебя сверх быстрый ссд, i9 и 64 озу.

Не очень получается распарсить. Это выходит kotlin native + rust (тоже native), то есть без JVM в конечном итоге?

В комментариях упоминается AWT, а значит видимо используется не Kotlin Native, а все таки JVM.

kotlin/jvm + rust

Одно дело когда что-то нативное вместо электрона, а другое если jvm, выходит шило на мыло, еще со времен eclipse не припомню ни одного приложения на яве, которое бы не подлагивало.

Так-то предыдущие IDE от JetBrains тоже работают через JVM, и достаточно быстро

Пробовал WebStorm с джетбрейновским jvm, на моем ноутбуке(ssd, i5, 12g ram) работать не очень комфортно, во время редактирования кода рандомно фризится на пару секунд и даже когда все работает нормально есть заметная на глаз задержка ввода. В vscode отзывчивость сравнима с нативными редакторами(например, sublime и cudatext), хотя и уступает обвешанному плагинами neovim.

Sublime, как по мне, на голову быстрее vscode.

По скорости загрузки быстрее, в остальном я бы не сказал, что сублим значительно быстрее.

На больших документах уже на глаз заметно быстрее открытие/поиск/навигация.

Проверял на js сборке в 100к строк и 4.5мб(ибо я не знаю где еще может встретиться такой большой исходник):

  1. Настроенный сублим с расшинениями тормозил нищадно, сброс помог, грузится с прогрессбаром секунд 5, после чего работает приемлимо, при прокрутке есть незначительный лаг.

  2. Cudatext наотрез отказался от подсветки и открыл моментально(на меньшем файле подсветил и тормозил)

  3. Nvim(не голый) - открывает 3с, работает так же быстро как и с другими файлами, но перемещение к концу файла - 3с

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

Подытожил я бы так, они все не идеально справляются с этой задачей, на практике мне не приходится работать с такими исходниками.

P.S. sublime единственный, кого пришлось сбросить, по хорошему надо проводить отдельный тест с чистыми и рабочими конфигурациями.

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

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

Проверял на линуксе(Gnome/XWayland), vscode действительно постоянно оптимизировуют, из недавнего - добавили раскраску парных скобок, пускай это опционально, но это позволило отказаться от довольно прожерливого расширения.

Не понял, будет ли оно работать без Space-а и интернета?

НЛО прилетело и опубликовало эту надпись здесь
Ещё его нет в поезде, в посёлках Сибири (даже без староверов) и много где ещё. Вспомним новость про студента, которому приходилось залезать на берёзу, чтобы поймать сигнал и позаниматься.
НЛО прилетело и опубликовало эту надпись здесь
Ну вот мне периодически приходится так работать. В поезде. Потому что ездить в гости и на мероприятия хочется, но и поддерживать батарею парсеров тоже надо, а разработчики торговых площадок имеют тенденцию эти своим площадки менять.

Что касается количества разработчиков в посёлках, я не знаю, сколько их. Но вот работать с Geany можно и без сети, как и с Eclipse и много с чем ещё. Или с плохо работающим доступом в сеть. А если делать продукт, который обязательно хочет этот самый доступ в сеть, но при этом такой доступ не требуется для его основной функции, то это будет очень плохой продукт. Впрочем, уже написали, что Fleet работает и без сети. Просто у него есть функция удалённой разработки.

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

Иногда соединение с интернетом сильно тупит (много wi-fi вокруг). Иногда интернет дорогой (роуминг). Иногда нет возможности подключиться вообще (в здании без wi-fi где интернет не ловит, или ледяной дождь обесточил весь район на неделю).

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

Будет. Backend поддержки сложных проектов может быть запущен локально.

Не раскрыта тема нужности. Сейчас это выглядит как VSC/Sublime со вшитым LSP и пшик-фичей в виде совместной работы. Учитывая отсутствие всякого намёка на JS, не понятно кто будет писать для этого редактора плагины.

P.S. JB Mono шикарен, огромный за него респект

>Сейчас это выглядит как VSC/Sublime со вшитым LSP

Это как вскод, но

  • Код закрыт

  • ЛСП нет

  • Поддерживает в разы меньше языков

Лично мне не понятна цель создания этого редактора. IDE? Уже есть, тем более от джетбреинс. Универсальный редактор кода? Вскод.

Уже есть, тем более от джетбреинс.

Проблема сейчас в том, что у JB под каждый язык используется своя IDE, а это не очень удобно. Хотелось бы видеть одну универсальную IDE, но с полноценным функционалом, а не VS Code.

НЛО прилетело и опубликовало эту надпись здесь

Вроде бы C++ исключение, для него действительно нужен отдельный Clion, хоть я и не понимаю, почему.

А ещё C# — исключение, для него нужен отдельный Rider. А мне как раз C# и C++ нужны, иногда Python. В случае JetBrains это получается три разных IDE.

Для сравнения: Visual Studio (не Code) поддерживает всё в одной IDE и до кучи умеет в одновременную отладку C# и C++.

А ещё C# — исключение, для него нужен отдельный Rider.

А поддержка Unreal Engine (С++) есть только в Rider. Почему не в CLion? Очевидно они решили сделать из Rider специфическую IDE для геймдева, с нацеливанием на сегмент студий. Иначе его покупать не будут.

Имхо, JB пошли по самому ужасному пути, упаковывая каждый свой продукт в отдельное приложение и богомерзкий snap. Pycharm + CLion + Rider и вот у тебя уже захавано прилично места. Почему не сделали расширения плагинами, как в Eclipse?

Имхо, JB пошли по самому ужасному пути, упаковывая каждый свой продукт в отдельное приложение и богомерзкий snap.

Так ничто не мешает скачать напрямую или через тулбокс.
К слову, в snap оно занимает намного меньше места и устанавливается моментально, т.к. ничего не надо распаковывать:

Snap: Rider — 1043M одним файлом, CLion — 767M
Native: Rider — 2400M, 6500 файлов.

Ну а насчёт отдельной IDE под каждый язык: на то были причины. IDEA же гвоздями прибита к Java, и по-простому прикрутить к ней C# было почти нереально.

Idea ultimate же, как минимум для большинства.

NetBeans? Eclipse? Правда, когда последний раз был нужен Eclipse в комплекте с PyDev, он жестоко глючил. Надеюсь, это временно. А в остальном — ни одна IDE не работает лучше Geany. Внезапно. Это при поддержке кучи языков. Правда, нет такого залезания внутрь объектов, как у больших IDE, и при работе с большими проектами это начинает напрягать, но вот в том, что касается работы с кодом как с текстом, конкурентов просто нет.
НЛО прилетело и опубликовало эту надпись здесь

Нужен для более тесной интеграции в экосистему JetBrains. Со всеми вытекающими отсюда последствиями.

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

НЛО прилетело и опубликовало эту надпись здесь

И будет стоить в N раз дешевле полноценного продукта JetBrains? Слова Free в анонсе нет. А чем оно лучше бесплатного VSCode?

Нужно не нужно вопрос конечно интересый. Но то что они вместо электрона сделали надстройку на skia это круто. Flutter уже показал что это работает хорошо. Может выйти очень интересная платформа для разработки десктоп прилаг.

Flutter уже показал что это работает хорошо

Несогласен насчёт флюттера. Мобильные приложения на нём адски тормозят, хотя в том же Android Skia — часть системы и работает плавно. Но стоит запустить какое-нибудь флюттер приложение вроде Яндекс.Go или Vox… пиши пропало.

Возможно тормоза - это не вина Flutter, а тех, кто пишет на нём "Яндекс.Go или Vox"

Пока я не встречу быстродействующего и плавного приложения на Flutter, не греющего процессор и делающего хоть что-то большее, чем примеры кода из SDK, я буду продолжать обвинять именно его в тормозности.
Недавно для себя пруф оф концепт читалки набрасывал на флаттере, плюс, в текущем приложении которое на работе делаю читалка на веб вью (по разным причинам). Запускал оба варианта на андроиде за 4к рублей для теста. Демка на флаттере была довольно простая, просто просчитывал размеры символов, делил текст в несколько миллионов знаков на страницы, и дальше отображал — пару секунд времени. После этого страницы листались с плавными анимациями. Отрендерить такой же текст в веб вью с нужными стилями (разбиение на страницы, а не скролл) — телефон не осилил. 500к знаков — секунд 30 грузило и тормозило все. Да, там стили посложнее чем просто разбиение на страницы — но тем не менее.
З.Ы. Флаттер далеко не идеален и не самая производительная штука — но куда лучше электронов. Для кроссплатформы альтернатив вообще не вижу сейчас. Другое дело что в мобильной разработке многие сейчас упоролись в архитектуры ради архитектур, и это накладывать оверхед может.
А в яндексе оно встроено в натив и только часть UI через него, и там наверно много времени на прогрев тратится после запуска куска на флаттере.

Для кроссплатформа есть Qt. На мобилах так вообще только натив, потому что там ограниченный ресурс, прежде всего батареи. Но да, сложнее же, дольше, а качество... да кому оно нужно

Ну так флаттер и компилится в нативные .so для того же андроида, и отрисовывает на нативной skia.

Тогда откуда такой долгий и адский "прогрев" во всех смыслах?

А я абсолютно хз что там яндекс наворотил. Если вы про запуск флаттер части — там понятно, граф зависимостей поднять, данные подтянуть с накопителя. Если тормоза при скролле — это уже на совести разрабов яндекса лаги.
З.Ы. вообще вот такое вот решение со встраиванием флаттера как я слышал в целом довольно проблемное, и для нормальной его работы в таком режиме хитрить надо.

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


А, и на каком девайсе тестировали то?

Когда это Яндекс.Go стал flutter приложением?

Добрый вечер

Это показывает что в приложении используется "flutter", но не то что это "flutter" приложение. Если дошло до распаковки apk файлов, то ведь можно увидеть что там "дофига" kotlin/java кода, и скорее можно сказать что это "native" приложение с вкраплениями flutter, чем наоборот?

У VSCode отвратительная поддержка шарпа, а в остальном она божественна. Подожду поддержки шарпов в этой IDE и попробую. Rider после vsCode выглядит как монстр.

Сравнить IDE с текстовым редактором - сильно

А что есть в IDE но нет в вс коде? Давайте списочком, так от трёх пунктов. А то не интересно.

Вы серьёзно? Берёте IDE, смотрите главное меню и сравниваете с VS Code. В случае C# наберётся минимум 10 пунктов:

  1. Навигация.

  2. Рефакторинг.

  3. Генерация кода.

  4. Полноценная поддержка системы сборки.

  5. Режимы запуска с различной конфигурацией.

  6. Полноценная отладка с просмотром значений переменных, потоков.

  7. Тесты, анализ покрытий.

  8. Статический анализ кода.

  9. Профилировщик.

  10. Просмотр IL кода.

  11. GUI интерфейс для NuGet.

  12. Работа с ресурсными файлами.

А так да, для солюшена, состоящего только из одного проекта и нескольких файлов, VS Code вполне хватает.

Пробежался по вашему списку для TS\JS в vsCode:


  1. yes
  2. yes
  3. no
  4. no
  5. yes
  6. yes
  7. yes
  8. yes
  9. no
  10. unrelated
  11. unrelated
  12. unrelated

Касательно 3, 4 и 9, не знаю как с этим в webStorm. Если сильно лучше чем "no", было бы интересно сравнить. Скажем в vsCode есть возможность запуска npm-script-ов, что едва ли можно назвать "полноценной поддержкой системы сборки". Но учитывая какой у нас зоопарк систем сборок и их настроек, не уверен что хоть кто-то брался за это дело на уровне GUI. Могу ошибаться.


С кодогенерацией тоже сложно. Кажется есть удачные решения для Vue и Angular, но в общем и целом у нас это очень нераспространённая практика, ввиду того той же самой вариативности. Чёрт его знает что и как генерировать, так чтобы в этом оставался какой-то смысл. А всякие сниплеты и макросы — есть.


Можно ли после этого считать что vsCode для TS\JS это IDE? Или всё ещё "текстовый редактор"?

Если под генерацией кода имеется виду scaffolding (сниппеты с темплейтами), то это встроенная фича VS Code, т.ч. п. 3 тоже yes.

По пункту 4 не очень ясно, что хочется. Запуск сборки веб-пака?) Это-то точно есть.

НЛО прилетело и опубликовало эту надпись здесь
не имеет значения где находится проект — локально, в контейнере или же на удаленном сервере.

Скажите, не совсем понимаю. Есть проект на c/c++, но собирается только на Linux. Я могу хостить исходники на локальной Linux машине, а разрабатывать проект на маке? То есть компиляция проекта также будет происходить на Linux, а не локальной IDE окружении/toolchain? Проблема: хочу разрабывать на маке (просто привычнее), но так как часть туллинга/зависимостей нет на маке, то CLion например практически не подсвечивает (autocompletion, definitions) проект.

Да, судя по приведённым схемам, это эквивалентно запуску IDE на удалённой машине, а локальная машина становится тонким клиентом.

Очень круто. Спасибо! Тогда буду ждать поддержку c/c++.

Ждать уже не надо) Можно пробовать New Remote Development в CLion (https://www.jetbrains.com/remote-development/) уже начиная c 2021.3. JetBrains Gateway уже поддерживает CLion.

For remote development, the CLion instance runs locally, and your source files are also placed on the local client, with automatic synchronization to the remote host. On the remote host side, CLion performs compilation and build using host compilers and CMake/make, uses host GDB for debug, and runs the application on the remote target.

Синхронизация файлов с удалённым сервером, удалённая компиляция и отладка, всё по ssh.

Да, так делать можно, но это не решает проблему @house2008:

так как часть туллинга/зависимостей нет на маке, то CLion например практически не подсвечивает (autocompletion, definitions) проект.

Это вы читаете описание старого remote dev в CLion. А с 2021.3 есть новый, через JetBrains Gateway, смотрите по ссылке в моем сообщении

Я дала ссылку на корневую страницу про remote dev. Это новая технология. Старый remote dev тоже пока остается в CLion (через создание тулчейна, описание которого вы запостили). Сейчас новую технологию конкретно в CLion можно использовать только через Gateway. В Release Candidate уже работает. На днях будет релиз и мы напишем чуть подробнее тут на Хабре.

Upd: попробовал, действительно работоспособно.

Единственный нюанс: оно не использует установленную IDE, а выкачивает отдельный инстанс на удалённую систему.

С Fleet видимо, просто произойдёт унификация локального и удалённого доступа.

локально можно поставить только Gateway без полноценной IDE

Это как раз понятно. Я про то, что на удалённой машине уже была IDE, а он установил вторую.

Вы уже сейчас можете делать плюс-минус тоже самое с помощью JetBrains Gateway https://www.jetbrains.com/help/idea/2021.3/remote-development-a.html#launch_gateway
Просто Fleet - IDE специально для этого созданная и улучшающая опыт от удалённой разработки, а Gateway сделан на существующих технологиях и использует толстый клиент конкретной IDE на сервере, например, CLion, и тонкий клиент Gateway (который только рисует интерфейс толстого) с вашей стороны.

All Products лицензия его покроет? Или отдельно надо будет брать?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости