Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

В чому був сенс для створення Android Studio обирати IntelliJ IDEA?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Ось і вийшла вже 3 версія Android Studio. На жаль, для мене дива не сталось. Ті самі хвилини очікування поки все скомпілюється в черговий раз("розкіш" давно забута завдяки Eclipse). Все ті ж банальні незручності з написанням коду, все той же перевантажений, незручний і відверто не красивий UI.

Але найбільше мене в цій історії хвилює те, що скрізь я чую зовсім інше. Всі навкруги розхвалюють Idea, радіють що Google відмовився нарешті від Eclipse на користь цієї чудової IDE. Дехто взагалі вже не бачить жодного майбутнього для Eclipse бо Idea зовсім затьмарило саме Затемнення. Отже виходить так, що я щось не розумію, випускаю з уваги, щось дуже важливе, або просто не зрозумів, як користуватись чудовим інструментом.

Допоможіть, будь ласка, мені розібратись.

Ось деякі з тих речей, які я зовсім не розумію:

1)Перше і найголовніше. Інкрементний компілятор. Коли він з’явився для Java з Eclipse ще на початку цього століття, я вважав, що було зроблено цілу революцію в розробці ПЗ. Бо завдяки цій новації відпала ціла фаза в процесі кодування. І хоч вона не була такою вже складною, але займала чимало часу і вимотувала. Можливо ви ще пам’ятаєте Turbo Pascal та Turbo C, коли другий переважав перший тим, що після невдалої компіляції показував всі знайдені синтаксичні помилки, тоді як перший зупинявся одразу на першій же помилці і треба було натискати до нестями F9 виправляючи усілякий бруд типу забутої точки з комою.
З Eclipse ця проблема взагалі зникла, бо ви одразу бачите і виправляєте всі синтаксичні проблеми по всьому проекту(а не лише тільки у файлі де зараз редагуєте). Це особливо критично, коли ви робити великий кусень роботи, редагуєте багато файлів і не можете достатньо довго все скомпілювати. А отже коли ви скінчите то принаймні синтаксичні проблеми вас вже не будуть турбувати.
Ну і звичайно дуже приємно, що програма в Eclipse, завдяки цьому чудовому компілятору, весь час підтримується готовою, а отже запуск не змушує вас чекати на черговий білд процес.
Це дуже важливо саме під час розробки, виправлення помилок, тестування. Хоч потім і потрібно буде все перекомпілювати для продакшну і т.і. Але один раз можна і почекати, а от коли це робиш по 100 разів на хвилину...
З Android Studio довелось згадати про старий добрий Turbo Pascal з його одною помилкою на один білд, шкода тільки, що на відміну від AS Turbo Pascal, що робив це миттєво на нормальних комп’ютерах, тут доводиться сидіти і чекати, виправляти і знову чекати.
А як інакше дізнатись в AS, що наприклад зміна параметрів вашого методу зламала десь виклик в якомусь іншому файлі окрім, як перебілдити все, почекавши на список помилок? Та й то видасть воно не все і не за раз.
Тільки не кажіть мені нічого про функції Refactoring, бо мова тут не про це, а це окрема тема, яка теж в AS викликає багато питань.

2)Інша велика проблема це авто виправлення. Це так зручно, що в Eclipse я давно вже не пишу весь код вручну, велику частку його просто генерую за допомогою цієї чудової функції. Просто Ctrl+1 і готово. В AS ця функціональність є і все б нічого, але ж який в ній сенс, якщо для того, щоб отримати бажаний результат треба було підводити курсор саме під те місце, на якому AS зрозуміє, що ви хочете? От наприклад, пишу:
myVar = getMyVar();
Зрозуміло, що коли я допишу, то курсор буде стояти після точки з комою, в Eclipse я просто натиснув Ctrl+1 вибрав локальну змінну і поїхав далі. А в AS? Доводиться витрачати сили та час, щоб поставити курсор десь на мою myVar і тільки тоді.... І так скрізь! Коли робиш це багато разів за день, то можна і втомитись.

3)З автоімпотом взагалі біда. Стільки різних опцій, як це налаштувати, але все працює жахливо, імпортує щось не те і не так. В Eclipse пишеш собі, автопідказка сама вставляє, якщо треба, а вже якщо щось і не вставилось просто робиш Organize Import і все автоматично імпортується(викидається зайве), а все що автоматично не можна зробити, те запитають в одному діалозі. Просто і ефективно. В AS я знайшов Optimize Import, але робить воно що завгодно, але не те що треба.
Окремо треба зазначити, просте копіювання файлів з іншого проекту, з іншими пакетами. Як це просто в Eclipse і яке це нещастя в AS!

4)Навігація по коду. В Eclipse прямо на тулбарі є цілий спектр можливостей для цього. Вперед, назад(що було до 3 версії і в AS, але прибрали навіть це), Вперед/Назад по останнім правкам коду(чи є взагалі таке в AS?). А переміщатись по Occurrences? Те що банально просто робиться в Eclipse в AS теж робиться, але... ну судіть самі, щоб це зробити в AS треба виділити те що треба побачити в інших місцях, здогадатись натиснути Ctrl+Shift+F7, ну а потім, це ж логічно, тиснути F3. Ну і в кінці, коли ви натішитесь, то не забудьте ж ще і вийти з цього чудового режиму!

5)Взагалі організація робочого простору в AS — це проблема. Все змішано в одну купу, але наприклад перетягати вікна так, як треба дуже не проста задача. Як наслідок, ви будете весь час бачити купу зайвого і непотрібного, а те що треба, щоб побачити доведеться докладати зусилля.
В Eclipse це вирішили дуже елегантним рішенням — Перспективами(Perspectives). Ви можете створити собі перспективу для кожного виду робіт і рухати drug-n-dropом будь-яке вікно, як завгодно і куди завгодно. В AS це не тривіальне завдання. Є якісь особливі зони, туди можна перетягнути вікно, але зорганізувати ще і ці зони...

6)З генерацією коду те ж не все гаразд. Скажімо, як і в Eclipse я можу згенерувати геттер та сеттер, але от управляти де його вставити... як? Схоже тільки, якщо попередньо поставити в потрібному місці курсор. Який тоді сенс з такої герерації? А іноді взагалі виходив анекдот! Геренував я нове поле для неоголошеної змінної і одразу після натискання Згенерувати кудись випадково кілкав, так частина поля генерувалась в потрібному місці, а частина там де я клікнув. Мабуть, щоб весь час тримати програміста в тонусі.

7)Форматування коду. Щоб воно почало в AS переносити строчки коду і вміщувати їх по ширині сторінки, треба окремо ще подбати в налаштуваннях. Але ж як воно це робить!!!! Як вам сподобається какий код?
someFunc
();

8)Те що AS сам за вас все автоматично зберігає, а Eclipse змушує про це дбати користувача(хоча насправді Eclipse вміє і це) подається як велике досягнення! Але чого ж це «досягнення» ніяк не можна вимкнути?
Я взагалі, ненавиджу програми, які вважають що вони розумніші за їх користувачів, можливо це і є основною проблемою, чому я ніяк не можу осягнути всю велич AS? Але ж мені потрібний режим, коли я сам вирішую коли зберігати на диску зміни. Іноді дуже зручно, щось почати робити, щоб потім все відкинути одним дуже невимушеним рухом, щоб навіть згадки про це не залишалось.

9)Велика біда в AS з декаруванням гілок дерева проекту. В Eclipse як глянув так одразу бачиш і де не закомічені зміни є(навіть не розгортаючи дерева), де помилки, де ворнінги, який бренч і т.і.
В AS навіть те що можна побачити, ще треба пам’ятати, як інтерпретувати. Бо помічати лише коліром статус файлу...

10)Взагалі організація роботи з репозиторіями це окрема тема. AS вміє все і одразу, але як і завжди універсалізм буває лише за рахунок якості. Як дізнатись під яким юзером ви робите коміт в Git? Це не просто не тривіальне завдання для AS, а може створити серйозні проблеми, які відберуть купу часу та сил, як це було у мене.
Ну а зважаючи на п.9 можна взагалі дуже просто пропустити закомітити, якісь нові файли.
Окрема тема з файлами .idea. Я для себе досі не вирішив, чи треба їх комітити. Вони весь час змінюються, але це мало на що впливає по суті. Лише ще одне зайве заняття для користувача.

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

Отже що я роблю не так? Чому зараз превалює в загалі думка про те що IntellyJ IDEA настільки переважає Eclipse, що Google не пошкодувала часу та ресурсів, щоб відмовитись, хоч і не ідеального, але цілком зрілого та такого, що можна було без проблем допрацювати до ідеалу, ADT на Eclipse, та створили новий IDE на базі IntelliJ IDEA, який м’яко кажучи в порівнянні з Eclipse залишився десь у XX сторіччі, а головне, що сам процес розробки для Android не покращився, а погіршився?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Про эклипс вспоминаю с ужасом, брр. А система сборки ant — это было то ещё чудо. Хвала андроид студии, сейчас скорость разработки и удобство на высоте

Кстати, а почему никто не вспоминает NetBeans? Или у NetBeans с разработкой под андроид все хреново?

з.ы. сам пробовал нетбинс только как IDE для php/js/html ( + есть какая-то поддержка PhoneGap/Cordova) — как она в качестве «java ide под андроид» не в курсе.

Я до этого поста думал, что в 2017 для андроид разработки все используют Intellij, или AndroidStudio, или Web-UI гитхаба/гитлаба ...
А Ant в новые проекты никто не тянет (В здравом уме)...

Никогда не стоит обобщать)

P.S. сколько надо времени, чтобы настроить Jenkins на сборку андроид проекта на еклипсе?

ПЛЮСЫ
1. Идея долго грузится, но потом работает реально быстрей. Эклипс постоянно тормозит у меня.
2. В идее просто куча различных автоподсказок, автозаполнений и прочих мелочей, интеграция с кучей плагинов для самых разных вещей,
3. Переход на градл: да просто потому, что в реальных проектах иногда нужно что-то больше, чем только исходники по стандартным папкам, и я это в полной мере вкусил как на рабочих, так и на личных проектах. То, что в эклипсе приходилось городить внешними скриптами, которые вообще никак не интегрируются в билд, в градле решается скриптом сборки.
4. Для меня интерфейс эклипса — это привет из 90-х. И дело не только в красоте, но и в том, что он таки удобней: интерфейсостроение ушло вперед, а эклипс застрял как ВАЗ.
5. Импорт проекта всегда превращался в квест. Еслипс так ниразу и не подхватил все зависимости как надо с первого раза.
Я работал долгое время на работе на эклипсе, дома писал свой проект в Intellij IDEA и Android Studio. То есть каждый день я менял эти IDE, и таки реально каждый день чувствовал боль, садясь за Eclipse, и каждый минус прочувствовал всеми фибрами разума.
МИНУСЫ Idea перед Eclipse
1. Да, билд в идее медленный, это факт, к сожалению, но это скорей, все таки, к градлу, как к системе сборки.
2. Рекурсивный Find Usages в Eclipse просто бомба.

Дякую. Саме те що я хотів почути. Перелік конкретних переваг та недоліків по пунктах.

Хоча по більшості пунктів мені важко однозначно погодитись.
1)в мене Андроід Студія буває чомусь впадає безпідставно в коматоз, хоча потім і виходить без наслідків. А так складно порівнювати, в принципі і те і те працює непогано зараз, як на мене, особливо SSD на це дуже гарно впливає. Ну і не можна ні на тому ні на іншому працювати з обмеженою ОЗУ.

2)Цікаво було б почути наприклад ТОП-10 таких дрібниць, які відсутні в Екліпсі.

3)Це правда, але ніхто не заважав зробити це в ADT, впринципі тим кому це було потрібно і так робили це за допомогою того ж ANT. Але запускати білд кожного разу коли треба запустити дебаг... Особливо дивно, що навіть коли нічого не змінювалось, запускаєш, а воно витрачає час на новий білд, хоча і не повний, але ж час гаєтья в безглуздих очікуваннях.
Тобто це взагалі не питання Екліпсу чи Ідеї. Це суто проблема інженерів Гугла.
Просто фокус тут в тому, що на Екліпсі вони могли реалізувати інкрементний білд з підсвіткою всіх багів на дереві проекту на ходу, з гарними декораторами на гілках по яких видно не лише, що десь в глибині є баг чи ворнінг, а і що десь є змінений файл, який бренч і т.і. Так от в Екліпсі вони могли зробити, щоб додатково до нормальної системи білду все це було, включно з підтримкою вже скомпілених файлів і швидкого старту для дебагу. А от в Ідеї це неможливо зробити, бо вона на це і не була розрахована.

4)А можете більш детально розкрити цей пункт?
Бо наприклад перспективи та можливість спокійно докати будь-які вью будь-куди, розбивати як завгодно редактор в Екліпс — це дуже зручно. А от в Андроід Студіо мені довелось непогано попітніти, щоб організувати все як треба і все ж до кінця, як хотів, я так і не подужав. Дуже не очевидна і якась засмічена усілякими непотрібними речами штука. Щось десь блимає, вискакує...
Ну і окремо іконки. Варто просто подивитись на жука дебагу в Екліпс та Ідеї...Ідея очевидно наслідує сіру та убогу тему, що притаманна Swing. Такі сірі тона, все однотипне, не виразне і не інформативне. І це не лише питання естетики, це впливає на продуктивність роботи. Очі мають напружуватись, коли треба знайти потрібну функцію, а треба вирізнити потрібну іконку серед подібних безликих екземплярів. Особливо я це відчув під час дебагу, постійно не на те натискав, саме тому, що зображення в АС цих іконок дуже не виразні і не однозначні. Та просто подивіться на них поруч і порівняйте.

5)Це тому, що Екліпсу на Ідею було плювати, він був лідером, а Ідея намагалась його на ринку потіснити, тому там спеціально дбали, щоб імпорт нормально працював. Ну а про експорт природно не дбали. Але ж це все проблема лише тих хто працює з Ідеєю і проблема Ідеї?
І, що цікаво, то коли стикнувся з необхідністю перенести свої проекти з Екліпс/АДТ, то незважаючи на дуже наворочений імпорт в АС, довелось просто створити порожні нові проекти і переносити обережно все руками, бо коли є різні бібліотеки, залежності та бінарні бібліотеки в проекті то імпорт АС суттєво лажає.

Цим динозавром з 90, на жаль, теж доводиться користуватись. Після нього і Android Studio, як бальзам на душу. Це да.

Год рождения Xcode 2003, какие 90е????

Кроме рисовалки интерфейса выглядит как очень старая вижуал студия

Да нормально выглядит, а по фичам вообще агонь!

только если ничего другого не знать.

Лет эдак так 5-6 назад я задавался похожим вопросом: «В чому був сенс для створення Android SDK обирати Java?»

у АС одна проблема — он дичайший тормоз

Многие вопросы весьма спорны, но соглашусь в том, что в Android Studio сборка через Gradle действительно работает в несколько раз (если не на порядки) медленнее чем работал Eclipse с андроид плагином и своим сборщиком. И это печально. И я тоже не понял зачем гугл менял Eclipse как официально поддерживаемую IDE для Android на IDEA. По-моему это из разряда «поменять шило на мыло». И зачем для сборки был взят именно Gradle — этот тормозной тормоз на основе мертворожденного JVM языка? Вообщем это все печально.
Но когда я смотрю на убогость XCode и iOS разработки то мне становится немного веселее :))

Взагаі то я здогадуюсь чому вони перейшли на Gradle. Колись десь мені потрапляла на очі інформація, що девелопери ADT просто не подужали ідею з інкрементальним компілятором Eclipse. Не все вони змогли вписати в цю концепцію. Насправді все завжди там працювало не зовсім гарно. Чим більше підключаєшь різних ліб, більше різних білдів, тим все гірше ставало.
Тому, гадаю, вони пішли по найпростішому шляху. Обрали просто наймоднявішу на той час систему білду(щоб не xml, бо шкода закривати тегі) і все зробили в лоб. Просто і без смаку, проте працює 100%. Як працює — не важливо, важливо лише щоб працювало.
Ну а зараз сидять і вигадують різні милиці, щоб це все прискорити якось. Але як бачимо виходить так собі.
А про Xcode люто плюсую. Як довелось стикнутися з ним, так я навіть добрим словом почав згадувати Visual Studio, хоча після Eclipse там теж був шок, а є ж люди що вважають і VS і XCode найкращими IDE всіх часів і народів.

Вообще не вижу проблему с грейдлом — не нравится — ставь buck от ФБ, он быстрее собирает

Ага или Bazel. Я и думаю что-то попробовать, но очень уж сомневаюсь что все будет работать так же стабильно и не будет проблем подключением всяких андроид-гугло-сервисо-файрбазо либ для которых часто в инСрукциях по подключению надо еще градл-плагины зачем-то подключать. Да и не доверяю я говнокодерам из фейсбука — на одно их перегруженное facebook SDK, или мастадонтовый fb-андроид клиент глянуть — тошнит.

Тут проблема не в тому щоб воно збирало швидше. Проблема в тому, щоб взагалі збирати не треба було коли працюєшь з кодом. Щоб всі проблеми підсвічувались у дереві проекту.
А коли збираєшь для продакшану чи там ще для чогось окремо, то робиш це не так вже і часто, тому швидкість не так важлива.
Що до нестандартних засобів, то з цим завжди проблеми. Наприклад я довго протримався на Eclipse, але зрештою вимушений був все ж перейти на AS який офіційно підтримується, тому що виникла якась дуже не очевидна проблема. Мені так ніхто і не зміг пояснити в чому там хитрість і просто нічого з тим поробити в розумні терміни та зусплля не було можливості:
stackoverflow.com/...​-to-avoid-exception-while

Згаяв купу часу та зусиль нінащо.
Тому в таких складних речах краще не фантазувати з нестандартними засобами і витрачати свою енегргію на саму роботу.

Что-то мне подсказывает что у тебя студия просто неправильно настроена. У меня всё подсвечивается, быстро ищется и работает.
P.S. дефолтные настройки студии далеко не айс. Потрать полчаса и пройдись по всем настройкам и построй под себя. Вот парочка ссылок, которыми я пользовался в своё время. blog.mindorks.com/...​tudio-plugins-3beb3861fa7
medium.com/...​id-developer-af86e7cf56d2

Дякую за посилання, обов’язково вивчу. Хоча я вже багато чого знайшов, як покращати.
Але дуже не люблю це. Часто доводиться або сатвити нову версію, або взагалі налаштовувати на новому комп’ютері. Тому кожного разу пройтись і підлаштувати все дуже контрпродуктивно.
Я вже давно стараюсь підлаштовуватись під стандарнтні налаштування, щоб кожного разу змінювати лише геть зовсім необхідні речі.

Що до того, що все працює. Ви не могли для мене невеличкий експеремент здійснити? Можливо дійсно, я десь щось не докрутив.
Візміть якійсь проект де є декілька пакеджів. Так щоб в одному з глибинних пакеджів був клас з якоюсь функцією, яка викликається з іншого пакеджу, що знаходиться на іншій гілці.
Переконайтесь, що більше нічого не відкривалось окрім файлу де оголошена функція. Змініть параметри в цій функції(я знаю про рефакторинг, але для експеременту, просто змініть вручну). І от коли зміна буде збережена Ви побачите, що з’явилась помилка в тому іншому файлі де викликалась ця функція? При тому, що той файл не був відкрит і навіть його не було видно в дереві проекту, бо його пакедж було згорнуто?
Що Ви зробите, щоб побачити таки, що з’явилась нова помилка і треба виправити скрізь і виклики зміненої функції?

Что мешает нажать экспорт сеттингс, и потом импорт сеттингс на новом инстале? Перенос настроек в идее сводится к двум нажатиям мышкой.

Та невже? Що воно тоді постійно намагається змінювати у файлах, які знаходяться в кожному проекті в .idea? Усілякі там misc.xml runConfiguration.xml,codeStyleSettings.xml, workspace.xml, compiler.xml
І так для кожного проекту окремо.
Те про що Ви кажете все це агрегує в один файл для переносу?
І як я мушу все це відслідковувати? Для кожного окремого проекту, що я тількі но синхронізував з git репозиторієм перевіряти чи раптом не потрібо перешити знову мої улюблені налаштування?
Чи не здається що два натискання миші замало буде?

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

И зачем для сборки был взят именно Gradle — этот тормозной тормоз на основе мертворожденного JVM языка?

Джависты немного подзажрались с быстротой сборки. Типа если грейдл на 2 секунды дольше собирает, то сразу уже «тормозной тормоз».

Если бы 2 секунды разница была никтобы слова не сказал...

Может здесь найдете ответы на свои вопросы
www.youtube.com/...​watch?v=WZ69YaRis_M&t=29s

Цікаве відео, дякую.
Проте, майже все більш менш корисне є і в Eclipse, до того ж деякі функції реалізовані краще. Скажімо, я не знаю як на відео вийшло, що виділиний блок скопіювався нормально по Cmd+D, це одне з найдратівливіших для мене функцій в AS. В мене воно копіює зазвичай прямо після виділеного блоку на останній строчці. Дуже дратує. В Eclipse все життя користувався Cmd+Alt+Down і все нормально копіювало з нової строчки.

Вибір IDE — це дуже суб’єктивна справа.
Я, наприклад, вже 3-4 роки працюю з IDEA і на Eclipse продукт для тієї ж технології дивитися не можу — виглядає страшнувато і працює дивно.

Це якщо лише дивитись, то все буде суб’єктивно. А от коли попрацюєшь на всіх тих IDE, то вже об’єктивно можна сказати де працюється найкраще.

Хочете юзати Eclipse compiler в IDEA — юзайте.
Автосейв можна вимкнути, генерація коду, як на мене, нормальна, при бажанні можна автоформат зробити.
З імпортом і його реорганізацією особливих проблем не помічав.
Організація робочого простору — кожному по різному подобається.
Робота з VCS — так, якось не вражає. Як, в принципі, і в Eclipse. Мені взагалі більше SourceTree подобається. А фанати command line зараз скажуть «шо то х... шо ето х...» :)
P.S.
Так можна написати, що Eclipse фігня, бо хз скільки років не може навіть зберегти налаштування кольорової теми без дивних маніпуляцій з oomph.
Плюс воно періодично починає сипати малозрозумілими помилками із своїх нутрощів в ErrorLog. В кращому випадку це просто warnings, в гіршому помилки, від яких не спасає навіть перезапуск IDE, тільки знесення конфігурації і переналаштування. Ну хіба що з Neon-ом такого не спостерігав (тьфу-тьфу-тьфу).

Як навчии юзати IDEA Eclipse compiler. Тільки так щоб в дереві проекту я бачив миттєво всі помилки та ворнінги, як в Екліпсі включно з парентами? І так, щоб не сидіти і дивитись кожного разу, як я щось змінюю, чекати, поки перекомпіляться якісь там таски в Gradle?

Як вимкнути автосейв? Тільки саме вимкнути, а не усілякі трюки з затримками.

А мне как ученику, Intellij IDEA даже больше по душе. Учил Java — Intellij IDEA, учил Android — Android Studio, учу JavaScript — WebStorm и все это удовольствие на одной платформе!

Re:В чому був сенс для створення Android Studio обирати IntelliJ IDEA?
Ну Android Studio — это просто урезанная IDEA и все. Тот же самый Intellij IDEA Community Edition, только сильнее заточенный под Android. Думаю при таком взгляден на проблему вопрос в заголовке поста отпадает сам собой.

ИМХО, и не нужно сравнивать Eclipse и AS. AS совсем не альтернатива Eclipse. Eclipse более логично сравнивать Intellij IDEA Ultimate Edition — именно между ними и выбирают профессиональные разработчики. Думаю в интернете достаточно и статей с таким сравнением и холоваров на эту тему.

Как это вы еще не вспомнили про ручное редактирование AndroidManifest...

Четко помню, когда 7 лет назад осваивал Java (и Android), выбирал, какую IDE использовать. Потом посмотрел на работе «по сторонам»: на Eclipse писали джуны, на Netbeans писали мидлы, на IDEA писали сеньоры. Сделал для себя выводы.

Ну Ви хоч через 7 років збагнули в чому секрет, того чому обирають саме IDEA? Про це власне питання. Може сеньорам тим просто доплачували більше за більш шідливі умови на виробництві?

Давным-давно, проработав 5 лет на Эклипсе, решил попробовать Идею, потому что многие хвалили и она потихоньку набирала популярность.
Первый месяц жутко плевался, все шорткаты надо было переучивать, те же претензии к инкрементному компилятору и переменным и т.п.
Месяца за три выучил основные шорткаты, осознал, что флоу с переменными и с отображением ошибок в Идее ничуть не хуже, просто оно другое. Вдобавок к тому времени стало совершенно очевидно, что между ИДЕшками пропасть, и они не в пользу Эклипса.
Поначалу сложно, это правда, но дальше становится ясно, что Идея настолько лучше, что сложно даже сравнивать. И чем дальше, тем явственней разница.

Якщо різниця настільки відчутна, можете навести хоча б декілька найбільш кричущіх прикладів? Чим IDEA настільки краще ніж Eclipse?

Номинально, обе ИДЕшки имеют плюс-минус одинаковый функционал. В каждом аспекте Идея лучше. Оценить это можно лишь попользовавшись ею определенное время.
Думаю, большинство девелоперов согласятся, что в Гугл дураков не набирают. И раз уж Гугл переориентировал Студию с Эклипса на Идею, то только потому, что хотел облегчить разработчикам жизнь.
Потерпите пару месяцев, и сами сможете ответить на свой вопрос.

Без конкретних прикладів твердження виглядає дуже суб’єктивним. Я ж в своєму пості навів лише декілька прикладів де все навпаки, навіть там де схожий функціонал, реалізовано в Ідеї це гірше, і я міг би ще навести багато конкретних прикладів, просто тоді мій допис ніхто б не дочитав до кінця. Користуюсь AS я вже не преший день і навіть не перший місяц.
Щось конкретне не підкажете?

А про Гугл дуже дотепно :-) Просто подивіться на те скільки deprecated API вони породжують. Як на мене, досить показово.
А подивіться скільки Гугл закриває проектів? Раптом, просто бац і все! Екліпс це ж не єдиний такий приклад. Це така практика в компанії, раптом взяти і закрити. Ну не шмагла і все. Давайте заново! А чому так відбувається?..
І найголовніше, Гугл це все ж комерційна компанія, тому її рішення не обов’язково, а частіше, скоріше не пов’язані з технічними аспектами.

Консерватизм — не лучшая позиция в сфере ПО. Знать еще одну ИДЕшку, еще один язык программирования, еще один фреймворк — это только плюс. Даже спустя 16 лет в разработке я постоянно учу что-то новое каждый день и вижу в этом только плюсы.
Запаситесь терпением. Я еще не слышал ни одного случая, чтобы кто-то поработал на Идее и потом перешел на Эклипс.
Убыточные проекты Гугл закрывает, это факт. Но на Андроиде Гугл зарабатывает. Не прямо, но косвенно. Он им стратегически важен. И они пытаются упростить разработку.

Она больше делает за тебя, без лишних телодвижений.. В эклипсе все решалось плагинами, в идеи из коробки почти все есть.. Единственный плагин который я ставил, это Key promoter.

Ну так а що конкретно? Це ж все пустопорожні твердження. Давайте конкретні приклади. І що поганого в плагінах? Коли майже все є — це називається bloatware. Воно все є, але нічого нормально робити не може, все галмує і блимає в очах.
В цьому сенсі я звичайно не можу не погодитись. От навіщо мені в меню щось про C++, якщо я зараз розробляю лише на Java?

Це ж все пустопорожні твердження.

Да, это надо прочувствовать. Как автомобили разных классов. Вроде бы и тот, и тот едет, у обоих по 4 колеса и одинаковое количество дверей. Но в том, что выше классом, дизайнеры продумали все вплоть до звука захлопывания дверцы. Пока на нем определенное время не поездишь, не поймешь, чем же он так хорош. А поездив, не сможешь без этого обойтись.

Ну що за маячня? Автомобілі різних класів, як мінімум робляться з різного класу запчастин та матеріалів, мають різний рівень наповнення, різні вимоги до якості.
Вам, що треба обов’язково їздити на Лексусі, щоб зрозуміти чим він кращій ніж Хундай Туксон, чи навіть Тойота на базі якої він робиться?
IDE ж не жінка, щоб не можна було зрозуміти, що саме вам так в ньому подобається, а що ні. Якщо одна прогармма краще робить свою роботу, то нема проблем перелічити конкретні факти. Інакше це вже щось накшталт релігійного культу.

Стаття дуже гарно демонструє, що розкази про те що Idea краще за Eclipse — більше схожа на сліпу віру, або банальне не розуміння того, що і як робить Eclipse.

1.Приклад з debug це одне з того, що мене дуже дратує в Idea, щоб просто подивитись в дебазі, що треба ти повинний здогадатись куди поставити курсор, щоб здогадалась Ідея і потім ретельно перевіривши, що вона все правильно здогадалась тиснути додатково кнопку Evaluate, а як вона налажала, так ще бери і правь руками. Та я для таких справ просто додаю у Watch Expresion.
Чим це простіше ніж просто мишею виділити та в контекстному меню викликати Inspect? Ну як мінімум не треба ще зайву кнопку натискати.

2. Взагалі не зрозумів про що людина пише. Давно Eclipse вміє пропонувати те що треба. До того ж робить це значно краще від ІДЕЇ, бо як раз нещодавно у класі поставив курсор і хотів прооверрайдити метод, так тупа Ідея замість списку методів суперкласу спочатку мені якісь ключові слова почала показувати. Я плюнув та просто почав набирати те що треба.

3.Рефакторинг — про це нічого не можу сказати, бо не переймався конкретно описаною специфічною задачею ні в Eclipse ні в Idea

От і всі ВЕЛИКІ «переваги», які не такі вже і переваги?

Мы не можем убедить вас в преимуществах Студии перед Эклипсом. Мы старались но не смогли. Простите.

Через пару месяцев самому будет смешно, что не мог увидеть явную разницу в классе ;)

Это как добавить х2 оперативки. Вроде никаких изменений. Но если потом убрать...

В меню Help есть Productivity Guide, который полезен особенно на первых порах. Это отличная отправная точка к тому, чтобы начать использовать Идею в полную силу.

Ну я, например, перестал тестировать через кнопку Build правильный ли у меня синтаксис, как вы описываете это в статье, поэтому на счет инкрементального компилятора я вас не понимаю. Мой код синтаксически правильный в 99% случаев и вместо этого я ранаю юнит тесты когда результат на мой взгляд уже готов. И тогда штуки типа Refactoring, Find Usages, etc — становятся во главу угла, когда вы их почему-то намеренно опустили (видимо как неважные/ненужные, хотя именно это правильный способ найти все вызовы метода сигнатуру которого вы меняете, а не Build, это если не вспоминать про @Deprecated и обратную совместимость, ну да ладно). Идея гораздо круче понимает контекст с которым я работаю, когда эклипс это просто текстовый редактор с автодополнением и приблудами (ну по крайней мере был лет 5 назад когда я с него ушел). Сейчас уже сложно вспомнить все детали о разнице между двумя инструментами, хорошо запомнились только эмоции. Сначала плевался (переучивание хоткеев итд), потом прозрение.

Я не тестую. В мене виходить так, що багато доводиться в голові, щось проектувати і тримати, поики все наб’єшь — обов’язково будеш помилятись. І це такий процес, що навіть не помилятись, а свідомо залишати деякі куски коду не завершеними, бо поки не довигадуєшь одне, інше може залишатись лише у напівзавершеному стані.
Відтак дуже важливо відчувати і бачити, що де і як не так і не завершено.
В ІДЕЇ, як і у всіх решті не автоінкрементних ІДЄ відчуваєш себе сліпцем. Працюєшь, працюєшь, а потім ба-бах і починаєшь чистити дурні помилки, до того ж, як я помітив AS не здатна була навіть мені всі одразу показати їх. Тут просто іншого виходу немає, як білдити-виправляти, білдити-виправляти... і ніякі тести до того поки все це сміття не виправиш не запустиш.
Що до рефакторингу і find usages, я не згадував, бо просто неможливо було впихнути все в один допис, і, скажімо, я ще не до кінця розібрався поки що, як все те що мені було елементарно робити в Eclipse можна робити в Idea. Але от скажімо в Eclipse я можу знайти всі виклики моєї функуцї. Один клік і все видно. В Idea я спробував для цієї цілі скористатись цим Find Usages. Отримав дерево з тим хто викликає, ким викликається і ще щось. Але по суті так і не знайшов те що шукав. Тому плюнув і пройшовся звичайним пошуком по файлах. Я розумію, що Ідея це вміє робити, але... перед тим як про це писати, треба мені, ще розібратись.
Ну і зрештою, своїм постом я не намагався пожалітися, яка погана Ідея. Моя ціль була дізнатись від знавців Idea саме про те, чим саме вона переважає Eclipse. Без суб’єктивізму про те, що щось там треба відчути, самому зрозуміти, все просо круто, але що саме нікому не відомо, або про те що люди просто не знають, що таке давно є і в Екліпс і є значно кращим. А от саме про конкретні факти, приклади.
Якщо Ви вважаєте, що Find Usages це така унікальна і дуже потрібна функція, що значно спрощує реальну роботу і це саме неможна зробити в Eclipse, або чим саме Refactoring в Idea настільки краще ніж в Eclipse, якісь конкретні приклади того в чому Eclipse відверто і безнадійно програє. От що мені хотілося б довідатись.

І окремо, що таке «розуміє контекст»? Багато про це кажуть, але я ніяк не збагну.
От я елементарно беру свій клас і хочу пронаслідувати якусь функцію. Я навіть не пам’ятаю, як вона там називалась. В Екліпс я тисну Ctrl+Space і одразу бачу нагорі списку мої функції. А що я бачу в AS в такому ж випадку? Якісь непотрібні ключові слова і лише десь там в глибині можно серед іншого непотрібу знайти те що треба. В чому проявляється це «розуміння конетксту»?
Або те що в Eclipse називається Quickfix, викликається по Ctrl+1. Я пишу собі var = new Test(); Ctrl+1 і воно робить мені Test var = new Test(); і я собі далі спокійно пишу.
А в AS щоб подібне проробити, треба написати var = new Test(); а потім підвести курсор під var і лише тоді можна добитись того ж самого ну і писати далі теж просто не вийде. Треба курсор повертати назад. Я так розумію що це і є прояв «розуміння контексту», тобто розумнішає воно лише в певному контексті.

Слепцом вас делает не ИДЕ. Плохому танцору...
Звучит так будто вы пишете много спаггетти и мало нормально декомпозированного и структурированного кода. Иначе не пришлось бы

багато доводиться в голові, щось проектувати і тримати

Что бы не чистить

сміття

нужно его не производить :)
Я думаю именно это люди здесь вам и пытаются донести. Идея не лучше просто по набору фич. Это нельзя просто взять и описать. И вообще «лучше» это понятие ну очень относительное. Для понимания контекста и сценария использования требуется для начала повысить скилл ;) И это вам не объяснят в комменте на доу, это бывает занимает годы.
Для примера попытайтесь дровосеку из средневековья объяснить чем же бензопила лучше, он тоже будет чертыхаться. И держать неудобно, и тяжелая, и вот это вот туда-сюда делать тоже неудобно...
Или вот пример с машинами вам тут приводили. Я как начинающий водитель недавно ощутил это на себе. Без понимания «контекста» было сложно сделать выбор, какую купить. Кто-бы мне не давал советов по этому поводу, я их слышал, но не слушал. Моих знаний было недостаточно понять мотивацию, ведь кому-то нужно раздавать угла на парковке, кому-то заварить дифф, а кому-то безопасность.
Аналогичные холивары постоянно происходят по поводу android vs iphone. Когда-то я был приверженцем андроида за его возможности кастомизации. Потом перешел на айфон по той же причине — за отсутствие кастомизации. Потому что пропало лишнее время и интерес разбираться во всех этих настройках, надо что-бы просто работало из коробки. Но тогда, если-бы мне кто-то попытался объяснить за айфон, я бы посмеялся им в лицо и припомнил за айтюнс.
К чему я клоню, это к пониманию термина «лучший». Для начала определитесь со сценарием использования и потом подберите инструмент. Black/white ответов не бывает. Может вам вообще атом подойдет. Если во главе угла у вас сейчас стоит базовый автокомплит, может вам и лучше посидеть с эклипсом пока.

перед тим як про це писати, треба мені, ще розібратись

This. Идите разбираться :)

Дивна якась у Вас категоричність в діагнозі. З таким вмінням все декомпозитувати і структувати не зрозуміло взагалі навіщо Вам будь-яка IDE, навіщо всілякі рефакторинги, дебагери та профайлери? Все ж з коробки має у Вас працювати, якщо звичано Ви це *нормально* робите. ;)

І окремо, що таке «розуміє контекст»? Багато про це кажуть, але я ніяк не збагну.
От я елементарно беру свій клас і хочу пронаслідувати якусь функцію. Я навіть не пам’ятаю, як вона там називалась. В Екліпс я тисну Ctrl+Space і одразу бачу нагорі списку мої функції. А що я бачу в AS в такому ж випадку? Якісь непотрібні ключові слова і лише десь там в глибині можно серед іншого непотрібу знайти те що треба. В чому проявляється це «розуміння конетксту»?
Або те що в Eclipse називається Quickfix, викликається по Ctrl+1. Я пишу собі var = new Test(); Ctrl+1 і воно робить мені Test var = new Test(); і я собі далі спокійно пишу.
А в AS щоб подібне проробити, треба написати var = new Test(); а потім підвести курсор під var і лише тоді можна добитись того ж самого ну і писати далі теж просто не вийде. Треба курсор повертати назад. Я так розумію що це і є прояв «розуміння контексту», тобто розумнішає воно лише в певному контексті.

Из всего Вами сказанного видно, что вы просто не разобрались до конца с хоткеями и фичами идеи.

Например, хотите что-то переопределить — жмёте Ctrl-O и вуаля — все методы перед вами при чём разбиты по каждому из суперклассов. Переопределяй — не хочу!)

Ваш хвалёный Quickfix: пишем «new Test().var» -> жмём Enter -> Вбиваем имя переменной => Success.

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

В меню Help есть Productivity Guide

Кстати, вот это был очень хороший совет.

Дякую, дуже цікаво! Я спробував — працює! Трішки через одне місце, інтуїтивно здогадатись про це не просто. Але добре, що є.

А з хоткеямі в мене біда. Доводиться одночасно працювати ще в XCode, Visual Studio та Eclipse і це лише IDE, а ще використовую прості редактори типу Geany, LibreOffice etc. Тому досить важко тримати всі ці хоткеї в голові. Переважно тримаються лише самі необхідні, а решту задач я або мишею по меню клацаю, або по тулбару і т.і., тому для мене важливо щоб все було максимально доступним і інтуїтивним різними способами і хоткеї не найкращій варіант.

Наприклад, якщо взяти той же Quickfix. Я і користуватись Ctrl+1 не одразу почав, і навіть зараз не завжди так використовую. В Екліпсі ця можливість дублюється спеціальною іконкою зліва. В Ідеї те ж є щось подібне, але головна відмінність в тому, що в Екліпсі воно весь час підсвічує, а в Ідеї лише коли стати у відповідне місце курсором. Тобто зазвичай поки набираєш текст то підказка зникає.

уверенно пересаживаешься на рачик

Опечатка по Фрейду :)

Что такое «рачик»?

Після довгої роботи з VS спочатку AS звичайно, «дичь рідкісна», але з часом звикається, трохи в налаштуваннях покулупався, під себе обтесав, нічого так, тільки код деколи форматує дивно і gradle трохи задовбує.

ты медленно, но уверенно пересаживаешься на рачик со своим проверенным софтом и ДЕ

Та бывает наоборот, пересажываешся с рачика на гейбук, и забываешь как в страшном сне все эти бесконечные допиливанивая напильноком всего и все после каждого 3-ого упдейта, вечно подающий хз почему ДЕ и всей прочий секс ради секса в линуксе вообще и в рачике вчасности.
С Иде тожесамое

ну и по этим словам можно сразу определить кто есть кто.

Сможете определить?

Підписатись на коментарі