Pull to refresh

Comments 41

Eclipse вообще очень странная IDE. Насчет глючности даже не знаю, мне хватило странности чтобы очень быстро отказаться от нее.

Спорно. Порядка 10 лет использую Eclipse. То ли привык к глюкам, то ли мне после Visual Studio .Net он раем казался :)

Т.е. да бывают какие-то «заезды» но если я встретил 3-4 bug'a eclipse Java compiler'a за 10+ лет с ним, то со Scala IDE/SBT… Ну, вы читали…
если только VS.Net была 10 летней давности, какой нибудь бета версии
Не-не-не. Не надо здесь этот Ваш новодел. Последнюю VS.NET которую я мучал была в 2005 году. Она была так себе. Eclipse ее как тот тузик…

Она и сейчас такая (2017 Community Edition, C#). Элементарных же вещей нету. Хоткеи явно какой-то псих придумал. Скажите, кому вообще взбрело в голову делать их «многоступенчатыми»? Для такой часто используемой операции, как комментирование/раскомментирование кода? Да ещё и разные?! Почему нет хоткея для копирования/дублирования строк? Чёрт возьми, почему элементарно нельзя перейти к методу базового класса, переопределённому в текущем классе? Посмотреть список реализаций интерфейса? Почему поиск по файлу такой убогий? И ещё вагон и маленькая тележка подобных несуразностей.

я отвечал на это:
То ли привык к глюкам, то ли мне после Visual Studio .Net он раем казался :)

Насчет хоткеев — дело привычки. Community, да, линз не хватает, да обрезан еще какой функционал, про Starter вообще не стоит говорить. Но на Community можно поставить Resharper и все выше перечисленное как-то уходит.
Чистая студия — за последние несколько лет — ни одного вылета. А за последний год даже с Resharper'ом. Глюков, таких, как даже в IDEA я не встречал. Даже Rider не может похвастаться стабильностью, хотя вроде как уже полностью от Jetbrains. В последнее время пишу исключительно на Scala, использую IDEA и Pro и Community. Всё устраивает, но привык к функционалу VS+R#, и к стабильности, которой, как мне кажется у продуктов MS больше.
Насчет хоткеев — дело привычки.

К сожалению, нет. Без сторонних плагинов нельзя сделать включение/выключение комментария по хоткею. А именно это чаще всего и нужно: закомментировать одно и раскомментировать другое. По дефолту же нужно ставить пальцы в раскоряку и одной рукой это точно не сделать (ну, если вы не осьминог).


Но на Community можно поставить Resharper

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


Что касается стабильности: на днях буквально столкнулся с багом «mscorlib recursive resource lookup bug», пришлось переставлять студию с потерей всех плагинов и настроек. Конечно, подозреваю, это какое-то кривое взаимодействие с плагинами (стек трейc проходил через кишки Codinion, да и пока экспериентировал с плагинами, много их ставил и удалял, пока не остановился на достаточном для себя минимуме), но как бы название намекает. Соль в том, что в сообщении об ошибке так и пишется — «обнаружил баг бесконечной рекурсии». Ну так, блин, ну отключи ты тогда этот плагин, зачем рушишь всю систему без возможности восстановления (только переустановка)?

Потому что этот баг — это баг в коде который обрабатывает ошибки. Что-то вроде Double Fault. Такие баги практически невозможно нормально обработать…

Это же не баг вида «что-то произошло, но что — хрен знает». Чётко обозначена проблема в самом заголовке окна информационного сообщения: «баг с рекурсией». То есть, худо-бедно, но ошибка обрабатывается. Только почему после этого нельзя штатно (пусть и принудительно) закрыть студию? Вместо этого «Программа не отвечает и Windows её закроет, бла-бла». Triple Fault что ли? Вот тебе и стабильность.

Обрабатывается другая ошибка. Исходная не может быть обработана потому что обработчик ошибок повис в рекурсии.
Я наткнулся на сносящую крышу особенность, когда пытался приспособить Eclipse как среду для компиляции arm-gcc (для микроконтроллеров). Собственно, это был уже готовый пакет на базе эклипса, скачанный с официального сайта производителя микроконтроллеров.
Так вот, эклипс каким-то образом кэширует исходники! То есть когда вы редактируете код, вы редактируете файлы не там где они у вас на диске лежат, а где-то в другом месте, известном одному эклипсу! Поскольку у меня кроме эклипса было еще несколько инструментов, работающих с исходным кодом, я очень быстро удивился: как же так, вот оно изменение, вот сохраняю файл — а в моих исходниках на диске остался старый код.
Этого оказалось достаточно чтобы распрощаться с этой средой разработки навсегда.
Это скорее вопрос рук тех «орлов» кто писал plugin который Вы использовали. Т.е. по большому счету к Eclipse JDT у меня претензий нет (хотелось бы больше, но жить можно), а вот со Scala все просто отвратительно (на наших сценариях). К слову, похожие на Ваши «глюки» я с какой-то периодичностью отлавливаю для Eclipse Clojure plugin'a (Counterclockwise) — т.е. ты вроде редактируешь ф-ию, обновляешь ее через repl, а эффекта 0, но возможно дело в другом. Эта проблема случайная…
Если я правильно помню, то в идее тоже сразу редактируется не файлы на диске, а некоторое внутреннее представление. Рассказывали в каком-то докладе что основной паттерн для иде — огромное количество маленьких файлов. И для диска это плохо. И внутри используется один гигантский файл — кэш. Так что у эклипса явно другая проблема — изменения не скидываются на диск. В идее сброс на диск производится не только при сохранении файла, но и просто при смене фокуса с иде на что-то другое. А при обратной фокусировке диск сканируется на наличие изменений.
Невольно хочется спросить, вы пробовали Scala плагин для IDEA?
Нет, так как для pet-projects мне что-то уже Scala не хочется, а для работы IDEA не применим пока :(

А как там? Все хорошо?
а для работы IDEA не применим пока

Мда, сочувствую, а в чем проблема-то? Если что есть бесплатная Community версия IDEA, где плагин для Скалы работает
Это не только (и столько) про деньги, как про те проекты на которые мы завязаны и которым нет аналогов под IDEA. Например, Eclipse BIRT и пр. (таких штук 5-6). Они развиваются и мы ими более менее довольны…
Лень и наличие коллег которым нужно будет делать то же самое :) Там же не только BIRT. 5-6 подобных Eclipse based projects
На одном из моих прошлых проектов несколько человек спокойно пользовались разными средами разработки (NetBeans, Idea, Eclipse) на разных ОС (разные дистрибутивы Linux и разные версии Windows), и чем пользоваться каждый выбирал сам. Так что коллеги не обязаны пользоваться теми же инструментами.
Как-то все же не очень верно, на мой взгляд, делать выводы о языке из-за глючности используемой IDE.
Scala очень классный язык, но это ж как в том анекдоте про русалку «а как!?». Ну да, все отлично, но он мне нужен в прикладной плоскости (для решения рабочих и не очень задач), а здесь я каждый раз отгребаю от инструментов. Самое в этом отвратительное, что ты не понимаешь, что произошло, как долго ты будешь бороть очередной глюк incremental SBT compiler'a (я все таки очень сильно подозреваю, что дело в нем) и что потом со всем этим делать коллегам.
Автор жалуется на экосистему. Согласитесь, что сколько нибудь масштабная разработка невозможна без IDE и отсутствие комфортной и доступной IDE это существенный аргумент при выборе технологии разработки.
Конечно невозможна. Но автор взял самый фиговый вариант из всех возможных, а выводы делает не про свой выбор, а про экосистему…
Согласен с предыдущим оратором. Это, как и любое другое мнение, субъективно. Переименовал для однозначности, что все плохо только в Scala Eclipse мире.
Scala сам по себе умирает уже. Не взлетела.
Как язык — Scala очень хороша. Что значит «не взлетела». Это не main stream, но у него есть своя ниша и она очень комфортная. Мы бы с превеликим удовольствием писали на Scala если бы это было технически возможно. Я просто такого «шаманства» давно не видел :) см. выше…

Почему такие мысли? Язык очень приятный, для него написаны библиотеки высочайшего класса для работы с сетью, в Java такого пока нет. И все это активно развивается.

… для него написаны библиотеки высочайшего класса для работы с сетью, в Java такого пока нет

Интересное заключение. Вы не могли бы привести пример этих самых библиотек, для которых которых, как вы говорите, нет аналогов в Java?

Akka и Twitter Finagle. Конечно, у них есть java api, но из Java их использовать значительно неудобнее.

И обе основаны на Netty.
Akka как-то трудно назвать "библиотекой для работы с сетью", это огромный набор инструментов. Но да, Lightbend сейчас гарантирует что api для Java будет не хуже чем для Scala, поэтому вполне можно работать и из Java.
На счет Twitter Finagle сложно что-то сказать, с ней не работал, но она не выглядит с виду чем-то невероятным, чего нельзя найти в Java. Тот же Armeria вполне может быть аналогом.

Akka отказались от Netty, но не суть. Важные инновации, которые есть в технологиях Scala — асинхронность, ретраи, таймауты, отмена запросов, мультиплексирование, умные балансеры.


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

Мартышка к старости слаба глазами стала;
А у людей она слыхала,
Что это зло еще не так большой руки:
Лишь стоит завести Очки.
Очков с полдюжины себе она достала;
Вертит Очками так и сяк:
То к темю их прижмет, то их на хвост нанижет,
То их понюхает, то их полижет;
Очки не действуют никак.
Scala IDE откровенно плоха, согласен. К тому же это мертвый проект.

Dotty IDE будет судя по всему на Visual Studio Code
Заголовок надо бы переименовать на «Eclipse Scala IDE — от мертвого осла уши…». C Intellij IDEA работается хорошо.
Мы, силою обстоятельств, плотно (и навечно?) прикованы к Eclipse IDE.

похоже вас всё устраивает, иначе, я думаю, вы нашли бы другую работу, без привязки к Eclipse IDE и с Scala.

о том что жизнь — боль у кого-то. жмём плечами и возвращаемся к своим делам.

Недостаточно вы Скалу любите :)
Я видел энтузиастов, которые вообще текстовым редактором (Sublime, например) пользуются. В том числе люди, непосредсвенно причастные к разработке хардкорных Scala библиотек (cats, например).
Я лично (и большинство коллег) пользуюсь IDEA. Там своих глюков хватает. Иногда не может правильно определить возвращаемый тип, например. Такое случается при использовании сторонних библиотек со сложными типами и кучей implicits (тот же cats). Но мне Intellij как платформа очень нравится. Плюсов куда больше, чем минусов. Да и на Scala я и сам в текстовом редакторе готов писать, если б с IDE совсем дела были плохи.

Я IDE не осилил. Один коллега пользовался Eclipse, вроде как вполне успешно (сейчас он уже в другую фирму перебрался). Но в основном все в команде пользуются коммерческой IDEA со Scala-плугином, и очень довольны. Там даже паттерны работы из Type Driven Development работают, такие как подставление доступной в контексте переменной по типу, даже с учетом имплиситов.
Sign up to leave a comment.

Articles