IDE в Линуксе

Это ответ на вопрос, заданный на форуме electronix.ru

[quote name=’alexast’ post=’1116478′ date=’Nov 30 2012, 23:06′]Может быть кто уже пробавал пристыкнуть IDE оболочку под кросскомпилятор Sourcery CodeBench Lite
IA32 GNU/Linux чтобы компилировать под ARM. Если да то подскажите что можно использовать в качестве IDE под Линукс.
Заранее спасибо с уважением Алексей.[/quote]

Что касается меня лично, то я тоже в свое время, когда перелез с Виндовс на Линукс, тоже страдал такой фигней — «вынь, да положь мне на тарелочку оболочку!» Ну, привык я работать в Виндовсе, и на мир смотрел через призму а-ля-Виндовс. Я тоже искал оболочку, которая меня бы устроила. Не нашел.

Но потом, подначитавшись умных книжек:

Э.Реймонд «Искусство программирования для UNIX»

https://i0.wp.com/files.books.ru/pic/251001-252000/251362/251362.jpg

Б.Керниган и Р.Пайк «Программное окружение UNIX»

https://i2.wp.com/files.books.ru/pic/82001-83000/82361/82361.jpg

Уильямс Ричард Стивенс «UNIX. Профессиональное программирование»

https://i2.wp.com/files.books.ru/pic/503001-504000/503720/503720.jpg

Н.Мэтью и Р. Стоунс «Основы программирования в Linux»

https://i2.wp.com/files.books.ru/pic/646001-647000/646220/646220.jpg

и других книжки, я кое- что понял.

Я понял, что я неправильно понимаю дух (природу) Линукса. Я пытаюсь требовать от него Вендового поведения или Вендовых подходов. Виндовс и Линукс — это две разные технологии, хотя у них есть много чего схожего.

Феномен IDE в Линуксе — это не то, чтобы нечто второстепенное,… скорее — не столь важное, как это есть в Виндовсе. Виндовс идет по пути: «всё, что можно, — всё вложить в (одну) программу. Всю функциональность закатать по максимуму. Надо-не надо — не важно! Важно, чтобы программа была самодостаточной жирной единицей, независимой от других программ.» Такой подход становится понятен, когда начинаешь задумываться о природе Виндовс. Виндовс и вся ее экосистема задумана и живет с целью ПОЛУЧЕНИЯ ПРИБЫЛИ. И если ты (абстрактно, не персонально к топикстартеру) — программист, то твоя задача — писать и продавать свои проги. Следовательно, тебе будет очень не уютно, когда твоя прога должна будет использовать какую-то стороннюю функциональность. Поэтому ты будешь вынужден напихать в свою прогу по максимуму всё. Всё что надо и не надо. В результате мы наблюдаем появление таки монстров как Atmel Studio. Жуть!

«А шо делать?» — Рабинович. (с) фраза из анекдота

Линукс же идет несколько иным путем. Парадигма Линукса состоит в том, что имеется система, состоящая из ядра и множества утилит и программ. Утилиты и программы обладают ограниченной функциональностью, но при этом легко стыкуются друг с другом. Таким образом, обладая набором тщательно отлаженных качественных программ мы с помощью «клея» (скриптов и каналов) можем создавать из них любую, нужную нам, функциональность. Поскольку небольшие программы и утилиты легко писать и отлаживать, то это гарантирует высокую их надежность. А если система состоит из надежных проверенных «кирпичей», то и вся стена будет так же надежна. Остается только добавить, что если даже вдруг случайно где-то встретится трухлявый «кирпич», то, поскольку, никто секретов из исходников не делает, этот кирпич тут же будет замечен и исправлен. Разнообразие «кирпичей» и их способов соединения порождает бесконечное число вариантов — стен, строений, домов  и т.д. Имея набор акварельных красок, можно нарисовать ЛЮБУЮ картину. Виндовс же вместо красок предлагает уже готовый и сильно фиксированный эстамп. Что называется — почувствуйте разницу.

Я Вас не убеждаю, что одна одна операционная система лучше, чем другая. (В конце концов, каждый сам делает свой выбор!) Я лишь говорю о том, что не все подходы , которые приняты в Виндовсе, нужно переносить в Линукс. Они, конечно, наверняка будут работать, но это не совсем верное решение — переносить один к одному методы работы при фундаментальной смене технологий. Намаетесь, потому как природа операционной системы — другая, здесь другие подходы. Понятно, что используя родные подходы для системы, можно добиться значительно больших результатов, чем при использовании «иностранных».

Теперь, я хотел бы вернуться к IDE. Я перебрал несколько IDE, и остановился на том, что наиболее лучим вариантом для меня буде не готовая IDE, а то, что я сам создам своими руками из готовых кирпичей. Мои кирпичи — это окна Наутилуса и Гном-терминала. Это несколько рабочих столов, это могут быть чистые консоли (Ctrl-Alt-F1? Ctrl-Alt-F2, …), в том числе и удаленные консоли на других компах. Это мои Мейк-файлы, это компиляторы, отладчики, утилиты и другие программы, которые я вызываю из Мейк-файла. Ну и другие  мелочи, которые я не хотел бы сейчас перечислять. Ни один IDE монолитный не способен на такую гибкость!

Я согласен, что по началу чувствуешь себя несколько дискомфортно, из-за того, что оно (аналог IDE) не существует в виде единого монолита, а как-то все разрозенно и раскидано. «Где, что и как потом собирать?» — это надуманный вопрос. Это влияние Виндовса на наши умы (по крайней мере — на мой). После некоторого времени работы с таким виртуальным IDE, убеждаешься не только в его работоспособности и возможности его принципиально запускаться каждый раз, но и в его удобстве и в своем всемогуществе УПРАВЛЯТЬ системой. (Зря что-ли пошла поговорка: кто кого имеет — ты систему, или она тебя.)

Поэтому, я хотел бы обратить Ваше внимание на вот какой момент. IDE в Линуксе — это, конечно, хорошо. Но если Вы нацеливаетесь на серьезную работу, то Вам по-любому придется копать глубоко Линуксовые технологии, и вот тогда… тогда Вам откроются секреты, почему в Линуксе с IDE «как-то не очень». Я не знаю, сколько времени Вы уже пользуете Линукс, но я могу сказать, что сменить образ жизни с Вендового на Линуксовый — это достаточно ощутимая работа ума. Говорить, что легко перскочил с Венды На Линукс — это лукавство. Ну, либо человек просто идет по верхам, и глубоко не копает. Чудес не бывает, но есть определенный объем умственной работы, который нужно совершить, и есть ограничение — 24 часа в сутки на все про все!

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

Не поймите меня меня неправильно — я не против использования IDE в Линуксе. Я лишь попытался обрисовать общую картину, расширить, так сказать, мир, чтобы вы не замыкались на IDE, а могли видеть дальше и больше, и знать, что вообще происходит. Дополнительные знания дают правильную ориентацию. А правильная ориентация приведет к правильному выбору инструментария для достижению ваших целей.

Еще раз мои извинения, за «много слов». Ну не умею я говорить кратко о сложных технологиях.

Advertisements

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s