Материал доступен также в качестве видео:
Всем привет.
Задавали ли вы себе вопрос, можно ли обучать студентов, в т.ч. детей программировать на Java в IDE Eclipse?..
Вопрос это не праздный, поскольку в интернете полно обучающих роликов для детей про Java и Eclipse, можно скачать какие-то книги и самоучители, и скорее всего они будут про Эклипс, да и я сам, чего греха таить, преподавал именно на Eclipse (просто деньги были очень нужны, а в курсе была именно эта IDE).
Сразу хотелось бы сказать, что я лично довольно гибок, и мне по большому счету все равно, какую среду разработки использовать.
Мне довелось работать и на Intellij IDEA, и на Android Studio, которая та же Идея только зеленая, и на Эклипсе, и прости Госсподи, на NetBeans.
Давайте поподробнее.
Основное требование, которое я предъявляю к среде разработки, это чтоб она работала стабильно и не падала.
Хуже всего с этим дела обстояли у Нет Бинса, она регулярно висла.
Мало этого, она написано настолько талантливо, что зависнув однажды могла вогнать себя в кому и напрочь переставала открываться.
После получасового гугления эта кома у Нет Бинса лечится, очищаешь один из каталогов в самой глубине файловой системы, в все ок - у меня был даже выведен ярлык на рабочий стол, чтоб ходить в него и очищать.
Но что ты там очищаешь?
Ты же черт подери удаляешь свои собственные настройки!
Я еще готов мириться с тем, что среда иногда падает - я сам 20 лет программирую и понимаю, что нет программ без ошибок.
Но после ее перезагрузки я же хочу видеть все свои открытые окна, и именно в том порядке как оно было.
И остальное я тоже не хочу настраивать 10 раз на дню.
Этот факт склонности к таким эпичным падениям - первейший признак бракоделов, а с ними мне не по пути.
Работать даже в самой уютной IDE (вообще-то нет), из которой тебя в любую секунду может выкинуть на мороз, как по мне - неуважение к себе.
Потом я поставил IDEA.
В те времена, у меня был не самый дорогой комп, но основной параметр был в порядке - в нем было заряжено гигабайт 20 оперативной памяти, и хотелось надеяться, что ни одна программа не выжрет ее настолько, чтоб уйти в своп.
А ИДЕЯ, написанная на С++, и должна была быть за счет этого эффективной, имела на тот момент очень неприятное свойство.
Она, занимаясь своими задачами индексирования, анализа кода, и черт еще знает чего, могла на несколько секунд подвисать, причем так адски, что по-моему даже блокировала мышку на короткие интервалы, в результате чего стрелка двигаясь рывками.
Текст пропечатывался тоже с задержками. Это что такое?
Я пытался выключать какие-то функции, облегчать ее работу, но быстро справиться с этим мне не удалось, а впечатление было испорчено.
Черт подери, подумал я, что я, слишком много прошу?
Почему, туды твою в качель, комп худо-бедно тянет топовые 3Д шутеры (мать его Crysis), но на нем невозможно программировать?
Проще уж работать в Notepad++ .
А теперь про Eclipse.
Будучи написанным не на плюсах, а на Java, он неспешен и туповат.
И тем не менее, он стабильный!
Когда он подвисал на каких-то задачах, это было заметно только по пиктограммам прогресса.
При этом, не блокировалась ни мышка, ни окно работы с кодом.
А если вы не в курсе, для программиста, только это и важно.
Если во время компиляции или чего-то еще тяжелого, тебе вдруг пришла какая-то светлая мысль, так и черт бы с этой компиляцией.
Ты должен иметь возможность немедленно внести изменения в код.
А перекомпилировать придется все равно заново.
В общем, на протяжении моей работы в Eclipse, он был довольно-таки хорош с этой точки зрения.
Мало этого, люди могли писать под него плагины.
Кстати, одна российская фирма запилила на базе Eclipse среду для своего языка.
Eclipse поддерживает разные языки, он развивается, выходят новые версии.
Так почему же, скотина неблагодарная, спросите вы, ты поставил заголовком, что сейчас детей нельзя учить Джаве на Эклипсе.
А причины есть.
Первая - в перспективах.
Не в том смысле, что меня пугают перспективы, светлое будущее, тех кто работает в Eclipse.
Нет, речь о функциональности Eclipse, называемой "перспектива".
Она позволяет произвольно менять видимость и положение окон в нескольких запоминаемых состояниях.
Например, когда вы пишите программу, вы видите один набор окон, как только запустили ее, Eclipse резко переходит в другую перспективу "дебаг", и окна меняют свой состав и расположение.
В какой-то мере это удобно, и вы можете гибко настроить среду под себя.
Но в тот момент, когда ребенок начинает постигать язык Java, у него есть масса других вещей, о которых он должен беспокоиться, и какие должен запомнить, нежели способ настроить среду под себя. Когда вдруг картина на экране резко меняется, у него наступает дезориентация.
Что случится в тот момент, когда ребенок случайно клацнет мышкой и закроет то или иное окно, или перетащит его куда-то? Стандартная перспектива будет изменена.
У детей немного рассеянное внимание, и не самая высокая точность кликов мышкой.
Да и взрослый не застрахован от таких ошибок.
Ну а Eclipse запомнит его мудрое решение, и при перезапуске вернет состояние с косяками, с закрытыми окнами, которые черт знает где теперь искать.
Опытный человек знает, что можно сделать ресет перспективы, или вообще отказаться от их смены, скажем для дебага.
Попробуй теперь ребенку, который постигает самые азы, объяснить, нафига нам эти верблюжьи навороты в зоопарке.
В лучшем случае, он тебе ответит, дядя, ты дурак?
Второе. В те бородатые времена, когда я начинал, еще не было Android Studio, и писать программы под андроид нужно было на Eclipse.
Вряд ли сейчас вы найдете динозавра, который занимается этим.
Вышла Android Studio и IDEA за годы стали лучше.
Возможно, и компы стали лучше, но теперь я уже не могу пожаловаться, что у меня что-то тормозит и падает.
В этих ИДЕ все на своих местах, и поэтому, смотря какой-то урок с экрана, человек, а особенно это нужно детям, легко найти то же самое окно или кнопку, про которое говорит лектор.
Какую именно среду как отраслевой стандарт будет показывать современный лектор, вопрос конечно открытый, но на начало 19 года отрыв ИДЕИ от Эклипса уже составлял 7% и думаю, он будет только увеличиваться.
Было бы неплохо, чтобы ребенок сразу учился той ИДЕ, которая на момент начала его работы была отраслевым стандартом, но сейчас можно сказать, это де факто уже не Eclipse а IDEA.
Третье.
Парадигма Eclipse такова, что в одной программе открываются все проекты воркспейса.
Если их 10 штук, она все разместятся в дереве объектов.
Регулируется это воркспесом, но вряд ли какой-то ребенок будет создавать несколько воркспейсов.
В итоге, в одном окне программы у него скоро будет открыта просто куча мусора, и он будет тратить внимание на то, чтобы с ней сориентироваться.
Если проводить аналогии, это захламленный письменный стол. Не каждый взрослый осилит работу в бардаке, а ребенку сложнее сосредотачивать внимание - когда он что-то делает, не должно быть каки-то отвлекающих факторов.
Четвертое.
В Eclipse по дефолту нет поддержки Scala и Kotlin. А у ребенка должен быть такой выбор.
Я уверен, что как-то можно их настроить, но каждое такое упражнение может оказаться для ребенка решающим фактором отказа от занятия программированием на том или ином языке семейства Джава, поскольку он еще не привык преодолевать сложные препятствия, гуглить решения на английском.
Поэтому, выводы неутешительны.
Я открываю Eclipse только для тех проектов, которые изначально делал в нем, и когда без этого никак.
Учить же детей программированию в нем, на мой взгляд достаточно глупая затея, и делать этого не надо.