Что из редактора делает IDE?

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

всем привет)
возник такой вопрос:
какие основные признаки, которые отличают среду разработки (IDE) от просто редактора с подсветкой.

Вот к примеру, есть редактор Atom, к которому идут куча плагинов, некоторые из которых называется ide (например, есть плагин для атома — ide-haskell). Что такого дает подобный плагин, что его гордо именуют ide?

p.s. atom и плагин Ide-haskell взяты исключительно для примера — можно взять другой редактор и другой плагин для другого языка, который разрабы этого плагина позиционируют как IDE.

👍ПодобаєтьсяСподобалось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

Настоящий IDE от редактора отличается в основном количеством ненужных свистоперделок, но на практике есть одно критичное для работы отличие — так называемый code intelligence (в зависимости от интерпретации включает в себя умную навигацию по коду, проверку синтаксиса, автодополнение и т.п.), то есть фичи, которые привязаны к конкретному языку программирования. Собственно, эти фичи и лежат в основе таких вот «ide-плагинов».

якщо я правильно зрозумів цю фічу, то таке і в екліпсі є

Такое, вроде как, во всех адекватных ИДЕ есть.

якщо так, то це тоді зовсім не

киллер-фича

Що повинно бути в хорошій IDE:
* Підсвітка синтаксису та помилок
* Автодоповнення і навігація по коду (всіх типів файлів)
* Рефакторинг
* Управління бібліотеками та залежностями
* Робота з системою контролю версій
* Запуск різних конфігурацій кнопкою, а не командою в консолі
* Робота з БД
* Дебагінг
* Power Save Mode (можливість перемикатись в редактор з підсвіткою)

Я бы еще добавил работа с VCS. Но суть IDE, ВСЮ работу ты делаешь через нее. IDE — это законченный инструмент.

системою контролю версій
і є
VCS

навороченный IDE из простого редактора делает Emacs Lisp.

Integrated Development Environment. То есть, когда там есть всё, что необходимо для разработки (включая возможность запустить компиляцию/деплой) — это IDE.

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

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

В чем вообще смысл вопроса? Я знаю одного чувака — так ему и mcedit вполне себе IDE.

На мой взгляд есть два основных отличия редактора и IDE. Первое, и главное состоит в том, что IDE пишется под конкретный язык или платформу. Т возьмём для примера один из лидеров рынка IDE — команию JetBrains. Исходя из концепции Язык=IDE они представили на рынок множество IDE, каждый для своей цели — PyCharm для Python, IntelliJ IDEA для Java, PHPStorm для PHP и так далее. Это свойство IDE является как хорошим, так и плохим т к по факту если у вас гибридный допустим проект где используется несколько языков, прийдётся или запускать несколько IDE или же ограничиться минимальным тем набором функционала подсветки и тп. Многофункциональные редакторы таким ограничением не обладают.

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

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

Что выбрать? Зависит от многих факторов. Подход с IDE часто проще и понятнее, особенно для языков, в которых IDE является важным дополнением языка: C++, .NET, Java. Во вторых, из за простоты подхода IDE действительно по началу рекомендуется начинающим.

Если же хочется полного удобства, управления, оптимизации среды то выбор один — выбрать себе редактор, который легко настраивается и обладает готовыми интеграциями с любым языком программирования. Я работаю в Emacs, чего и всем рекомендую. Альтернатива Emacs-VIM. Но минусы есть и в таком подходе — тут парадигма управления завязана на текст и управление с клавиатуры. Т е хочешь или не хочешь прийдётся понять какая клавиша что делает.

Это крайние стороны — с одной стороны управление полностью мышовое, быстрое вначале, имеющее предел. С другой стороны управление с клавиатуры, барьер входа, но окончательный результат (по удобтву работы и управления кодом) может быть намного лучше.

Где то посредине между двумя крайностями находятся редакторы типа Sublime Text, с балансом фич, вижетов, и модулей расширения. Atom вообще не впечатлил, очень слаб во многих планах, но красиво выглядит eye-candy

спасибо за развернутый ответ) в принципе ясно)

Atom вообще не впечатлил, очень слаб во многих планах, но красиво выглядит eye-candy
ну вообще да, хотя я в его внутреностях не копался, но судя потому, что он написан на веб-технологиях он скорее всего действительно хуже саблайма.

Не користувався Атомом, але користувався Brackets, який теж написаний на жс. І сказати, що Брекетс однозначно гірший — не можу. Редактор активно розвивається, має купу фіч, які саблайму навіть не снилися, у той же час, буває не вистачає навіть чогось елементарного. Обидва редактори мають різну філософію і я думаю, що порівнювати їх не варто. Якщо порівнювати, то порівнювати саблайм з textmate/notepad++, а атом — з брекетс.

ну если выбирать для фронтэнда между брэкетс, саблаймом и атомом, то я выберу брэкетс)

Якщо порівнювати, то порівнювати саблайм з textmate/notepad++, а атом — з брекетс.
согласен) хотя у атома как мне кажеться больше разнообразия плагинов (для разных языков всысле), в то время как брэкетс заточен больше под веб и фронтэнд и большинство плагинов именно для веба (js, node.js, php, css, шаблонизаторы и предпроцессоры), хотя есть и плагины для Go и Elixir (ну и плюс плагины для подсветки еще нескольких языков).
если у вас гибридный допустим проект где используется несколько языков, прийдётся или запускать несколько IDE
Ну они над этим тщательно подумали. Так, PHPStorm включает в себя средства работы и с js, и с html, и много с чем другим фронтовым. То есть для веб-разработки достаточно одной IDE.
IntelliJ IDEA для Java
Оооо, это совсем не правда. Давным давно она конечно начиналась как IDE для Java, но сейчас она поддерживать кучу разных языков. А модульность и плагины этому только способствуют.

Но ОЧЕНЬ неудобно, например, работать в IntelliJ IDEA с Pyton по сравнению с PyCharm (на собственном опыте, личное мнение). В этом свете их новая подписка на все выглядит очень привлекательно .... правда я в виду определенных ограничений (технических в том числе) пришел к тому что мне удобен Vim (пожалуй кроме Java) и оказалось я его начинаю любить больше ...

А вы с какой целью интересуетесь?

А вобще, вот нормальное впринципе определение:
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger.
en.wikipedia.org/...d_development_environment

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

вот что такое ИДЕ
img0.joyreactor.cc/...сы-песочница-1420870.jpeg

соответственно редактор — просто автомат

якщо воно довго стартує, довго думає в процесі, падає і жре оперативку кілометрами — це швидше за все ide

Так это Студия «бесполезна», или просто ноут не тянет?)

Я бы задумался о целесообразности использования IDE, которая отжирает все ресурсы.

Если IDE (или любая другая программа) отжирает все ресурсы — это значит, что там утечка памяти. Не припоминаю такого за VS. На хорошей машинке она запускается почти мгновенно (чуть дольше, если с Решарпером) и работает превосходно. А вот запускать ее на слабых компах и жаловаться потом, что она ест все ресурсы — это как-то странно :)

Если оно знает, что такое «проект» — IDE, иначе редактор.

я бы еще добавил пункт автоматизация работы с внешними утилитами: например, билд/деплой на внешние сервисы, поддержка continuous integration tools, прогонка юнит тестов, connection to data bases и так далее.

Ну меня интересует в первую очередь те инструменты, без которых в IDE ну никак (т.е. мне кажется, что в принципе можно обойтиз без юнит-тестов или интеграции с гит).

Прикол IDE заключается в том, что все инструменты идут из коробки + быстрая возможность добавления нового плагина/тулзы. Если их выкинуть, то получится обыкновенный текстовый редактор.

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

Ну вот мне как-то наоборот удобнее никуда не тыкать. Запилил фичу, альт-табнулся в консоль, там посмотрел git status, git diff (если нужно), выполнил git add ., git commit и пошёл пилить дальше.

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

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

Всё это делается в одном месте, которое называется EMACS, таки да, через внешние утилиты. Если не KISS то IDE.

Наприклад, редактор з підсвіткою не знає про внутрішню кухню мови: як запускать та дебажить проект, звідки брать автокомпліт та usages, тощо.

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